{"id":13555,"name":"beartype","ecosystem":"pip","repository_url":"https://github.com/beartype/beartype","issues_count":73,"created_at":"2025-06-06T23:30:40.837Z","updated_at":"2025-06-06T23:30:40.837Z","purl":"pkg:pypi/beartype","metadata":{"id":2653644,"name":"beartype","ecosystem":"pypi","description":"Unbearably fast near-real-time hybrid runtime-static type-checking in pure Python.","homepage":null,"licenses":"MIT License\n        \n        Copyright (c) 2014-2025 Beartype authors.\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.","normalized_licenses":["Other"],"repository_url":"https://github.com/beartype/beartype","keywords_array":["annotations","python","type checking","type hints"],"namespace":null,"versions_count":54,"first_release_published_at":"2020-05-21T07:03:42.000Z","latest_release_published_at":"2025-05-22T05:09:24.000Z","latest_release_number":"0.21.0","last_synced_at":"2025-06-06T21:01:16.926Z","created_at":"2022-04-10T10:10:36.768Z","updated_at":"2025-06-06T21:01:16.927Z","registry_url":"https://pypi.org/project/beartype/","install_command":"pip install beartype --index-url https://pypi.org/simple","documentation_url":"https://beartype.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Natural Language :: English","Operating System :: OS Independent","Programming Language :: Python :: 3 :: Only","Topic :: Software Development :: Code Generators","Topic :: Software Development :: Libraries :: Python Modules","Topic :: Software Development :: Quality Assurance","Typing :: Typed"],"normalized_name":"beartype"},"repo_metadata":{"id":38345072,"uuid":"252646465","full_name":"beartype/beartype","owner":"beartype","description":"Unbearably fast near-real-time hybrid runtime-static type-checking in pure Python.","archived":false,"fork":false,"pushed_at":"2024-09-03T06:42:22.000Z","size":10947,"stargazers_count":2569,"open_issues_count":69,"forks_count":55,"subscribers_count":16,"default_branch":"main","last_synced_at":"2024-09-06T22:56:15.823Z","etag":null,"topics":["python3","runtime-typechecking","static-typechecking"],"latest_commit_sha":null,"homepage":"https://beartype.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,"icon_url":"https://github.com/beartype.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["leycec"]}},"created_at":"2020-04-03T06:06:22.000Z","updated_at":"2024-09-06T14:51:03.000Z","dependencies_parsed_at":"2024-01-02T09:35:37.149Z","dependency_job_id":"8ab76ddd-46f7-4d6d-a9aa-7ddf489ffa49","html_url":"https://github.com/beartype/beartype","commit_stats":{"total_commits":914,"total_committers":18,"mean_commits":50.77777777777778,"dds":0.04157549234135671,"last_synced_commit":"c46b3e7538d81076f70ea745a188fa883b6db605"},"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beartype","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":218088566,"owners_count":16276115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"beartype","name":"beartype","uuid":"63089855","kind":"organization","description":"Unbearably fast O(1) runtime type-checking in pure Python.","email":"leycec@gmail.com","website":null,"location":"Ontario, Canada","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/63089855?v=4","repositories_count":5,"last_synced_at":"2023-03-06T19:28:42.154Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/beartype","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-16T20:35:43.946Z","updated_at":"2023-03-06T19:28:42.164Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beartype","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beartype/repositories"},"tags":[{"name":"v0.19.0rc1","sha":"f3a7f63a07ab71c0a4b9a177d7a0adfc6cdfcec2","kind":"tag","published_at":"2024-08-27T07:37:47.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.19.0rc1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.19.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.19.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.19.0rc1/manifests"},{"name":"v0.19.0rc0","sha":"86343daf8e50bcab7c7cf89daf09e8da9220a79a","kind":"tag","published_at":"2024-06-29T06:54:50.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.19.0rc0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.19.0rc0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.19.0rc0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.19.0rc0/manifests"},{"name":"v0.18.5","sha":"7e9eef4868f9c0a140ca7db973fbc17abb3a5702","kind":"tag","published_at":"2024-04-21T07:20:13.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.18.5","html_url":"https://github.com/beartype/beartype/releases/tag/v0.18.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.5/manifests"},{"name":"v0.18.4","sha":"2215d030ed50b09bfd001e655c17125023f4479f","kind":"tag","published_at":"2024-04-19T07:29:08.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.18.4","html_url":"https://github.com/beartype/beartype/releases/tag/v0.18.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.4/manifests"},{"name":"v0.18.3","sha":"51f6fd07e11484c111186e3b85841c6a299ad46a","kind":"tag","published_at":"2024-04-18T06:30:07.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.18.3","html_url":"https://github.com/beartype/beartype/releases/tag/v0.18.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.3/manifests"},{"name":"v0.18.2","sha":"5216017e2b076a36ae9a73a260d1c1e97f6780ac","kind":"tag","published_at":"2024-04-03T07:51:25.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.18.2","html_url":"https://github.com/beartype/beartype/releases/tag/v0.18.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.2/manifests"},{"name":"v0.18.1","sha":"acfcaef90eaef5207cc71231c2b83d497fe6c34e","kind":"tag","published_at":"2024-04-03T07:19:05.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.18.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.1/manifests"},{"name":"v0.18.0","sha":"af99dfec2643ef4614fc07116a7048ac4153c0ce","kind":"tag","published_at":"2024-04-02T07:59:09.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.18.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.18.0/manifests"},{"name":"v0.17.2","sha":"e43b245f780a9e9c3abbf80340025e5a23104df3","kind":"tag","published_at":"2024-02-14T06:42:38.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.17.2","html_url":"https://github.com/beartype/beartype/releases/tag/v0.17.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.17.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.17.2/manifests"},{"name":"v0.17.1","sha":"1c51f3d6ae08928cf93a1dc5eadddc88048f58de","kind":"tag","published_at":"2024-02-10T07:02:15.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.17.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.17.1/manifests"},{"name":"v0.17.0","sha":"7d9051f3d7cc0d625ddb7de9d3dcda00b6648316","kind":"tag","published_at":"2024-01-25T08:01:10.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.17.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.17.0/manifests"},{"name":"v0.16.4","sha":"58b1982be4dfb69560a889518d8e1ce9f641d1a1","kind":"tag","published_at":"2023-10-21T04:48:20.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.16.4","html_url":"https://github.com/beartype/beartype/releases/tag/v0.16.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.16.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.16.4/manifests"},{"name":"v0.16.3","sha":"aa317437436ef02efd654ee8066c16f6a00b50a0","kind":"tag","published_at":"2023-10-14T05:04:58.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.16.3","html_url":"https://github.com/beartype/beartype/releases/tag/v0.16.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.16.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.16.3/manifests"},{"name":"v0.16.2","sha":"b771363bed366054afa291737d0bf0bb7b3c326e","kind":"tag","published_at":"2023-09-23T02:36:01.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.16.2","html_url":"https://github.com/beartype/beartype/releases/tag/v0.16.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.16.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.16.2/manifests"},{"name":"v0.16.1","sha":"db77d3c4488b22b19ddf857e3c87af1bdde78c00","kind":"tag","published_at":"2023-09-19T05:56:50.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.16.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.16.1/manifests"},{"name":"v0.16.0","sha":"6f6027deaa9c82a54670c3bee57f68f6f6af2549","kind":"tag","published_at":"2023-09-16T05:53:01.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.16.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.16.0/manifests"},{"name":"v0.15.0","sha":"af46e903af92bdde3e6145d42f7bdcec98a7065f","kind":"tag","published_at":"2023-07-22T05:21:30.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.15.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.15.0/manifests"},{"name":"v0.14.1","sha":"fee4105a7466b6d0b931ae86e7a555485b59f446","kind":"tag","published_at":"2023-06-07T05:35:38.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.14.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.14.1/manifests"},{"name":"v0.14.0","sha":"aa97f189ba6a861946b8cb29389d65c070a14ab0","kind":"tag","published_at":"2023-05-02T04:53:00.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.14.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.14.0/manifests"},{"name":"v0.13.1","sha":"bac99b36be7cc4b8836419806488a0ca07e1ccc7","kind":"tag","published_at":"2023-04-11T07:50:50.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.13.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.13.1/manifests"},{"name":"v0.13.0","sha":"516a5d8e50f6056f841ed6e2b0a15f82829bca5d","kind":"tag","published_at":"2023-04-08T04:55:19.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.13.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.13.0/manifests"},{"name":"v0.12.0","sha":"3f28c85d86724d4692d3a42b3419be253acb32d5","kind":"tag","published_at":"2023-01-17T08:33:19.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.12.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.12.0/manifests"},{"name":"v0.11.0","sha":"4b503f780a2b1d88084ef00e96786544fdc59761","kind":"tag","published_at":"2022-09-18T06:18:16.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.11.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.11.0/manifests"},{"name":"v0.10.4","sha":"c98cf6e107e461745f27f5aaf289673e7eb2db9a","kind":"tag","published_at":"2022-03-15T06:03:09.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.10.4","html_url":"https://github.com/beartype/beartype/releases/tag/v0.10.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.10.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.10.4/manifests"},{"name":"v0.10.3","sha":"f982aa5ff86a945ced26962ede3829ec8d6b4077","kind":"tag","published_at":"2022-03-11T07:05:33.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.10.3","html_url":"https://github.com/beartype/beartype/releases/tag/v0.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.10.3/manifests"},{"name":"v0.10.2","sha":"5bc0ed088d56445e2f0f2cdd3a6cbe730f866f03","kind":"tag","published_at":"2022-02-22T23:39:35.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.10.2","html_url":"https://github.com/beartype/beartype/releases/tag/v0.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.10.2/manifests"},{"name":"v0.10.1","sha":"485ccd88ac6e991ed951a90d1af34dbfcacc10d2","kind":"tag","published_at":"2022-02-19T08:04:38.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.10.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.10.1/manifests"},{"name":"v0.10.0","sha":"efedb379ca94e2be2439d73ce3e048704bbcbca3","kind":"tag","published_at":"2022-02-09T07:31:07.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.10.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.10.0/manifests"},{"name":"v0.9.1","sha":"acf44aa8f2fe86e10e52c0629966e7efe52bb0df","kind":"tag","published_at":"2021-11-06T06:18:48.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.9.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.9.1/manifests"},{"name":"v0.9.0","sha":"98576b44c9ec8da894bbf1041eccea5515facc60","kind":"tag","published_at":"2021-10-22T07:46:24.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.9.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.9.0/manifests"},{"name":"v0.8.1","sha":"a8fa63cd0ae713bf93c4865059b40fab8e1996f8","kind":"tag","published_at":"2021-08-21T04:27:54.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.8.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.8.1/manifests"},{"name":"v0.8.0","sha":"9909550456104f9c6057010ceb43e2cd161de6d9","kind":"tag","published_at":"2021-08-18T06:59:00.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.8.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.8.0/manifests"},{"name":"v0.7.1","sha":"1fc5ed1463dc3e07040766c111e3f2b9733d0291","kind":"tag","published_at":"2021-06-30T06:06:47.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.7.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.7.1/manifests"},{"name":"v0.7.0","sha":"84c6447e359ce21a1450ce33cdd206bfe016785f","kind":"tag","published_at":"2021-05-25T05:30:24.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.7.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.7.0/manifests"},{"name":"v0.6.0","sha":"fcb9895153a3e7cebe35a320dbdef9b3b53a065c","kind":"tag","published_at":"2021-03-04T07:26:32.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.6.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.6.0/manifests"},{"name":"v0.5.1","sha":"cece5f3b1e44f72c3fd51483990d969a0f7977ba","kind":"tag","published_at":"2020-12-06T07:35:13.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.5.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.5.1/manifests"},{"name":"v0.5.0","sha":"cdc4878fca2d3b81e128d594a2c63f5eb712cdda","kind":"tag","published_at":"2020-12-02T22:42:05.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.5.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"d51c09a80e3f69f6e28bfed3264970eecc6fb60f","kind":"tag","published_at":"2020-11-19T05:23:19.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.4.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.4.0/manifests"},{"name":"v0.3.2","sha":"513cf8450580a9fc326102e1ddc1ac4553b7f669","kind":"tag","published_at":"2020-10-11T02:05:57.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.3.2","html_url":"https://github.com/beartype/beartype/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"9bfb804e6b148254d87f00bf25a6c4a216b3067a","kind":"tag","published_at":"2020-10-05T21:11:52.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.3.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"116c36a5f0b12e574b2a31a8f994f22ca65bed55","kind":"tag","published_at":"2020-10-01T04:30:42.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.3.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"c444c98b2554088030aac908ca34c749caae79d9","kind":"tag","published_at":"2020-09-03T05:07:57.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.2.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.2.0/manifests"},{"name":"v0.1.1","sha":"9df0ff09de1303e937f7e23ced778b9a0191a38c","kind":"tag","published_at":"2020-06-11T04:17:30.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.1.1","html_url":"https://github.com/beartype/beartype/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"9d90173ae182347a1b7709f9908d849e799ec4f5","kind":"tag","published_at":"2020-05-21T06:40:57.000Z","download_url":"https://codeload.github.com/beartype/beartype/tar.gz/v0.1.0","html_url":"https://github.com/beartype/beartype/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beartype%2Fbeartype/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2024-09-08T03:29:36.814Z","dependent_packages_count":227,"downloads":5656168,"downloads_period":"last-month","dependent_repos_count":452,"rankings":{"downloads":0.3290557402274588,"dependent_repos_count":0.6784777161796911,"dependent_packages_count":0.16223417378003652,"stargazers_count":1.5577756550433801,"forks_count":6.389062657254889,"docker_downloads_count":1.9059216395228582,"average":1.837087930334719},"purl":"pkg:pypi/beartype","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/beartype","docker_dependents_count":42,"docker_downloads_count":9995205,"usage_url":"https://repos.ecosyste.ms/usage/pypi/beartype","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/beartype/dependencies","status":null,"funding_links":["https://github.com/sponsors/leycec"],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/beartype/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/beartype/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/beartype/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/beartype/related_packages","maintainers":[{"uuid":"leycec","login":"leycec","name":null,"email":null,"url":null,"packages_count":4,"html_url":"https://pypi.org/user/leycec/","role":null,"created_at":"2023-02-23T11:58:11.367Z","updated_at":"2023-02-23T11:58:11.367Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/leycec/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690445,"maintainers_count":292827,"namespaces_count":0,"keywords_count":228590,"github":"pypi","metadata":{"funded_packages_count":48950},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-06T05:32:09.692Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":38,"unique_repositories_count_past_30_days":2,"recent_issues":[{"uuid":"4123817261","node_id":"PR_kwDOHG_iAM7M0KJc","number":671,"state":"open","title":"Bump beartype from 0.22.4 to 0.22.9","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-23T21:23:03.000Z","updated_at":"2026-03-23T21:34:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.22.4","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.4 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\r\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\r\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8a046e0cf193106146d8a9538d8174855b7c3e0e\"\u003e\u003ccode\u003e8a046e0\u003c/code\u003e\u003c/a\u003e Beartype 0.22.8: The Return of the Generator Return\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.4...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.4\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\u003c/details\u003e\n\n\u003c!-- greptile_comment --\u003e\n\n\u003ch3\u003eGreptile Summary\u003c/h3\u003e\n\nThis PR bumps the `beartype` runtime type-checking library from `0.22.4` to `0.22.9`, a five-patch incremental update. The change is isolated to a single version string in `pyproject.toml` and carries no risk of breaking changes given beartype's patch-level versioning policy.\n\nKey points:\n- The version range spans five patch releases (`0.22.5` through `0.22.9`), all in the `0.22.x` development cycle, so no breaking API changes are expected.\n- Notable upstream improvements include: official PyInstaller bundling support, synchronous generator code optimization, and improved mypy integration testing.\n- The `beartype==` exact-pin strategy is consistent with the rest of the project's pinning approach for this dependency.\n- No source code, tests, or other configuration files are touched.\n\n\u003ch3\u003eConfidence Score: 5/5\u003c/h3\u003e\n\n- This PR is safe to merge; it is a routine patch-level dependency bump with no breaking changes.\n- The change is a single-line version bump of a patch-release series (0.22.4 → 0.22.9) for a type-checking utility. No source code, tests, or other configuration is modified, and the upstream release notes confirm only additive improvements and bug fixes. Risk is negligible.\n- No files require special attention.\n\n\u003cdetails\u003e\u003csummary\u003e\u003ch3\u003eImportant Files Changed\u003c/h3\u003e\u003c/summary\u003e\n\n| Filename | Overview |\n|----------|----------|\n| pyproject.toml | Single-line dependency version bump of beartype from 0.22.4 to 0.22.9; no issues found. |\n\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n\u003ch3\u003eFlowchart\u003c/h3\u003e\n\n```mermaid\n%%{init: {'theme': 'neutral'}}%%\nflowchart TD\n    A[pyproject.toml] --\u003e|was| B[\"beartype==0.22.4\"]\n    A --\u003e|now| C[\"beartype==0.22.9\"]\n    C --\u003e D[\"0.22.5: generator fix\"]\n    C --\u003e E[\"0.22.6 – 0.22.8: iterative improvements\"]\n    C --\u003e F[\"0.22.9: PyInstaller support + QA fixes\"]\n```\n\n\u003csub\u003eReviews (1): Last reviewed commit: [\"Bump beartype from 0.22.4 to 0.22.9\"](https://github.com/waltsims/k-wave-python/commit/a1e4d5258586c1c111553bd8996499268552c454) | [Re-trigger Greptile](https://app.greptile.com/api/retrigger?id=26099568)\u003c/sub\u003e\n\n\u003c!-- /greptile_comment --\u003e","html_url":"https://github.com/waltsims/k-wave-python/pull/671","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/waltsims%2Fk-wave-python/issues/671","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/671/packages"},{"uuid":"4007233141","node_id":"PR_kwDOHFxNx87HIN0O","number":1246,"state":"open","title":"chore(deps): bump beartype from 0.17.2 to 0.22.9 in /sdk/python","user":"dependabot[bot]","labels":["stale"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-01T13:43:00.000Z","updated_at":"2026-03-16T04:20:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"beartype","old_version":"0.17.2","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":"/sdk/python","ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.17.2 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\r\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\r\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8a046e0cf193106146d8a9538d8174855b7c3e0e\"\u003e\u003ccode\u003e8a046e0\u003c/code\u003e\u003c/a\u003e Beartype 0.22.8: The Return of the Generator Return\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.17.2...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.17.2\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/slumbering/dagger/pull/1246","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/slumbering%2Fdagger/issues/1246","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1246/packages"},{"uuid":"3807236615","node_id":"PR_kwDOMkdPVc682NjO","number":759,"state":"open","title":"Bump beartype from 0.22.8 to 0.22.9","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-13T05:52:04.000Z","updated_at":"2026-01-13T05:59:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.22.8","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.8 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.8...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=uv\u0026previous-version=0.22.8\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/fandango-fuzzer/fandango/pull/759","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fandango-fuzzer%2Ffandango/issues/759","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/759/packages"},{"uuid":"3775130816","node_id":"PR_kwDOHF08OM67OZsl","number":1187,"state":"closed","title":"chore(deps): bump beartype from 0.17.0 to 0.22.9 in /sdk/python","user":"dependabot[bot]","labels":["stale"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-01-24T02:15:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T20:02:11.000Z","updated_at":"2026-01-24T02:15:25.000Z","time_to_close":1923186,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"beartype","old_version":"0.17.0","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":"/sdk/python","ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.17.0 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8a046e0cf193106146d8a9538d8174855b7c3e0e\"\u003e\u003ccode\u003e8a046e0\u003c/code\u003e\u003c/a\u003e Beartype 0.22.8: The Return of the Generator Return\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.17.0...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.17.0\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dolanor/dagger/pull/1187","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dolanor%2Fdagger/issues/1187","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1187/packages"},{"uuid":"3732798956","node_id":"PR_kwDOJPFt4s65DHgI","number":1458,"state":"open","title":"Bump beartype from 0.22.8 to 0.22.9","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-16T02:07:36.000Z","updated_at":"2025-12-16T02:13:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.22.8","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.8 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.8...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.8\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/FlorianPfaff/pyRecEst/pull/1458","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianPfaff%2FpyRecEst/issues/1458","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1458/packages"},{"uuid":"3732367205","node_id":"PR_kwDOL2Bi7865BrUx","number":1423,"state":"open","title":"fix(deps): bump beartype from 0.19.0 to 0.22.9","user":"dependabot[bot]","labels":["dependencies","python","Stale"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T22:29:11.000Z","updated_at":"2026-01-15T03:16:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"fix(deps)","packages":[{"name":"beartype","old_version":"0.19.0","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.19.0 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8a046e0cf193106146d8a9538d8174855b7c3e0e\"\u003e\u003ccode\u003e8a046e0\u003c/code\u003e\u003c/a\u003e Beartype 0.22.8: The Return of the Generator Return\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.19.0...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.19.0\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ulab-uiuc/research-town/pull/1423","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulab-uiuc%2Fresearch-town/issues/1423","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1423/packages"},{"uuid":"3704372711","node_id":"PR_kwDODaNHaM63ktKr","number":112,"state":"closed","title":"Bump the minor-or-patch group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T02:25:08.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T02:24:46.000Z","updated_at":"2026-01-05T02:25:09.000Z","time_to_close":2419222,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-or-patch","update_count":4,"packages":[{"name":"beartype","old_version":"0.22.4","new_version":"0.22.8","repository_url":"https://github.com/beartype/beartype"},{"name":"certifi","old_version":"2025.10.5","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"sphinx-substitution-extensions","old_version":"2025.10.24","new_version":"2025.11.17","repository_url":"https://github.com/adamtheturtle/sphinx-substitution-extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-or-patch group with 4 updates in the / directory: [beartype](https://github.com/beartype/beartype), [certifi](https://github.com/certifi/python-certifi), [sphinx-substitution-extensions](https://github.com/adamtheturtle/sphinx-substitution-extensions) and [urllib3](https://github.com/urllib3/urllib3).\n\nUpdates `beartype` from 0.22.4 to 0.22.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.8: The Return of the Generator Return\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.8\u003c/code\u003e. It's happening. Yet, it shouldn't be happening. This is the corrupt timeline we live on:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.6\u003c/code\u003e broke synchronous generator returns. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.8\u003c/code\u003e is unbreaking what its younger sibling brazenly broke. The recklessness of youth, huh? Generator returns, huh? \u003ca href=\"https://github.com/fandango-fuzzer/fandango\"\u003eFandango\u003c/a\u003e cares about synchronous generator returns. Surely, they can't be the only ones!? Seems like they're the only ones. Is there anything weirder than retrieving a return value by stripping the \u003ccode\u003evalue\u003c/code\u003e instance variable out of a \u003ccode\u003eStopIteration\u003c/code\u003e exception caught while manually iterating a synchronous generator one iteration past its last valid \u003ccode\u003eyield\u003c/code\u003e? No? Just me? Who designs APIs like that, anyway? I can just imagine the internal discussion thread speccing this cruft out:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u0026quot;So. Uhh. Your API returns values by bolting them onto the side of builtin exceptions implicitly raised when your iterator is exhausted, huh? You can't even access those return values if you iterate over your iterator with \u003ccode\u003efor\u003c/code\u003e loops, huh? You've got to manually iterate your iterator with \u003ccode\u003enext()\u003c/code\u003e calls, huh? Even though that's infeasible in the general case, huh? Sounds good to me. It's in.\u0026quot;\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.8\u003c/code\u003e had better be the last patch release of the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Overlord Ainz Ooal Gown, we summon you to complete the dark ritual! End this endless cycle of bug death and rebirth... \u003cem\u003eonce and for all\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/Cdys5Fk8I5EAAAAd/epic-seven-ainz-ooal-gown.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.8\u003c/code\u003e: \u003cem\u003eyou know that feeling when a skeletal demon lord raises his eldritch staff of oblivion in triumphant hubris?\u003c/em\u003e yeah. this is like that.\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.8\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eLastly but Beastly (but not Leastly)...\u003c/h2\u003e\n\u003cp\u003e\u003cimg src=\"https://raw.githubusercontent.com/beartype/beartype-assets/main/brand/brand-2600x800.png\" alt=\"we doin' this\" /\u003e\u003c/p\u003e\n\u003cp\u003e...to financially feed \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his friendly \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e through either:\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/beartype/beartype/commit/8a046e0cf193106146d8a9538d8174855b7c3e0e\"\u003e\u003ccode\u003e8a046e0\u003c/code\u003e\u003c/a\u003e Beartype 0.22.8: The Return of the Generator Return\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/00b614f1c333f4bda0c877d63a00d4b84f44c8c6\"\u003e\u003ccode\u003e00b614f\u003c/code\u003e\u003c/a\u003e Synchronous generator returns.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ac4fe5a022504ade01816414144006abe4f9b17c\"\u003e\u003ccode\u003eac4fe5a\u003c/code\u003e\u003c/a\u003e mypy 1.19.0 false positives.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/07435feb177ab8e3ec9ff06f87a7d7639a319819\"\u003e\u003ccode\u003e07435fe\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e7de8aa4e03ebd4f6a2ce2da9d1de9bd58291a5a\"\u003e\u003ccode\u003ee7de8aa\u003c/code\u003e\u003c/a\u003e Beartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/29ba35c979352f85da4ea3e665e07b957a7b33f8\"\u003e\u003ccode\u003e29ba35c\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c13ab820ed026fa0be2e39ef27d32ae9d8b5b5c1\"\u003e\u003ccode\u003ec13ab82\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/029acdc5adc8f5119745f53fe13b12f1b5ea3c18\"\u003e\u003ccode\u003e029acdc\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b80a13b09bb36ad02bc948a938f63edbc2421325\"\u003e\u003ccode\u003eb80a13b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/5665e50478c5841e57b423cecdc1591a622e5f2f\"\u003e\u003ccode\u003e5665e50\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.4...v0.22.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.10.5 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.10.05...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-substitution-extensions` from 2025.10.24 to 2025.11.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/releases\"\u003esphinx-substitution-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.11.17\u003c/h2\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/compare/2025.10.24...2025.11.17\"\u003e2025.11.17\u003c/a\u003e (2025-11-17)\u003c/h3\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/adamtheturtle/sphinx-substitution-extensions/blob/main/CHANGELOG.rst\"\u003esphinx-substitution-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.11.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGive version in extension metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eliteralinclude\u003c/code\u003e directive now supports the following options:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e:content-substitutions:\u003c/code\u003e - Performs substitutions on the included file content.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e:path-substitutions:\u003c/code\u003e - Performs substitutions on the file path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eimage\u003c/code\u003e directive now supports the following option:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e:path-substitutions:\u003c/code\u003e - Performs substitutions on the image file path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003esubstitutions_default_enabled\u003c/code\u003e configuration option to enable substitutions by default.\nWhen set to \u003ccode\u003eTrue\u003c/code\u003e in \u003ccode\u003econf.py\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003ecode-block\u003c/code\u003e directives without requiring the \u003ccode\u003e:substitutions:\u003c/code\u003e flag.\nUse the \u003ccode\u003e:nosubstitutions:\u003c/code\u003e flag on individual code blocks to disable substitutions when the default is enabled.\u003c/li\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003eliteralinclude\u003c/code\u003e directives (both content and path) without requiring the \u003ccode\u003e:content-substitutions:\u003c/code\u003e or \u003ccode\u003e:path-substitutions:\u003c/code\u003e flags.\nUse the \u003ccode\u003e:nocontent-substitutions:\u003c/code\u003e or \u003ccode\u003e:nopath-substitutions:\u003c/code\u003e flags on individual literalinclude directives to disable substitutions when the default is enabled.\u003c/li\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003eimage\u003c/code\u003e directives (path) without requiring the \u003ccode\u003e:path-substitutions:\u003c/code\u003e flag.\nUse the \u003ccode\u003e:nopath-substitutions:\u003c/code\u003e flag on individual image directives to disable substitutions when the default is enabled.\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/adamtheturtle/sphinx-substitution-extensions/commit/a8f37466b596bdeee1130bb92d4dbaec3cd39457\"\u003e\u003ccode\u003ea8f3746\u003c/code\u003e\u003c/a\u003e Bump CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/2ceca0f4864c83cacae596efd85b207d47bb5cfe\"\u003e\u003ccode\u003e2ceca0f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1264\"\u003e#1264\u003c/a\u003e from adamtheturtle/fix-md-sample\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/3e26f1f7887350ede868cf5e8db3011779d515ac\"\u003e\u003ccode\u003e3e26f1f\u003c/code\u003e\u003c/a\u003e Add Markdown examples for new directive support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/549be9718849f1efb59dd586eb7b58ef6b5a9c28\"\u003e\u003ccode\u003e549be97\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1263\"\u003e#1263\u003c/a\u003e from adamtheturtle/image-subst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/0b675f88e89776501aea981be450fe4d0839eb4f\"\u003e\u003ccode\u003e0b675f8\u003c/code\u003e\u003c/a\u003e Remove some comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/0debe432e4bbf3e64c563936c21bd0a42a44b368\"\u003e\u003ccode\u003e0debe43\u003c/code\u003e\u003c/a\u003e Fix mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/b74929af0f44cde1060499f4ec210c7982b2aa07\"\u003e\u003ccode\u003eb74929a\u003c/code\u003e\u003c/a\u003e Fix pyright and use more useful sample image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/ebdd07e39ae24615905a5286d10d4292c80cecbd\"\u003e\u003ccode\u003eebdd07e\u003c/code\u003e\u003c/a\u003e Add images to the samples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/fc80e883c505628ef7130fb62592acdb44bb21c5\"\u003e\u003ccode\u003efc80e88\u003c/code\u003e\u003c/a\u003e Add path substitutions for images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/739cca0683e995e553678356ed77a5d8d2bdd5a4\"\u003e\u003ccode\u003e739cca0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1262\"\u003e#1262\u003c/a\u003e from adamtheturtle/add-default-substitutions-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/compare/2025.10.24...2025.11.17\"\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.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.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\u003cli\u003eIf you use custom decompressors, please make sure to update them to  respect the changed API of \u003ccode\u003eurllib3.response.ContentDecoder\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnabled retrieval, deletion, and membership testing in \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e using bytes keys. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded host and port information to string representations of \u003ccode\u003eHTTPConnection\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 free-threading builds explicitly. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3696\"\u003e#3696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers\u003c/code\u003e. Removed the \u003ccode\u003eHTTPResponse.getheader(name, default)\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers.get(name, default)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3622\"\u003e#3622\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed redirect handling in \u003ccode\u003eurllib3.PoolManager\u003c/code\u003e when an integer is passed for the retries parameter. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3649\"\u003e#3649\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool\u003c/code\u003e when used in Emscripten with no explicit port. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed handling of \u003ccode\u003eSSLKEYLOGFILE\u003c/code\u003e with expandable variables. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3700\"\u003e#3700\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged the \u003ccode\u003ezstd\u003c/code\u003e extra to install \u003ccode\u003ebackports.zstd\u003c/code\u003e instead of \u003ccode\u003ezstandard\u003c/code\u003e on Python 3.13 and before. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3693\"\u003e#3693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the performance of content decoding by optimizing \u003ccode\u003eBytesQueueBuffer\u003c/code\u003e class. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3710\"\u003e#3710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllowed building the urllib3 package with newer setuptools-scm v9.x. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3652\"\u003e#3652\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsured successful urllib3 builds by setting Hatchling requirement to ≥ 1.27.0. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3638\"\u003e#3638\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.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\u003e\n\u003cp\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\n\u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf you use custom decompressors, please make sure to update them to\nrespect the changed API of \u003ccode\u003eurllib3.response.ContentDecoder\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnabled retrieval, deletion, and membership testing in \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e using bytes keys. (\u003ccode\u003e[#3653](https://github.com/urllib3/urllib3/issues/3653) \u0026lt;https://github.com/urllib3/urllib3/issues/3653\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded host and port information to string representations of \u003ccode\u003eHTTPConnection\u003c/code\u003e. (\u003ccode\u003e[#3666](https://github.com/urllib3/urllib3/issues/3666) \u0026lt;https://github.com/urllib3/urllib3/issues/3666\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 free-threading builds explicitly. (\u003ccode\u003e[#3696](https://github.com/urllib3/urllib3/issues/3696) \u0026lt;https://github.com/urllib3/urllib3/issues/3696\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers\u003c/code\u003e.\nRemoved the \u003ccode\u003eHTTPResponse.getheader(name, default)\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers.get(name, default)\u003c/code\u003e. (\u003ccode\u003e[#3622](https://github.com/urllib3/urllib3/issues/3622) \u0026lt;https://github.com/urllib3/urllib3/issues/3622\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed redirect handling in \u003ccode\u003eurllib3.PoolManager\u003c/code\u003e when an integer is passed\nfor the retries parameter. (\u003ccode\u003e[#3649](https://github.com/urllib3/urllib3/issues/3649) \u0026lt;https://github.com/urllib3/urllib3/issues/3649\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool\u003c/code\u003e when used in Emscripten with no explicit port. (\u003ccode\u003e[#3664](https://github.com/urllib3/urllib3/issues/3664) \u0026lt;https://github.com/urllib3/urllib3/issues/3664\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed handling of \u003ccode\u003eSSLKEYLOGFILE\u003c/code\u003e with expandable variables. (\u003ccode\u003e[#3700](https://github.com/urllib3/urllib3/issues/3700) \u0026lt;https://github.com/urllib3/urllib3/issues/3700\u0026gt;\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/urllib3/urllib3/commit/720f484b605f18887a48eef448d0084e2b76902d\"\u003e\u003ccode\u003e720f484\u003c/code\u003e\u003c/a\u003e Release 2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/24d7b67eac89f94e11003424bcf0d8f7b72222a8\"\u003e\u003ccode\u003e24d7b67\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/c19571de34c47de3a766541b041637ba5f716ed7\"\u003e\u003ccode\u003ec19571d\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/816fcf04528bc0f89672e13398eb813dcc892490\"\u003e\u003ccode\u003e816fcf0\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3725\"\u003e#3725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/18af0a10efc4c99dd028f7ad5a461470b9a8b0fd\"\u003e\u003ccode\u003e18af0a1\u003c/code\u003e\u003c/a\u003e Improve speed of \u003ccode\u003eBytesQueueBuffer.get()\u003c/code\u003e by using memoryview (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/1f6abac3e6d426c3939b8a17cf4afa099e691ab2\"\u003e\u003ccode\u003e1f6abac\u003c/code\u003e\u003c/a\u003e Bump versions of pre-commit hooks (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3716\"\u003e#3716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/1c8fbf787b8e6ed151842c5d6874c9d5bdbf1d0b\"\u003e\u003ccode\u003e1c8fbf7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3722\"\u003e#3722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/7784b9eee95b7c90802c02b111e98df70259ae4f\"\u003e\u003ccode\u003e7784b9e\u003c/code\u003e\u003c/a\u003e Add Python 3.15 to CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3717\"\u003e#3717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0241c9e7286d3008e3cce18effc13b40dc633385\"\u003e\u003ccode\u003e0241c9e\u003c/code\u003e\u003c/a\u003e Updated docs to reflect change in optional zstd dependency from \u003ccode\u003ezstandard\u003c/code\u003e t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/7afcabb6489d9a8ea95a40e5afcb46463af17351\"\u003e\u003ccode\u003e7afcabb\u003c/code\u003e\u003c/a\u003e Expand environment variable of SSLKEYLOGFILE (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3705\"\u003e#3705\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.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/FAIRDataTeam/FAIRDataPoint-Docs/pull/112","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FAIRDataTeam%2FFAIRDataPoint-Docs/issues/112","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/112/packages"},{"uuid":"3688171016","node_id":"PR_kwDOJPFt4s62uZ7c","number":1411,"state":"open","title":"Bump beartype from 0.22.6 to 0.22.7","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-03T02:06:13.000Z","updated_at":"2025-12-03T04:02:06.283Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.22.6","new_version":"0.22.7","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.6 to 0.22.7.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e descends like an owl with sorta unsettling black eyes devoid of pupils, majestic wings aloft on the winds of QA. \u003cem\u003eDo not be alarmed.\u003c/em\u003e Actually, isn't that when you should be most alarmed? When somebody says, \u0026quot;Do not be alarmed\u0026quot;!? The italicization isn't helping, either. \u003cem\u003eBut this will\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype   # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv sync beartype                 # \u0026lt;-- \u003ca href=\"https://github.com/Glinte\"\u003e\u003ccode\u003e@​Glinte\u003c/code\u003e\u003c/a\u003e said it, so it must be true\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is the last patch release of the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. That was a lie. Fortunately, seductive lies aren't a problem here at \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. If we want to hear it, it can't be bad. This release brings big:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGradio compatibility!\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now be fully compliant with Gradio needs, wants, hungers, and cravings. Gradio: the ML web framework that was hard to satisfy, but we're pretty sure we managed. If you want Gradio, you want \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e. :spider_web: + :bear: = :safety_pin:\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eShout-outs to \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e!\u003c/strong\u003e \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's pure-Python implementation of the hypothetical \u003ccode\u003easync yield from\u003c/code\u003e expression at \u003ca href=\"https://github.com/rbroderi/future-async-yield-from\"\u003e\u003ccode\u003efuture-async-yield-from\u003c/code\u003e\u003c/a\u003e was hugely inspiring. If you're into mutating Python into misshapen forms through the cosmic horrors of forbidden AST transformations, \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...who isn't? am i right? i'm right\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e check out \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's work. He's up to no good, which is the best kind. :hugs: :people_hugging:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThat's it. That's all we've got. But you don't even want to know the things we \u003cem\u003edid\u003c/em\u003e, the places we \u003cem\u003ewent\u003c/em\u003e, the behaviour we \u003cem\u003eregret\u003c/em\u003e, to make Gradio + \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e happen. If Gradio means nothing to you, we've got nothing but memes for you.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now support all popular Python frameworks. If you (or a codebase you love) know of any Python packages, modules, APIs, or other services that \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e does not support, please drop us a line on the issue tracker. We'll drop what we're doing \u003c!-- raw HTML omitted --\u003e\u003cem\u003evideo games. it's always video games.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e and \u0026quot;immediately\u0026quot; resolve that for your heroic team.\u003c/p\u003e\n\u003cp\u003eUntil then, video games await. Let's get those memes started!\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/4rNc-iqduHgAAAAd/owl.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003ethe more you stare at this, the more your brain sees\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eLastly but Beastly (but not Leastly)...\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/beartype/beartype/commit/e7de8aa4e03ebd4f6a2ce2da9d1de9bd58291a5a\"\u003e\u003ccode\u003ee7de8aa\u003c/code\u003e\u003c/a\u003e Beartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/29ba35c979352f85da4ea3e665e07b957a7b33f8\"\u003e\u003ccode\u003e29ba35c\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c13ab820ed026fa0be2e39ef27d32ae9d8b5b5c1\"\u003e\u003ccode\u003ec13ab82\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/029acdc5adc8f5119745f53fe13b12f1b5ea3c18\"\u003e\u003ccode\u003e029acdc\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b80a13b09bb36ad02bc948a938f63edbc2421325\"\u003e\u003ccode\u003eb80a13b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/5665e50478c5841e57b423cecdc1591a622e5f2f\"\u003e\u003ccode\u003e5665e50\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/a04d9ad94eae420b2c13288208ce3f83aa3b1cdd\"\u003e\u003ccode\u003ea04d9ad\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/21de0d80e7d9da18fad83780ff499c7b44c8e24b\"\u003e\u003ccode\u003e21de0d8\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/124a586fd772165a905c676cd2be21d7993306b8\"\u003e\u003ccode\u003e124a586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.7\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.6...v0.22.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.6\u0026new-version=0.22.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/FlorianPfaff/pyRecEst/pull/1411","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianPfaff%2FpyRecEst/issues/1411","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1411/packages"},{"uuid":"3686767539","node_id":"PR_kwDOH59FGM62ptYk","number":2435,"state":"open","title":"build: bump beartype from 0.22.6 to 0.22.7","user":"dependabot[bot]","labels":["dependencies","maintenance"],"assignees":["pyansys-ci-bot"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-02T17:05:48.000Z","updated_at":"2025-12-02T17:22:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build","packages":[{"name":"beartype","old_version":"0.22.6","new_version":"0.22.7","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.6 to 0.22.7.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e descends like an owl with sorta unsettling black eyes devoid of pupils, majestic wings aloft on the winds of QA. \u003cem\u003eDo not be alarmed.\u003c/em\u003e Actually, isn't that when you should be most alarmed? When somebody says, \u0026quot;Do not be alarmed\u0026quot;!? The italicization isn't helping, either. \u003cem\u003eBut this will\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype   # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv sync beartype                 # \u0026lt;-- \u003ca href=\"https://github.com/Glinte\"\u003e\u003ccode\u003e@​Glinte\u003c/code\u003e\u003c/a\u003e said it, so it must be true\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is the last patch release of the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. That was a lie. Fortunately, seductive lies aren't a problem here at \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. If we want to hear it, it can't be bad. This release brings big:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGradio compatibility!\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now be fully compliant with Gradio needs, wants, hungers, and cravings. Gradio: the ML web framework that was hard to satisfy, but we're pretty sure we managed. If you want Gradio, you want \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e. :spider_web: + :bear: = :safety_pin:\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eShout-outs to \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e!\u003c/strong\u003e \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's pure-Python implementation of the hypothetical \u003ccode\u003easync yield from\u003c/code\u003e expression at \u003ca href=\"https://github.com/rbroderi/future-async-yield-from\"\u003e\u003ccode\u003efuture-async-yield-from\u003c/code\u003e\u003c/a\u003e was hugely inspiring. If you're into mutating Python into misshapen forms through the cosmic horrors of forbidden AST transformations, \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...who isn't? am i right? i'm right\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e check out \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's work. He's up to no good, which is the best kind. :hugs: :people_hugging:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThat's it. That's all we've got. But you don't even want to know the things we \u003cem\u003edid\u003c/em\u003e, the places we \u003cem\u003ewent\u003c/em\u003e, the behaviour we \u003cem\u003eregret\u003c/em\u003e, to make Gradio + \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e happen. If Gradio means nothing to you, we've got nothing but memes for you.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now support all popular Python frameworks. If you (or a codebase you love) know of any Python packages, modules, APIs, or other services that \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e does not support, please drop us a line on the issue tracker. We'll drop what we're doing \u003c!-- raw HTML omitted --\u003e\u003cem\u003evideo games. it's always video games.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e and \u0026quot;immediately\u0026quot; resolve that for your heroic team.\u003c/p\u003e\n\u003cp\u003eUntil then, video games await. Let's get those memes started!\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/4rNc-iqduHgAAAAd/owl.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003ethe more you stare at this, the more your brain sees\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eLastly but Beastly (but not Leastly)...\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/beartype/beartype/commit/e7de8aa4e03ebd4f6a2ce2da9d1de9bd58291a5a\"\u003e\u003ccode\u003ee7de8aa\u003c/code\u003e\u003c/a\u003e Beartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/29ba35c979352f85da4ea3e665e07b957a7b33f8\"\u003e\u003ccode\u003e29ba35c\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c13ab820ed026fa0be2e39ef27d32ae9d8b5b5c1\"\u003e\u003ccode\u003ec13ab82\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/029acdc5adc8f5119745f53fe13b12f1b5ea3c18\"\u003e\u003ccode\u003e029acdc\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b80a13b09bb36ad02bc948a938f63edbc2421325\"\u003e\u003ccode\u003eb80a13b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/5665e50478c5841e57b423cecdc1591a622e5f2f\"\u003e\u003ccode\u003e5665e50\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/a04d9ad94eae420b2c13288208ce3f83aa3b1cdd\"\u003e\u003ccode\u003ea04d9ad\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/21de0d80e7d9da18fad83780ff499c7b44c8e24b\"\u003e\u003ccode\u003e21de0d8\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/124a586fd772165a905c676cd2be21d7993306b8\"\u003e\u003ccode\u003e124a586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.7\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.6...v0.22.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.6\u0026new-version=0.22.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ansys/pyansys-geometry/pull/2435","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpyansys-geometry/issues/2435","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2435/packages"},{"uuid":"3678933334","node_id":"PR_kwDOJPFt4s62PImW","number":1381,"state":"closed","title":"Bump beartype from 0.22.6 to 0.22.7","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-12-01T02:53:28.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T02:23:07.000Z","updated_at":"2025-12-01T02:53:36.000Z","time_to_close":1821,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.22.6","new_version":"0.22.7","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.6 to 0.22.7.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e descends like an owl with sorta unsettling black eyes devoid of pupils, majestic wings aloft on the winds of QA. \u003cem\u003eDo not be alarmed.\u003c/em\u003e Actually, isn't that when you should be most alarmed? When somebody says, \u0026quot;Do not be alarmed\u0026quot;!? The italicization isn't helping, either. \u003cem\u003eBut this will\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype   # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv sync beartype                 # \u0026lt;-- \u003ca href=\"https://github.com/Glinte\"\u003e\u003ccode\u003e@​Glinte\u003c/code\u003e\u003c/a\u003e said it, so it must be true\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is the last patch release of the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. That was a lie. Fortunately, seductive lies aren't a problem here at \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. If we want to hear it, it can't be bad. This release brings big:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGradio compatibility!\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now be fully compliant with Gradio needs, wants, hungers, and cravings. Gradio: the ML web framework that was hard to satisfy, but we're pretty sure we managed. If you want Gradio, you want \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e. :spider_web: + :bear: = :safety_pin:\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eShout-outs to \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e!\u003c/strong\u003e \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's pure-Python implementation of the hypothetical \u003ccode\u003easync yield from\u003c/code\u003e expression at \u003ca href=\"https://github.com/rbroderi/future-async-yield-from\"\u003e\u003ccode\u003efuture-async-yield-from\u003c/code\u003e\u003c/a\u003e was hugely inspiring. If you're into mutating Python into misshapen forms through the cosmic horrors of forbidden AST transformations, \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...who isn't? am i right? i'm right\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e check out \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's work. He's up to no good, which is the best kind. :hugs: :people_hugging:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThat's it. That's all we've got. But you don't even want to know the things we \u003cem\u003edid\u003c/em\u003e, the places we \u003cem\u003ewent\u003c/em\u003e, the behaviour we \u003cem\u003eregret\u003c/em\u003e, to make Gradio + \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e happen. If Gradio means nothing to you, we've got nothing but memes for you.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now support all popular Python frameworks. If you (or a codebase you love) know of any Python packages, modules, APIs, or other services that \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e does not support, please drop us a line on the issue tracker. We'll drop what we're doing \u003c!-- raw HTML omitted --\u003e\u003cem\u003evideo games. it's always video games.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e and \u0026quot;immediately\u0026quot; resolve that for your heroic team.\u003c/p\u003e\n\u003cp\u003eUntil then, video games await. Let's get those memes started!\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/4rNc-iqduHgAAAAd/owl.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003ethe more you stare at this, the more your brain sees\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eLastly but Beastly (but not Leastly)...\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/beartype/beartype/commit/e7de8aa4e03ebd4f6a2ce2da9d1de9bd58291a5a\"\u003e\u003ccode\u003ee7de8aa\u003c/code\u003e\u003c/a\u003e Beartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/29ba35c979352f85da4ea3e665e07b957a7b33f8\"\u003e\u003ccode\u003e29ba35c\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c13ab820ed026fa0be2e39ef27d32ae9d8b5b5c1\"\u003e\u003ccode\u003ec13ab82\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/029acdc5adc8f5119745f53fe13b12f1b5ea3c18\"\u003e\u003ccode\u003e029acdc\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b80a13b09bb36ad02bc948a938f63edbc2421325\"\u003e\u003ccode\u003eb80a13b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/5665e50478c5841e57b423cecdc1591a622e5f2f\"\u003e\u003ccode\u003e5665e50\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/a04d9ad94eae420b2c13288208ce3f83aa3b1cdd\"\u003e\u003ccode\u003ea04d9ad\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/21de0d80e7d9da18fad83780ff499c7b44c8e24b\"\u003e\u003ccode\u003e21de0d8\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/124a586fd772165a905c676cd2be21d7993306b8\"\u003e\u003ccode\u003e124a586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.7\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.6...v0.22.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.6\u0026new-version=0.22.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/FlorianPfaff/pyRecEst/pull/1381","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianPfaff%2FpyRecEst/issues/1381","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1381/packages"},{"uuid":"3660183695","node_id":"PR_kwDOLWRIZM61RHT2","number":483,"state":"closed","title":"Bump the actions group with 4 updates","user":"dependabot[bot]","labels":["topic: dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-29T03:35:53.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-24T19:10:34.000Z","updated_at":"2025-11-29T03:35:54.000Z","time_to_close":375919,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"actions","update_count":4,"packages":[{"name":"ruff","old_version":"0.14.5","new_version":"0.14.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"beartype","old_version":"0.22.5","new_version":"0.22.6","repository_url":"https://github.com/beartype/beartype"},{"name":"basedpyright","old_version":"1.33.0","new_version":"1.34.0","repository_url":"https://github.com/detachhead/basedpyright"},{"name":"pyrefly","old_version":"0.41.3","new_version":"0.43.1","repository_url":"https://github.com/facebook/pyrefly"}],"path":null,"ecosystem":"pip"},"body":"Bumps the actions group with 4 updates: [ruff](https://github.com/astral-sh/ruff), [beartype](https://github.com/beartype/beartype), [basedpyright](https://github.com/detachhead/basedpyright) and [pyrefly](https://github.com/facebook/pyrefly).\n\nUpdates `ruff` from 0.14.5 to 0.14.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Support new PySNMP API paths (\u003ccode\u003eS508\u003c/code\u003e, \u003ccode\u003eS509\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21374\"\u003e#21374\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdjust own-line comment placement between branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21185\"\u003e#21185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error when formatting attribute expressions with outer parentheses, parenthesized value, and trailing comment on value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20418\"\u003e#20418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when formatting comments in unary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21501\"\u003e#21501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003efmt: skip\u003c/code\u003e for compound statements on a single line (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20633\"\u003e#20633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB103\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21454\"\u003e#21454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positive for complex conversion specifiers in \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positive on \u003ccode\u003eClassVar\u003c/code\u003e reassignment (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21478\"\u003e#21478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRender hyperlinks for lint errors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21514\"\u003e#21514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003eruff analyze\u003c/code\u003e option to skip over imports in \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21472\"\u003e#21472\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit \u003ccode\u003eeglot-format\u003c/code\u003e hook to eglot-managed Python buffers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21459\"\u003e#21459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention \u003ccode\u003eforce-exclude\u003c/code\u003e in \u0026quot;Configuration \u0026gt; Python file discovery\u0026quot; (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21500\"\u003e#21500\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gauthsvenkat\"\u003e\u003ccode\u003e@​gauthsvenkat\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thamer\"\u003e\u003ccode\u003e@​thamer\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ruchir28\"\u003e\u003ccode\u003e@​Ruchir28\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.14.6\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.14.6/ruff-installer.sh | sh\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Support new PySNMP API paths (\u003ccode\u003eS508\u003c/code\u003e, \u003ccode\u003eS509\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21374\"\u003e#21374\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdjust own-line comment placement between branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21185\"\u003e#21185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error when formatting attribute expressions with outer parentheses, parenthesized value, and trailing comment on value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20418\"\u003e#20418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when formatting comments in unary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21501\"\u003e#21501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003efmt: skip\u003c/code\u003e for compound statements on a single line (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20633\"\u003e#20633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB103\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21454\"\u003e#21454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positive for complex conversion specifiers in \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positive on \u003ccode\u003eClassVar\u003c/code\u003e reassignment (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21478\"\u003e#21478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRender hyperlinks for lint errors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21514\"\u003e#21514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003eruff analyze\u003c/code\u003e option to skip over imports in \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21472\"\u003e#21472\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit \u003ccode\u003eeglot-format\u003c/code\u003e hook to eglot-managed Python buffers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21459\"\u003e#21459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention \u003ccode\u003eforce-exclude\u003c/code\u003e in \u0026quot;Configuration \u0026gt; Python file discovery\u0026quot; (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21500\"\u003e#21500\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gauthsvenkat\"\u003e\u003ccode\u003e@​gauthsvenkat\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thamer\"\u003e\u003ccode\u003e@​thamer\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ruchir28\"\u003e\u003ccode\u003e@​Ruchir28\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/59c6cb521d26380120f8522476fd09d296bf4f2e\"\u003e\u003ccode\u003e59c6cb5\u003c/code\u003e\u003c/a\u003e Bump 0.14.6 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21558\"\u003e#21558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/54dba15088ced32c31592ab44ddfdf40614002bb\"\u003e\u003ccode\u003e54dba15\u003c/code\u003e\u003c/a\u003e [ty] Improve debug messages when imports fail (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21555\"\u003e#21555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1af318534a01ba6be69d7d77c33e96080635a8af\"\u003e\u003ccode\u003e1af3185\u003c/code\u003e\u003c/a\u003e [ty] Add support for relative import completions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/553e5686248e86b9c781af77c714adc229bf8cc5\"\u003e\u003ccode\u003e553e568\u003c/code\u003e\u003c/a\u003e [ty] Refactor detection of import statements for completions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/cdef3f5ab8115e2581e080341d4bab932d905af4\"\u003e\u003ccode\u003ecdef3f5\u003c/code\u003e\u003c/a\u003e [ty] Use dedicated collector for completions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/617882242719af179a42be68170f9de9d83174f4\"\u003e\u003ccode\u003e6178822\u003c/code\u003e\u003c/a\u003e [ty] Attach subdiagnostics to \u003ccode\u003eunresolved-import\u003c/code\u003e errors for relative imports...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6b7adb0537d1a57f26cf462a637af483e0ba2c75\"\u003e\u003ccode\u003e6b7adb0\u003c/code\u003e\u003c/a\u003e [ty] support PEP 613 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21394\"\u003e#21394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/06941c1987bd4fe2b54d99b5514784472cabc0b3\"\u003e\u003ccode\u003e06941c1\u003c/code\u003e\u003c/a\u003e [ty] More low-hanging fruit for inlay hint goto-definition (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21548\"\u003e#21548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eb7c098d6b70aacbaebe8b7c8d7710ad4ad0f46b\"\u003e\u003ccode\u003eeb7c098\u003c/code\u003e\u003c/a\u003e [ty] implement \u003ccode\u003eTypedDict\u003c/code\u003e structural assignment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21467\"\u003e#21467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1b28fc1f1417284a075afa4a18c5e9d31a7d8620\"\u003e\u003ccode\u003e1b28fc1\u003c/code\u003e\u003c/a\u003e [ty] Add more random TypeDetails and tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21546\"\u003e#21546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.5...0.14.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beartype` from 0.22.5 to 0.22.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/876591c0f3f89dc214cea7ce6f73873a6f7f6498\"\u003e\u003ccode\u003e876591c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.6: Gradio, They Said. It'll Be Easy, They Said.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/1f57def01dc623e775d13c2b7730c83df9df1981\"\u003e\u003ccode\u003e1f57def\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isgeneratorfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae520e9f22fcc03b9aab67928d9d4c2f320e7490\"\u003e\u003ccode\u003eae520e9\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isgeneratorfunction()\u003c/code\u003e mimicry x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/aa872c5194030a28fdf957676bcba815ae9e785b\"\u003e\u003ccode\u003eaa872c5\u003c/code\u003e\u003c/a\u003e PyPy resurrection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/43856587c7b5aee69891a5dbbd3522d9bc4b0048\"\u003e\u003ccode\u003e4385658\u003c/code\u003e\u003c/a\u003e \u003ccode\u003edocutils.core.publish_parts()\u003c/code\u003e \u0026gt;= 0.22.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/de34bacd24102dc9196e59d84e5874cca2e153c9\"\u003e\u003ccode\u003ede34bac\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.6\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.5...v0.22.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `basedpyright` from 1.33.0 to 1.34.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/b908f269cc605635f226d4b2f2db7c43d673d898\"\u003e\u003ccode\u003eb908f26\u003c/code\u003e\u003c/a\u003e 1.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/21cd035490ae1852d47217aaf31816d35b85ae89\"\u003e\u003ccode\u003e21cd035\u003c/code\u003e\u003c/a\u003e document go to implementations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/08d798a2b78f4b60759b66c9b76bdc27be604276\"\u003e\u003ccode\u003e08d798a\u003c/code\u003e\u003c/a\u003e hopefully fix npm tasks running with the globally installed version of node\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/6400e27a424d7caefcb76647a9a6fe107c34120d\"\u003e\u003ccode\u003e6400e27\u003c/code\u003e\u003c/a\u003e implement \u003ccode\u003etextDocument/implementation\u003c/code\u003e to find overrides (\u003ca href=\"https://redirect.github.com/detachhead/basedpyright/issues/1636\"\u003e#1636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/513aa518c60e4fe8e9b3cb87c115dc75427013f4\"\u003e\u003ccode\u003e513aa51\u003c/code\u003e\u003c/a\u003e workaround for crash in vscode pylint plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/759c0da37d7f7cbfa51471beeb2178cc93110262\"\u003e\u003ccode\u003e759c0da\u003c/code\u003e\u003c/a\u003e disable \u003ccode\u003epython.terminal.shellIntegration.enabled\u003c/code\u003e in vscode because it's broken\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/acfea41d0026bf99fa9084f101776ff9bdf5ca70\"\u003e\u003ccode\u003eacfea41\u003c/code\u003e\u003c/a\u003e Fix issues with highlighting decorators/properties (\u003ca href=\"https://redirect.github.com/detachhead/basedpyright/issues/1632\"\u003e#1632\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/ac639c21c42cccaa864af80f57295cae19a65f24\"\u003e\u003ccode\u003eac639c2\u003c/code\u003e\u003c/a\u003e remove workaround for language server crash when installing basedpyright with...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/c7537d4cc6e9f0801cbf39a28bb90b70e221e7bb\"\u003e\u003ccode\u003ec7537d4\u003c/code\u003e\u003c/a\u003e Chinese (Simplified) localization update (2025.11) (\u003ca href=\"https://redirect.github.com/detachhead/basedpyright/issues/1628\"\u003e#1628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/449c4b6ea9455c415e29ce10ee77e6a915815fea\"\u003e\u003ccode\u003e449c4b6\u003c/code\u003e\u003c/a\u003e document hover and \u0026quot;go to definition\u0026quot; on operators\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/detachhead/basedpyright/compare/v1.33.0...v1.34.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyrefly` from 0.41.3 to 0.43.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/pyrefly/releases\"\u003epyrefly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyrefly v0.42.0 - BETA\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eStatus : BETA 🎉\u003c/strong\u003e\u003cbr /\u003e\n\u003cem\u003eRelease date: 17 Nov 2025\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003e\u003cstrong\u003e🚀Pyrefly is now in Beta!\u003c/strong\u003e\u003c/h2\u003e\n\u003cp\u003eWe’re thrilled to announce with this release that Pyrefly has transitioned from Alpha to Beta status! This marks a new chapter for the project, with increased stability, feature maturity, and readiness for broader adoption. When using a version of Pyrefly with Beta status you can feel confident that the IDE extension is ready for production use, while core type-checking features can be used, but be aware some edge cases are still being addressed as we make progress towards a later stable v1 release (\u003ca href=\"https://github.com/facebook/pyrefly/issues\"\u003ebug reports welcome\u003c/a\u003e!).\u003c/p\u003e\n\u003cp\u003eThese release notes will use a slightly different format than usual, covering the major highlights of the last 6 months that have contributed to this milestone.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003cstrong\u003e🏆 Major Highlights from Alpha Releases\u003c/strong\u003e\u003c/h2\u003e\n\u003ch3\u003e\u003cstrong\u003e1. IDE \u0026amp; Language Server Features\u003c/strong\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInstant IDE Startup: Major performance improvements for large environments.\u003c/li\u003e\n\u003cli\u003eSemantic Highlighting, Inlay Hints: Enhanced code readability and added highlighting for unreachable blocks and unused function parameters. Unnecessary/obvious inlay hints are no longer displayed.\u003c/li\u003e\n\u003cli\u003eHover Cards \u0026amp; Docstrings: Richer information in tooltips, including docstrings for built-in types and links to error documentation.\u003c/li\u003e\n\u003cli\u003eConfigurable LSP Features: Greater control over enabling/disabling IDE features like autocomplete, go-to-definition, and hover.\u003c/li\u003e\n\u003cli\u003eExtensions released for a range of popular IDEs, including \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=meta.pyrefly\"\u003eVSCode\u003c/a\u003e, \u003ca href=\"https://www.jetbrains.com/help/pycharm/2025.3/lsp-tools.html#pyrefly\"\u003ePyCharm\u003c/a\u003e and \u003ca href=\"https://pyrefly.org/en/docs/IDE/#other-editors\"\u003emore\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eSome relevant issues: \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/853\"\u003e#853\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1403\"\u003e#1403\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1335\"\u003e#1335\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/873\"\u003e#873\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/802\"\u003e#802\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/716\"\u003e#716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cstrong\u003e2. Type Checking Enhancements\u003c/strong\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved overload evaluation: Fully compliant with the Python typing spec\u003c/li\u003e\n\u003cli\u003eSmarter Type Narrowing: Improved handling of variable types in loops, control flow, and pattern matching. Added ability to understand patterns like `getattr()`, `hasattr()`, and `dict.get()`\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypedDict\u003c/code\u003e \u0026amp; Protocol Improvements: More accurate type checking for structural types, including handling for union keys and improved inheritance checks.\u003c/li\u003e\n\u003cli\u003eAdditional Python typing features: \u003ccode\u003eLiteralString\u003c/code\u003e \u0026amp; \u003ccode\u003eTypeAliasType\u003c/code\u003e support, abstract class instantiation checks, unused awaitable checks, multiple inheritance consistency checks, and more!\u003c/li\u003e\n\u003cli\u003eConfigurable Type Inference: Advanced features like empty container inference and return type inference can be toggled via config.\u003c/li\u003e\n\u003cli\u003eSome relevant issues: \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/684\"\u003e#684\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/872\"\u003e#872\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1058\"\u003e#1058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/940\"\u003e#940\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/815\"\u003e#815\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1461\"\u003e#1461\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/44\"\u003e#44\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cstrong\u003e3. Error Reporting \u0026amp; Suppression\u003c/strong\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGranular Error Filtering: Filter summarized errors by code, set error severity, and get clickable links to docs.\u003c/li\u003e\n\u003cli\u003eSuppression Workflow: Scripts and commands to silence new errors after upgrades, making large codebase migrations manageable.\u003c/li\u003e\n\u003cli\u003eImproved Error Messages: Clearer, more actionable diagnostics for overloads, missing imports, and more.\u003c/li\u003e\n\u003cli\u003eSome relevant issues: \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1276\"\u003e#1276\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1302\"\u003e#1302\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/890\"\u003e#890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1401\"\u003e#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cstrong\u003e4. Framework Integrations\u003c/strong\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDjango: Partial support, with ongoing improvements for model field inference, enum support, and lazy label handling.\u003c/li\u003e\n\u003cli\u003ePydantic: Experimental support, with growing documentation and bug fixes.\u003c/li\u003e\n\u003cli\u003eSome relevant issues: \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/316\"\u003e#316\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/334\"\u003e#334\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1276\"\u003e#1276\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/839\"\u003e#839\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cstrong\u003e5. Jupyter Notebook Support (Experimental)\u003c/strong\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFull Language Server Integration: Diagnostics, inlay hints, go-to-definition, hover, semantic tokens, signature help, and completions now work out-of-the-box for .ipynb files.\u003c/li\u003e\n\u003cli\u003eCLI Type Checking for Notebooks\u003c/li\u003e\n\u003cli\u003eJupyter Lab Integration\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/a4d0bfa8abb78ef1ecffbf6c5eae765be1998c5b\"\u003e\u003ccode\u003ea4d0bfa\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/693b94f4cd773539df59152a4112e709de244d1e\"\u003e\u003ccode\u003e693b94f\u003c/code\u003e\u003c/a\u003e highlight false negative\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/8a3b4d953f9a334caa8915cdeeefa114c5ca3d5e\"\u003e\u003ccode\u003e8a3b4d9\u003c/code\u003e\u003c/a\u003e filter star imports from unused detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/95c23bd100805b1175dba986e995807e8f39b2b2\"\u003e\u003ccode\u003e95c23bd\u003c/code\u003e\u003c/a\u003e fix unused variable detection for reassignments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/d668be0912039a2dab14f1d87a3d95a79d85a514\"\u003e\u003ccode\u003ed668be0\u003c/code\u003e\u003c/a\u003e Test that Union types do not split properly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/549429e87c19a8ee7e964469dde2426ceaae8b28\"\u003e\u003ccode\u003e549429e\u003c/code\u003e\u003c/a\u003e Implement write_type.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/fcbf94228f2d8fee99e7d2592d05f338567fee5e\"\u003e\u003ccode\u003efcbf942\u003c/code\u003e\u003c/a\u003e fix parsing of multi-line parameter descriptions in docstrings \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1588\"\u003e#1588\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1629\"\u003e#1629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/19a2edc42423af30cd6a20cc66d1324c7d010bfc\"\u003e\u003ccode\u003e19a2edc\u003c/code\u003e\u003c/a\u003e Implement write_targs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/1bd817f78bd9a41d0febc4d9d45169175c2eeadb\"\u003e\u003ccode\u003e1bd817f\u003c/code\u003e\u003c/a\u003e Implement write_lit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/853af26db534d6d1a386ded9f9eb361fed297a6c\"\u003e\u003ccode\u003e853af26\u003c/code\u003e\u003c/a\u003e Implement write_qname\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facebook/pyrefly/compare/0.41.3...0.43.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/jorenham/optype/pull/483","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorenham%2Foptype/issues/483","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/483/packages"},{"uuid":"3656862961","node_id":"PR_kwDODaNHaM61F88Z","number":110,"state":"closed","title":"Bump the minor-or-patch group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-08T02:24:37.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-24T02:40:12.000Z","updated_at":"2025-12-08T02:24:38.000Z","time_to_close":1208665,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-or-patch","update_count":3,"packages":[{"name":"beartype","old_version":"0.22.4","new_version":"0.22.6","repository_url":"https://github.com/beartype/beartype"},{"name":"certifi","old_version":"2025.10.5","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"sphinx-substitution-extensions","old_version":"2025.10.24","new_version":"2025.11.17","repository_url":"https://github.com/adamtheturtle/sphinx-substitution-extensions"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-or-patch group with 3 updates in the / directory: [beartype](https://github.com/beartype/beartype), [certifi](https://github.com/certifi/python-certifi) and [sphinx-substitution-extensions](https://github.com/adamtheturtle/sphinx-substitution-extensions).\n\nUpdates `beartype` from 0.22.4 to 0.22.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e does stuff. \u003cem\u003eUhhh.\u003c/em\u003e Wait. Why are we releasing yet another \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.x\u003c/code\u003e patch within the span of ten seconds? We were just here. We already released \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e a week ago. Wasn't that good enough!? I... I guess not. Turns out \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e support has been busted in \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e for literally years. Probably decades. Nobody cared – until somebody cared. I blame only myself despite wanting to point the finger at somebody else. Anybody else. I'll take anybody. Let's start over.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e valiantly arises from the ashes of our issue tracker like a burning phoenix on fire!!!! You can't stop this:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e stoically puts on the sunglasses so you don't have to.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/Ow-oBn2sTXoAAAAd/sonny-crockett-crockett.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eThe sky is blue and I have hair again.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Still Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a patch release that guarantees compatibility with \u003cstrong\u003ePython optimization.\u003c/strong\u003e Both the \u003ccode\u003e@beartype\u003c/code\u003e decorator and \u003ccode\u003ebeartype.claw\u003c/code\u003e import hooks now silently reduce to noops (i.e., do nothing rather than type-checking everything) when users:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePass one or more \u003ccode\u003e-O\u003c/code\u003e options to the Python interpreter (e.g., \u003ccode\u003epython -O worldshattering_app_shatters_world_accidentally.py\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSet the \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e environment variable to a positive integer (e.g., \u003ccode\u003ePYTHONOPTIMIZE=1 python worldrepairing_app_repairs_world_shattered_by_worldshattering_app.py\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://gofastmcp.com/getting-started/welcome\"\u003eFastMCP\u003c/a\u003e users \u003cem\u003ereally\u003c/em\u003e care about Python optimization. Apparently, nobody else does. Makes sense. Even \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is too slow for those speed-obsessed LLM gurus. How can this be!? It's never enough for the AI. In the relentless drive for faster query turnaround times, FastMCP is plumbing the depths of the impossible. There are always casualties on the road to progress. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e was one of those casualties. \u003cem\u003eBut no more.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a burning phoenix on fire. It's not a metaphor anymore. We're pretty sure our issue tracker is on fire. What is it now? Still \u003cstrong\u003e98 open issues\u003c/strong\u003e despite a flurry of recent issue resolutions that took our last will to code? Yup. 98 open issues. My... my gods. GitHub. Does no one sleep around here? :face_exhaling:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e + \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e: \u003cem\u003ebecause you're too tired to even run \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e anymore.\u003c/em\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/beartype/beartype/commit/876591c0f3f89dc214cea7ce6f73873a6f7f6498\"\u003e\u003ccode\u003e876591c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.6: Gradio, They Said. It'll Be Easy, They Said.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/1f57def01dc623e775d13c2b7730c83df9df1981\"\u003e\u003ccode\u003e1f57def\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isgeneratorfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae520e9f22fcc03b9aab67928d9d4c2f320e7490\"\u003e\u003ccode\u003eae520e9\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isgeneratorfunction()\u003c/code\u003e mimicry x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/aa872c5194030a28fdf957676bcba815ae9e785b\"\u003e\u003ccode\u003eaa872c5\u003c/code\u003e\u003c/a\u003e PyPy resurrection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/43856587c7b5aee69891a5dbbd3522d9bc4b0048\"\u003e\u003ccode\u003e4385658\u003c/code\u003e\u003c/a\u003e \u003ccode\u003edocutils.core.publish_parts()\u003c/code\u003e \u0026gt;= 0.22.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/de34bacd24102dc9196e59d84e5874cca2e153c9\"\u003e\u003ccode\u003ede34bac\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.6\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ec7400f6336a0b28cbcc3036e26871802b333f7b\"\u003e\u003ccode\u003eec7400f\u003c/code\u003e\u003c/a\u003e Beartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d63933565d3432dc00db489c3289d3c20199a894\"\u003e\u003ccode\u003ed639335\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ebeartype.claw\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e114bd107cb233191aaa94694ac648736fc4e258\"\u003e\u003ccode\u003ee114bd1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@beartype(conf=...)\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/2a29e8ed3091326dbc2d0390fdece7fe8a1a7d75\"\u003e\u003ccode\u003e2a29e8e\u003c/code\u003e\u003c/a\u003e Continuous integration (CI) badge.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.4...v0.22.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.10.5 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.10.05...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-substitution-extensions` from 2025.10.24 to 2025.11.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/releases\"\u003esphinx-substitution-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.11.17\u003c/h2\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/compare/2025.10.24...2025.11.17\"\u003e2025.11.17\u003c/a\u003e (2025-11-17)\u003c/h3\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/adamtheturtle/sphinx-substitution-extensions/blob/main/CHANGELOG.rst\"\u003esphinx-substitution-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.11.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGive version in extension metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eliteralinclude\u003c/code\u003e directive now supports the following options:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e:content-substitutions:\u003c/code\u003e - Performs substitutions on the included file content.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e:path-substitutions:\u003c/code\u003e - Performs substitutions on the file path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eimage\u003c/code\u003e directive now supports the following option:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e:path-substitutions:\u003c/code\u003e - Performs substitutions on the image file path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003esubstitutions_default_enabled\u003c/code\u003e configuration option to enable substitutions by default.\nWhen set to \u003ccode\u003eTrue\u003c/code\u003e in \u003ccode\u003econf.py\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003ecode-block\u003c/code\u003e directives without requiring the \u003ccode\u003e:substitutions:\u003c/code\u003e flag.\nUse the \u003ccode\u003e:nosubstitutions:\u003c/code\u003e flag on individual code blocks to disable substitutions when the default is enabled.\u003c/li\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003eliteralinclude\u003c/code\u003e directives (both content and path) without requiring the \u003ccode\u003e:content-substitutions:\u003c/code\u003e or \u003ccode\u003e:path-substitutions:\u003c/code\u003e flags.\nUse the \u003ccode\u003e:nocontent-substitutions:\u003c/code\u003e or \u003ccode\u003e:nopath-substitutions:\u003c/code\u003e flags on individual literalinclude directives to disable substitutions when the default is enabled.\u003c/li\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003eimage\u003c/code\u003e directives (path) without requiring the \u003ccode\u003e:path-substitutions:\u003c/code\u003e flag.\nUse the \u003ccode\u003e:nopath-substitutions:\u003c/code\u003e flag on individual image directives to disable substitutions when the default is enabled.\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/adamtheturtle/sphinx-substitution-extensions/commit/a8f37466b596bdeee1130bb92d4dbaec3cd39457\"\u003e\u003ccode\u003ea8f3746\u003c/code\u003e\u003c/a\u003e Bump CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/2ceca0f4864c83cacae596efd85b207d47bb5cfe\"\u003e\u003ccode\u003e2ceca0f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1264\"\u003e#1264\u003c/a\u003e from adamtheturtle/fix-md-sample\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/3e26f1f7887350ede868cf5e8db3011779d515ac\"\u003e\u003ccode\u003e3e26f1f\u003c/code\u003e\u003c/a\u003e Add Markdown examples for new directive support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/549be9718849f1efb59dd586eb7b58ef6b5a9c28\"\u003e\u003ccode\u003e549be97\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1263\"\u003e#1263\u003c/a\u003e from adamtheturtle/image-subst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/0b675f88e89776501aea981be450fe4d0839eb4f\"\u003e\u003ccode\u003e0b675f8\u003c/code\u003e\u003c/a\u003e Remove some comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/0debe432e4bbf3e64c563936c21bd0a42a44b368\"\u003e\u003ccode\u003e0debe43\u003c/code\u003e\u003c/a\u003e Fix mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/b74929af0f44cde1060499f4ec210c7982b2aa07\"\u003e\u003ccode\u003eb74929a\u003c/code\u003e\u003c/a\u003e Fix pyright and use more useful sample image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/ebdd07e39ae24615905a5286d10d4292c80cecbd\"\u003e\u003ccode\u003eebdd07e\u003c/code\u003e\u003c/a\u003e Add images to the samples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/fc80e883c505628ef7130fb62592acdb44bb21c5\"\u003e\u003ccode\u003efc80e88\u003c/code\u003e\u003c/a\u003e Add path substitutions for images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/739cca0683e995e553678356ed77a5d8d2bdd5a4\"\u003e\u003ccode\u003e739cca0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1262\"\u003e#1262\u003c/a\u003e from adamtheturtle/add-default-substitutions-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/compare/2025.10.24...2025.11.17\"\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/FAIRDataTeam/FAIRDataPoint-Docs/pull/110","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FAIRDataTeam%2FFAIRDataPoint-Docs/issues/110","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/110/packages"},{"uuid":"3609251578","node_id":"PR_kwDOP9frXc6ymPXl","number":37,"state":"open","title":"deps(deps): bump the runtime group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-10T18:43:59.000Z","updated_at":"2025-11-10T18:44:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"runtime","update_count":6,"packages":[{"name":"typer","old_version":"0.19.2","new_version":"0.20.0","repository_url":"https://github.com/fastapi/typer"},{"name":"beartype","old_version":"0.22.2","new_version":"0.22.5","repository_url":"https://github.com/beartype/beartype"},{"name":"coverage","old_version":"7.10.7","new_version":"7.11.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pymarkdownlnt","old_version":"0.9.32","new_version":"0.9.33","repository_url":"https://github.com/jackdewinter/pymarkdown"},{"name":"ipython","old_version":"9.6.0","new_version":"9.7.0","repository_url":"https://github.com/ipython/ipython"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"}],"path":null,"ecosystem":"pip"},"body":"Bumps the runtime group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [typer](https://github.com/fastapi/typer) | `0.19.2` | `0.20.0` |\n| [beartype](https://github.com/beartype/beartype) | `0.22.2` | `0.22.5` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.11.3` |\n| [pymarkdownlnt](https://github.com/jackdewinter/pymarkdown) | `0.9.32` | `0.9.33` |\n| [ipython](https://github.com/ipython/ipython) | `9.6.0` | `9.7.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n\n\nUpdates `typer` from 0.19.2 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.20.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Enable command suggestions on typo by default. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1371\"\u003e#1371\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Add support for Python 3.14. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1372\"\u003e#1372\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add nightly workflow to run tests against CPython main branch. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1374\"\u003e#1374\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.21 to 9.6.22. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1377\"\u003e#1377\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Configure reminder for \u003ccode\u003ewaiting\u003c/code\u003e label in \u003ccode\u003eissue-manager\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1378\"\u003e#1378\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.3 to 0.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1368\"\u003e#1368\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1376\"\u003e#1376\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-macros-plugin from 1.3.9 to 1.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1354\"\u003e#1354\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.20 to 9.6.21. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1360\"\u003e#1360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.4.1 to 1.11.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/957\"\u003e#957\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 6 to 7. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1369\"\u003e#1369\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.2 to 0.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1366\"\u003e#1366\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1367\"\u003e#1367\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump tiangolo/issue-manager from 0.5.1 to 0.6.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1361\"\u003e#1361\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.1 to 0.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1357\"\u003e#1357\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1358\"\u003e#1358\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update docs previews comment, single comment, add failure status. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1359\"\u003e#1359\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.20.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Enable command suggestions on typo by default. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1371\"\u003e#1371\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Add support for Python 3.14. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1372\"\u003e#1372\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add nightly workflow to run tests against CPython main branch. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1374\"\u003e#1374\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.21 to 9.6.22. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1377\"\u003e#1377\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Configure reminder for \u003ccode\u003ewaiting\u003c/code\u003e label in \u003ccode\u003eissue-manager\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1378\"\u003e#1378\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.3 to 0.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1368\"\u003e#1368\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1376\"\u003e#1376\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-macros-plugin from 1.3.9 to 1.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1354\"\u003e#1354\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.20 to 9.6.21. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1360\"\u003e#1360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.4.1 to 1.11.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/957\"\u003e#957\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 6 to 7. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1369\"\u003e#1369\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.2 to 0.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1366\"\u003e#1366\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1367\"\u003e#1367\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump tiangolo/issue-manager from 0.5.1 to 0.6.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1361\"\u003e#1361\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.1 to 0.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1357\"\u003e#1357\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1358\"\u003e#1358\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update docs previews comment, single comment, add failure status. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1359\"\u003e#1359\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/1b74bfe2c6e9e7d7f42dfddff422599d9ca1e962\"\u003e\u003ccode\u003e1b74bfe\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/e9ee0e71d7c90476d0881f53692c967ef58d290c\"\u003e\u003ccode\u003ee9ee0e7\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/f6718b8834a14b8286d39128696c9a0ea8dce918\"\u003e\u003ccode\u003ef6718b8\u003c/code\u003e\u003c/a\u003e ✨ Enable command suggestions on typo by default (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1371\"\u003e#1371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/ffbaed50f96fcea5bffa1c59b97cd222ac0f8b95\"\u003e\u003ccode\u003effbaed5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/9e4764d6fa7ae873a2d5ac50a07968eebb1c9518\"\u003e\u003ccode\u003e9e4764d\u003c/code\u003e\u003c/a\u003e ⬆️ Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1372\"\u003e#1372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/a06eb77ff4d6311c9f7385c18a2203caf132580b\"\u003e\u003ccode\u003ea06eb77\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/6cd1a9e793ec2154f291dda421b02648a96ffeb9\"\u003e\u003ccode\u003e6cd1a9e\u003c/code\u003e\u003c/a\u003e 👷 Add nightly workflow to run tests against CPython main branch (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1374\"\u003e#1374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/9f38ada7bd30d33d4ebed7a32c429c70ac4d1ff8\"\u003e\u003ccode\u003e9f38ada\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/e0ca37720ada8daaa97f899df0174a77d9b3d0bc\"\u003e\u003ccode\u003ee0ca377\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.6.21 to 9.6.22 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1377\"\u003e#1377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/dc2fd89ab9d2cddb0fa44612deea981216623397\"\u003e\u003ccode\u003edc2fd89\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.19.2...0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beartype` from 0.22.2 to 0.22.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e does stuff. \u003cem\u003eUhhh.\u003c/em\u003e Wait. Why are we releasing yet another \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.x\u003c/code\u003e patch within the span of ten seconds? We were just here. We already released \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e a week ago. Wasn't that good enough!? I... I guess not. Turns out \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e support has been busted in \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e for literally years. Probably decades. Nobody cared – until somebody cared. I blame only myself despite wanting to point the finger at somebody else. Anybody else. I'll take anybody. Let's start over.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e valiantly arises from the ashes of our issue tracker like a burning phoenix on fire!!!! You can't stop this:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e stoically puts on the sunglasses so you don't have to.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/Ow-oBn2sTXoAAAAd/sonny-crockett-crockett.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eThe sky is blue and I have hair again.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Still Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a patch release that guarantees compatibility with \u003cstrong\u003ePython optimization.\u003c/strong\u003e Both the \u003ccode\u003e@beartype\u003c/code\u003e decorator and \u003ccode\u003ebeartype.claw\u003c/code\u003e import hooks now silently reduce to noops (i.e., do nothing rather than type-checking everything) when users:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePass one or more \u003ccode\u003e-O\u003c/code\u003e options to the Python interpreter (e.g., \u003ccode\u003epython -O worldshattering_app_shatters_world_accidentally.py\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSet the \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e environment variable to a positive integer (e.g., \u003ccode\u003ePYTHONOPTIMIZE=1 python worldrepairing_app_repairs_world_shattered_by_worldshattering_app.py\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://gofastmcp.com/getting-started/welcome\"\u003eFastMCP\u003c/a\u003e users \u003cem\u003ereally\u003c/em\u003e care about Python optimization. Apparently, nobody else does. Makes sense. Even \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is too slow for those speed-obsessed LLM gurus. How can this be!? It's never enough for the AI. In the relentless drive for faster query turnaround times, FastMCP is plumbing the depths of the impossible. There are always casualties on the road to progress. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e was one of those casualties. \u003cem\u003eBut no more.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a burning phoenix on fire. It's not a metaphor anymore. We're pretty sure our issue tracker is on fire. What is it now? Still \u003cstrong\u003e98 open issues\u003c/strong\u003e despite a flurry of recent issue resolutions that took our last will to code? Yup. 98 open issues. My... my gods. GitHub. Does no one sleep around here? :face_exhaling:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e + \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e: \u003cem\u003ebecause you're too tired to even run \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e anymore.\u003c/em\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/beartype/beartype/commit/ec7400f6336a0b28cbcc3036e26871802b333f7b\"\u003e\u003ccode\u003eec7400f\u003c/code\u003e\u003c/a\u003e Beartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d63933565d3432dc00db489c3289d3c20199a894\"\u003e\u003ccode\u003ed639335\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ebeartype.claw\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e114bd107cb233191aaa94694ac648736fc4e258\"\u003e\u003ccode\u003ee114bd1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@beartype(conf=...)\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/2a29e8ed3091326dbc2d0390fdece7fe8a1a7d75\"\u003e\u003ccode\u003e2a29e8e\u003c/code\u003e\u003c/a\u003e Continuous integration (CI) badge.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ab9a65b5ea82c2672c1db5232a79565e216f4887\"\u003e\u003ccode\u003eab9a65b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003epip\u003c/code\u003e -\u0026gt; \u003ccode\u003euv\u003c/code\u003e code review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/aa5f097fc08d86017f7ffd8381861cd79905fd4d\"\u003e\u003ccode\u003eaa5f097\u003c/code\u003e\u003c/a\u003e snatching away the low hanging fruits from papa bear (UV rocks) (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/57f3de39a4dd84421b80e5fb47aa03ef7f4c45de\"\u003e\u003ccode\u003e57f3de3\u003c/code\u003e\u003c/a\u003e \u003ccode\u003etyping.TypeAliasType\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/4e3db9526b1a23f6b17737f7779a920ac7188e05\"\u003e\u003ccode\u003e4e3db95\u003c/code\u003e\u003c/a\u003e Azure-compliant \u0026quot;beartype.claw\u0026quot; handling x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c293bdd49bba574b7403137d6efdfceee7a76fc6\"\u003e\u003ccode\u003ec293bdd\u003c/code\u003e\u003c/a\u003e GitHub Actions macOS runner disabled x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/0faf2f0b2fb1eefb28eb5f013f88e73be7ffcda3\"\u003e\u003ccode\u003e0faf2f0\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.5\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.2...v0.22.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.11.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.11.3 — 2025-11-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the 7.11.1 changes meant that conflicts between a requested measurement\ncore and other settings would raise an error. This was a breaking change from\nprevious behavior, as reported in \u003ccode\u003eissue 2076\u003c/code\u003e_ and \u003ccode\u003eissue 2078\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eThe previous behavior has been restored: when the requested core conflicts\nwith other settings, another core is used instead, and a warning is issued.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor contributors: the repo has moved from Ned's \u003ccode\u003enedbat GitHub account\u003c/code\u003e_ to\nthe \u003ccode\u003ecoveragepy GitHub organization\u003c/code\u003e_. The default branch has changed from\nmaster to main.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2076: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2076\"\u003ecoveragepy/coveragepy#2076\u003c/a\u003e\n.. _issue 2078: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2078\"\u003ecoveragepy/coveragepy#2078\u003c/a\u003e\n.. _nedbat GitHub account: \u003ca href=\"https://github.com/nedbat\"\u003ehttps://github.com/nedbat\u003c/a\u003e\n.. _coveragepy GitHub organization: \u003ca href=\"https://github.com/coveragepy\"\u003ehttps://github.com/coveragepy\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-11-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.11.2 — 2025-11-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: using the \u0026quot;sysmon\u0026quot; measurement core in 7.11.1, if Python code was\nclaimed to come from a non-Python file, a \u003ccode\u003eNotPython\u003c/code\u003e exception could be\nraised. This could happen for example with Jinja templates compiled to\nPython, as reported in \u003ccode\u003eissue 2077\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDoc: corrected the first entry in the 7.11.1 changelog.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2077: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2077\"\u003ecoveragepy/coveragepy#2077\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-11-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.11.1 — 2025-11-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: some chanages to details of how the measurement core is chosen, and how\nconflicting settings are handled. The \u0026quot;sysmon\u0026quot; core cannot be used with some\nconurrency settings, with dynamic context, and in Python 3.12/3.13, with\nbranch measurement.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf the core is not specified and defaults to \u0026quot;sysmon\u0026quot; (Python 3.14+), but\nother settings conflict with sysmon, then the \u0026quot;ctrace\u0026quot; core will be used\ninstead with no warning. For concurrency conflicts, this used to produce an\nerror, as described in \u003ccode\u003eissue 2064\u003c/code\u003e_.\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/coveragepy/coveragepy/commit/8bb1230de21cd8e3ffd4f7577d93b2406e2b8f9c\"\u003e\u003ccode\u003e8bb1230\u003c/code\u003e\u003c/a\u003e docs: remove duplicate entry in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/06c493cdfe0785fc67d538ed348d2262159a7ed5\"\u003e\u003ccode\u003e06c493c\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.11.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/0823a70f28111290cbe5e56a95c860f5a3aa30f1\"\u003e\u003ccode\u003e0823a70\u003c/code\u003e\u003c/a\u003e docs: prep for 7.11.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/843479261fd9cb10ab739f50406a36ed4024ec92\"\u003e\u003ccode\u003e8434792\u003c/code\u003e\u003c/a\u003e fix: sysmon conflicts no longer cause errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1f211841cfe5756b322301dcca446e5398f0d8ea\"\u003e\u003ccode\u003e1f21184\u003c/code\u003e\u003c/a\u003e chore: bump docker/setup-qemu-action in the action-dependencies group (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2080\"\u003e#2080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/bd61620d805ec5d178722ec9aae5466b7514f56f\"\u003e\u003ccode\u003ebd61620\u003c/code\u003e\u003c/a\u003e docs: django_coverage_plugin moved\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1bd73f1aa418804f78f4c83e96c9d675339c50b4\"\u003e\u003ccode\u003e1bd73f1\u003c/code\u003e\u003c/a\u003e build: nedbat/coverage-reports moved to coveragepy/metacov-reports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b54131fd090613b5f251342d9e7ee356026bf8b8\"\u003e\u003ccode\u003eb54131f\u003c/code\u003e\u003c/a\u003e docs: moved to coveragepy, master-\u0026gt;main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f2d740fdb856dfae8aff4634ece15e436f7d9e9a\"\u003e\u003ccode\u003ef2d740f\u003c/code\u003e\u003c/a\u003e build: change more github urls to the coveragepy org\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/776f313f5415bc95ea736f6486634c3f9d0b96f4\"\u003e\u003ccode\u003e776f313\u003c/code\u003e\u003c/a\u003e docs: issue and pr references moved to coveragepy org\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymarkdownlnt` from 0.9.32 to 0.9.33\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jackdewinter/pymarkdown/releases\"\u003epymarkdownlnt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.9.33 - 2025-10-22\u003c/h2\u003e\n\u003ch3\u003eNotes\u003c/h3\u003e\n\u003cp\u003eThis release was a long time in coming, mostly because of things that are not\nimmediately obvious.  Our team took some time to look and experiment with some\nother Python tools, with the aim of reducing the test count for the project\nwithout sacrificing coverage.  In addition, we have started to look at the\nperformance of the project, and how to best accomplish those improvements. Through\nthe end of the year, we have concrete plans to address any new issues, reduce the\ntest count while maintaining quality, finishing \u003ca href=\"https://redirect.github.com/jackdewinter/pymarkdown/issues/1468\"\u003eIssue 1468\u003c/a\u003e,\nand working on performance enhancements.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNone\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/jackdewinter/pymarkdown/issues/1468\"\u003eIssue 1468\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003estarted effort to harmonize the LRD and Table tests\u003c/li\u003e\n\u003cli\u003emapped out level 0 and level 1 container tests for LRDs, adding extra tests\nwhere necessary\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNone\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jackdewinter/pymarkdown/commit/0b4ac197f67f6ed75e27a10fad70ddc8014cb2e2\"\u003e\u003ccode\u003e0b4ac19\u003c/code\u003e\u003c/a\u003e Issue 1468 (\u003ca href=\"https://redirect.github.com/jackdewinter/pymarkdown/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jackdewinter/pymarkdown/compare/v0.9.32...v0.9.33\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ipython` from 9.6.0 to 9.7.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/4d6a64ace3fc7385c9d8b6811ffe965f27dd0a70\"\u003e\u003ccode\u003e4d6a64a\u003c/code\u003e\u003c/a\u003e release 9.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/6dd0bf2543f477281142d660028c93a22e9e606d\"\u003e\u003ccode\u003e6dd0bf2\u003c/code\u003e\u003c/a\u003e create publish action on GH (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15061\"\u003e#15061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/b805f6da5b6106a64599cab0c1de529556d7b944\"\u003e\u003ccode\u003eb805f6d\u003c/code\u003e\u003c/a\u003e create publish script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/d4b10832f548ca8978f482d9ce9a1ea3ec6a68ac\"\u003e\u003ccode\u003ed4b1083\u003c/code\u003e\u003c/a\u003e TST: add systematic backward compatibility checks against oldest supported ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/a7d5d2c7df18a9503f9c995e9e1cdd9b1fbe5706\"\u003e\u003ccode\u003ea7d5d2c\u003c/code\u003e\u003c/a\u003e DEP: bump minimal requirement on stack-data (0.0.7 -\u0026gt; 0.6.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/558cf9ef6851e4041fc98d222c2e50eddd64a5a2\"\u003e\u003ccode\u003e558cf9e\u003c/code\u003e\u003c/a\u003e DEP: bump minimal requirement on jedi (0.17.0 -\u0026gt; 0.18.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/a703cfb7b47bd38637be3eeb0bc25239acd56b25\"\u003e\u003ccode\u003ea703cfb\u003c/code\u003e\u003c/a\u003e TST: add systematic backward compatibility checks against oldest supported ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/3c94df8dd3d99c04d656aee9e6bb5da921b4c18c\"\u003e\u003ccode\u003e3c94df8\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esetuptools-scm\u003c/code\u003e to pyflyby tests (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15059\"\u003e#15059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/1019171675c172c19b3d0ee73e2b5b1ef79f8082\"\u003e\u003ccode\u003e1019171\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esetuptools-scm\u003c/code\u003e to pyflyby tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/fdbc9649113af9d4ba944d417f0e5307736f916f\"\u003e\u003ccode\u003efdbc964\u003c/code\u003e\u003c/a\u003e Move TerminalInteractiveshell.inputhook to Deprecated, from Pending. (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15053\"\u003e#15053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipython/compare/9.6.0...9.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/17cf8864737af2ce75c73839a0cdedc26ce50598\"\u003e\u003ccode\u003e17cf886\u003c/code\u003e\u003c/a\u003e v4.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cb63a5cb9a1f22342d7450315cb4daffe72f6c21\"\u003e\u003ccode\u003ecb63a5c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e from br-rhrbacek/fix-cgroups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f80801d75a429d5eafa1d87e9f88f73b108d1890\"\u003e\u003ccode\u003ef80801d\u003c/code\u003e\u003c/a\u003e Fix docker-in-docker detection for cgroups v2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/9143fc35457adb0a2d28022b1149b131c40c0490\"\u003e\u003ccode\u003e9143fc3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e from pre-commit/language-unsupported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/725acc969a28a6bc9a7e2260f035426bc932e8da\"\u003e\u003ccode\u003e725acc9\u003c/code\u003e\u003c/a\u003e rename system and script languages to unsupported / unsupported_script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/3815e2e6d87ba644ecc19f29177184df7ee16812\"\u003e\u003ccode\u003e3815e2e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e from pre-commit/fix-stages-config-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/aa2961c122b4aa834c77e612232c154f9439c388\"\u003e\u003ccode\u003eaa2961c\u003c/code\u003e\u003c/a\u003e fix missing context in error for stages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/46297f7cd6e4f2615c3b5d50f09c6ea264679c6b\"\u003e\u003ccode\u003e46297f7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3575\"\u003e#3575\u003c/a\u003e from pre-commit/rm-python3-hooks-repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/95eec7500464500d2ca0cc13d0986000508830e5\"\u003e\u003ccode\u003e95eec75\u003c/code\u003e\u003c/a\u003e rm python3_hooks_repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5e4b3546f30fc9b15ed71515d979e4a644d850f6\"\u003e\u003ccode\u003e5e4b354\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3574\"\u003e#3574\u003c/a\u003e from pre-commit/rm-hook-with-spaces-test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/steven-cutting/decree/pull/37","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/steven-cutting%2Fdecree/issues/37","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/37/packages"},{"uuid":"3581378509","node_id":"PR_kwDOHreUVM6xJxMR","number":319,"state":"closed","title":"Bump beartype from 0.21.0 to 0.22.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-11-03T10:32:35.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-03T10:08:42.000Z","updated_at":"2025-11-03T10:32:36.000Z","time_to_close":1433,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.21.0","new_version":"0.22.2","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.21.0 to 0.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.2: Yo Dawg We Heard You Like LLM\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is proud as a cub gnawing its first salmon to announce: \u003cstrong\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has been \u003ca href=\"https://tidelift.com/lifter/search/pypi/beartype\"\u003eTidelifted\u003c/a\u003e!\u003c/strong\u003e For our security-conscious corporate and government userbase, the best way to secure your enterprise \u003cem\u003eand\u003c/em\u003e support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is now through \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e vis-a-vis a \u003cstrong\u003e[SonarQube Advanced Security][]\u003c/strong\u003e subscription. More on that later. We now return to your regularly scheduled release party. DJ Leycec in residence. Hit those fat QA jams.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003eBeartype \u003cdel\u003e0.22.0\u003c/del\u003e \u003cdel\u003e0.22.1\u003c/del\u003e 0.22.2\u003c/strong\u003e portals into the mortal plenum with a disturbing \u0026quot;WHOOOMP!\u0026quot; As you panic, all the oxygen in the room is rapidly vacuumed into an adjacent hyperdimension. It's not \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e's safest entrance – but it's one we're all sure to remember. This is \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.2\u003c/code\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003edon't ask what happened to \u003ccode\u003e0.22.0\u003c/code\u003e. just... don't.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --upgrade --pre beartype   # beartype casts magic missile on the darkness\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe central dogma of \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.2\u003c/code\u003e is \u003cstrong\u003eLLM compatibility.\u003c/strong\u003e Do you like LLM? Do you like compatibility? Then your code likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.2\u003c/code\u003e (even against your better judgement). But before the liking starts...\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/lxpfB01kWpcAAAAd/bromance-sig-curtis.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.2\u003c/code\u003e salutes you who are about to code\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife are eating well. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e's cats would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdditional financial shout-outs to \u003ca href=\"https://github.com/ilyapoz\"\u003e\u003ccode\u003e@​ilyapoz\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/Ilia\"\u003e\u003ccode\u003e@​Ilia\u003c/code\u003e\u003c/a\u003e Pozhilov), the \u003cem\u003eamazing\u003c/em\u003e former \u003ca href=\"https://yandex.com\"\u003eYandex\u003c/a\u003e code cosmonaut who graciously donated a pile of \u003ca href=\"https://en.wikipedia.org/wiki/Georgian_lari\"\u003eGeorgian lari\u003c/a\u003e to \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e this go-around. Apparently, the lari is denominated in the ლ Unicode character. What a symbol! It looks like a beautiful hat. If only the Canadian dollar was half as manly. :sob:\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and Yandex.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Yandex. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eTidelift: A Rising Tide Lifted \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e's Not-At-All-Leaky Boat\u003c/h2\u003e\n\u003cp\u003eThis release also comes courtesy \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, which very graciously pays out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, NumPy, and other stuff you probably care about. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e joining [Tidelift][] has super-positive implications for Python's broader QA community – including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNo rugpull.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is much less likely to die, disappear, or otherwise wither on the entropic vine now. Sadly, most open-source software does. Without recurring income, most open-source software never makes it to the [Tidelift][] stage. It vanishes without a trace at 5:37AM on a Monday morning, leaving your once-profitable corporate enterprise and your once-stable local government without a working QA solution. That won't happen to \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eActual security.\u003c/strong\u003e Thanks to Tidelift making me do it, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e now features an \u003ca href=\"https://github.com/beartype/beartype/blob/main/.github/SECURITY.md\"\u003eactual honest-to-Ursula \u003cstrong\u003esecurity policy\u003c/strong\u003e\u003c/a\u003e. It's boring. It's bog-standard. If we were responsible, we'd encourage you to read it. Instead, here's the \u003cstrong\u003etl;dr\u003c/strong\u003e:\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e users who discover security vulnerabilities are invited to privately disclose those vulnerabilities by submitting a \u003ca href=\"https://github.com/beartype/beartype/security/advisories/new\"\u003eGitHub-managed security vulnerability\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e will then privately resolve those vulnerabilities.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e will then publish a new stable release containing those resolutions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e will then publicly document your discovery, crediting you and your fearsome l33t skills. Seriously, they're fearsome. We're afraid. With great power comes great \u003cdel\u003eresponsibility\u003c/del\u003e QA. Somebody smart said that.\u003c/li\u003e\n\u003cli\u003eGitHub will then include these vulnerabilities in its own \u003ca href=\"https://github.com/advisories\"\u003e\u003cstrong\u003eGitHub Advisory Database\u003c/strong\u003e\u003c/a\u003e, improving everyone's security. Luckily, you are part of everyone. \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...what does that even mean?\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/klV93pLX4Q4AAAAC/edwardelric-sinking.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003ePictured: \u003cem\u003eArtistic rendition of the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e development process before Tidelift. You weren't supposed to see this.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003e!!STUFF YOU WANNA READ EVEN THOUGH ITS EXHAUSTING!!\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/beartype/beartype/commit/344167bc7fee7c86be806c65b111665442f880b8\"\u003e\u003ccode\u003e344167b\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.2\u003c/strong\u003e released.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/5fb9383bb449602ba585ce918637816726d72d09\"\u003e\u003ccode\u003e5fb9383\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.2\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/2b6b52886180678691a915f35d47801ec0ccc3a1\"\u003e\u003ccode\u003e2b6b528\u003c/code\u003e\u003c/a\u003e GitHub Actions-based release workflow permissions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/f6e781c36fc974094cbf01c3f5b11b16102ea111\"\u003e\u003ccode\u003ef6e781c\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.1\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/871beab18d68c3d76487b4122d28b267c44ed88f\"\u003e\u003ccode\u003e871beab\u003c/code\u003e\u003c/a\u003e \u0026gt; \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is proud as a cub gnawing its first salmon to announce: **\u003ca href=\"https://github.com/bearty\"\u003e\u003ccode\u003e@​bearty\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/141e3d81a7d10a8050535be0d5749f92a1d6adaf\"\u003e\u003ccode\u003e141e3d8\u003c/code\u003e\u003c/a\u003e Decorator-hostile decorator QA x 5.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/a6ed0aec0f493078810dd7fd38523e1541ede84a\"\u003e\u003ccode\u003ea6ed0ae\u003c/code\u003e\u003c/a\u003e Official \u003ccode\u003epandera.polars\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8e5de8eb94682dbd0fbd51a71ddda93f4bbf93f6\"\u003e\u003ccode\u003e8e5de8e\u003c/code\u003e\u003c/a\u003e Decorator-hostile decorator QA x 4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/32590b02ab9949c25a3c4c4590d22e94658201bf\"\u003e\u003ccode\u003e32590b0\u003c/code\u003e\u003c/a\u003e Decorator-hostile decorator QA x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/10aa599e0fa3674dcf994dca5a33673ef2ef6c28\"\u003e\u003ccode\u003e10aa599\u003c/code\u003e\u003c/a\u003e Decorator-hostile decorator QA x 2.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.21.0...v0.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.21.0\u0026new-version=0.22.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/spdx/ntia-conformance-checker/pull/319","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/spdx%2Fntia-conformance-checker/issues/319","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/319/packages"},{"uuid":"3578388488","node_id":"PR_kwDOHF08OM6xAYji","number":1143,"state":"open","title":"chore(deps): bump beartype from 0.17.0 to 0.22.5 in /sdk/python","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-01T20:01:54.000Z","updated_at":"2025-11-01T20:01:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"beartype","old_version":"0.17.0","new_version":"0.22.5","repository_url":"https://github.com/beartype/beartype"}],"path":"/sdk/python","ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.17.0 to 0.22.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e does stuff. \u003cem\u003eUhhh.\u003c/em\u003e Wait. Why are we releasing yet another \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.x\u003c/code\u003e patch within the span of ten seconds? We were just here. We already released \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e a week ago. Wasn't that good enough!? I... I guess not. Turns out \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e support has been busted in \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e for literally years. Probably decades. Nobody cared – until somebody cared. I blame only myself despite wanting to point the finger at somebody else. Anybody else. I'll take anybody. Let's start over.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e valiantly arises from the ashes of our issue tracker like a burning phoenix on fire!!!! You can't stop this:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e stoically puts on the sunglasses so you don't have to.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/Ow-oBn2sTXoAAAAd/sonny-crockett-crockett.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eThe sky is blue and I have hair again.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Still Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a patch release that guarantees compatibility with \u003cstrong\u003ePython optimization.\u003c/strong\u003e Both the \u003ccode\u003e@beartype\u003c/code\u003e decorator and \u003ccode\u003ebeartype.claw\u003c/code\u003e import hooks now silently reduce to noops (i.e., do nothing rather than type-checking everything) when users:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePass one or more \u003ccode\u003e-O\u003c/code\u003e options to the Python interpreter (e.g., \u003ccode\u003epython -O worldshattering_app_shatters_world_accidentally.py\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSet the \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e environment variable to a positive integer (e.g., \u003ccode\u003ePYTHONOPTIMIZE=1 python worldrepairing_app_repairs_world_shattered_by_worldshattering_app.py\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://gofastmcp.com/getting-started/welcome\"\u003eFastMCP\u003c/a\u003e users \u003cem\u003ereally\u003c/em\u003e care about Python optimization. Apparently, nobody else does. Makes sense. Even \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is too slow for those speed-obsessed LLM gurus. How can this be!? It's never enough for the AI. In the relentless drive for faster query turnaround times, FastMCP is plumbing the depths of the impossible. There are always casualties on the road to progress. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e was one of those casualties. \u003cem\u003eBut no more.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a burning phoenix on fire. It's not a metaphor anymore. We're pretty sure our issue tracker is on fire. What is it now? Still \u003cstrong\u003e98 open issues\u003c/strong\u003e despite a flurry of recent issue resolutions that took our last will to code? Yup. 98 open issues. My... my gods. GitHub. Does no one sleep around here? :face_exhaling:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e + \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e: \u003cem\u003ebecause you're too tired to even run \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e anymore.\u003c/em\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/beartype/beartype/commit/ec7400f6336a0b28cbcc3036e26871802b333f7b\"\u003e\u003ccode\u003eec7400f\u003c/code\u003e\u003c/a\u003e Beartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d63933565d3432dc00db489c3289d3c20199a894\"\u003e\u003ccode\u003ed639335\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ebeartype.claw\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e114bd107cb233191aaa94694ac648736fc4e258\"\u003e\u003ccode\u003ee114bd1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@beartype(conf=...)\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/2a29e8ed3091326dbc2d0390fdece7fe8a1a7d75\"\u003e\u003ccode\u003e2a29e8e\u003c/code\u003e\u003c/a\u003e Continuous integration (CI) badge.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ab9a65b5ea82c2672c1db5232a79565e216f4887\"\u003e\u003ccode\u003eab9a65b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003epip\u003c/code\u003e -\u0026gt; \u003ccode\u003euv\u003c/code\u003e code review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/aa5f097fc08d86017f7ffd8381861cd79905fd4d\"\u003e\u003ccode\u003eaa5f097\u003c/code\u003e\u003c/a\u003e snatching away the low hanging fruits from papa bear (UV rocks) (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/57f3de39a4dd84421b80e5fb47aa03ef7f4c45de\"\u003e\u003ccode\u003e57f3de3\u003c/code\u003e\u003c/a\u003e \u003ccode\u003etyping.TypeAliasType\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/4e3db9526b1a23f6b17737f7779a920ac7188e05\"\u003e\u003ccode\u003e4e3db95\u003c/code\u003e\u003c/a\u003e Azure-compliant \u0026quot;beartype.claw\u0026quot; handling x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c293bdd49bba574b7403137d6efdfceee7a76fc6\"\u003e\u003ccode\u003ec293bdd\u003c/code\u003e\u003c/a\u003e GitHub Actions macOS runner disabled x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/0faf2f0b2fb1eefb28eb5f013f88e73be7ffcda3\"\u003e\u003ccode\u003e0faf2f0\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.5\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.17.0...v0.22.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.17.0\u0026new-version=0.22.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dolanor/dagger/pull/1143","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dolanor%2Fdagger/issues/1143","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1143/packages"},{"uuid":"3565628551","node_id":"PR_kwDOQLZv0s6wWhpS","number":21,"state":"closed","title":"fix(deps): bump beartype from 0.18.5 to 0.22.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-03T22:39:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-29T11:57:29.000Z","updated_at":"2025-11-03T22:39:01.000Z","time_to_close":470491,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"fix(deps)","packages":[{"name":"beartype","old_version":"0.18.5","new_version":"0.22.4","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.18.5 to 0.22.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.4: Now Less Hated by Poetry\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e catastrophically explodes all over your monitor. An oily black residue redolent of snail mucus slides off the screen, dripping with a maddening cadence into the crevices of your trusty mechanical keyboard:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e never gets tired of bug-eyed dudes punching squinty-eyed dudes. Childhood memories do not fade.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/HK-WlNloWp8AAAAd/blood-sport-jean-claude-van-damme.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eLeft: \u003cem\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e.\u003c/em\u003e Right: \u003cem\u003ePoetry and \u003ccode\u003epipenv\u003c/code\u003e together as one dude.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is a patch release that guarantees compatibility with both \u003ca href=\"https://python-poetry.org\"\u003e\u003cstrong\u003ePoetry\u003c/strong\u003e\u003c/a\u003e and \u003ca href=\"https://pipenv.pypa.io/en/latest\"\u003e\u003cstrong\u003e\u003ccode\u003epipenv\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e. Previously, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e just assumed that Poetry and \u003ccode\u003epipenv\u003c/code\u003e liked \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. What's not to like about \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, guys? Huh!? Apparently...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEverything.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e broke the assumption that everybody likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. Our prior release shipped a \u003ccode\u003epyproject.toml\u003c/code\u003e file with a PEP 440-compliant version string:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10,!=3.14rc1,!=3.14rc2\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThat syntax is valid. But Poetry and \u003ccode\u003epipenv\u003c/code\u003e didn't care. They do what they want! And they didn't want to have anything to do with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e. We disagree, but that's fair enough. Everyone has bad opinions.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e resolves these trivial incompatibilities with popular devtooling. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e also promises this will \u003cem\u003enever\u003c/em\u003e happen again. A new integration test in the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e test suite guarantees Poetry and \u003ccode\u003epipenv\u003c/code\u003e compatibility, safeguarding both your QA stack and sanity against midnight regressions at 4:52AM.\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/beartype/beartype/commit/d543d7cd24a2787790f06fa9ff57a549d7eb5784\"\u003e\u003ccode\u003ed543d7c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.4: Now Less Hated by Poetry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b25aa9b0967a576055a7a33f008050fa9014d40b\"\u003e\u003ccode\u003eb25aa9b\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/65f2d2d306881dab346f8e4b1e9dd98246dfbb2e\"\u003e\u003ccode\u003e65f2d2d\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/67dc58687d791a2f37527c394123f58086b20f2f\"\u003e\u003ccode\u003e67dc586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.4\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/97022c9ab3bbbd940fa44a3dad7f15b0874695f0\"\u003e\u003ccode\u003e97022c9\u003c/code\u003e\u003c/a\u003e Beartype 0.22.3: Yo Dawg We Heard You Like Redis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ed3092b87fcd0d89ac8ba23bb92ed8895648a928\"\u003e\u003ccode\u003eed3092b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/89a5c544920f9d15ebd9f883793b5f7eb4aaf44c\"\u003e\u003ccode\u003e89a5c54\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/991addc19a24df00451842914aaf494bd137a6d3\"\u003e\u003ccode\u003e991addc\u003c/code\u003e\u003c/a\u003e Bluesky social links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b33685cf83d5ce2999d399b4797bd6663dbb9615\"\u003e\u003ccode\u003eb33685c\u003c/code\u003e\u003c/a\u003e Bump actions/upload-pages-artifact in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d44915bcd5ffbe6ddc3e386a91428554237fdeb4\"\u003e\u003ccode\u003ed44915b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@dataclasses.dataclass\u003c/code\u003e + \u003ccode\u003eredis.Redis\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.18.5...v0.22.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.18.5\u0026new-version=0.22.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/autocode07/ulab-uiuc__research-town.f15f4c14/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/autocode07%2Fulab-uiuc__research-town.f15f4c14/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"},{"uuid":"3559970320","node_id":"PR_kwDOPP01-M6wEEGt","number":20,"state":"closed","title":"Bump beartype from 0.21.0 to 0.22.4","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-04T06:06:36.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-28T06:06:53.000Z","updated_at":"2025-11-04T06:06:38.000Z","time_to_close":604783,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.21.0","new_version":"0.22.4","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.21.0 to 0.22.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.4: Now Less Hated by Poetry\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e catastrophically explodes all over your monitor. An oily black residue redolent of snail mucus slides off the screen, dripping with a maddening cadence into the crevices of your trusty mechanical keyboard:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e never gets tired of bug-eyed dudes punching squinty-eyed dudes. Childhood memories do not fade.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/HK-WlNloWp8AAAAd/blood-sport-jean-claude-van-damme.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eLeft: \u003cem\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e.\u003c/em\u003e Right: \u003cem\u003ePoetry and \u003ccode\u003epipenv\u003c/code\u003e together as one dude.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is a patch release that guarantees compatibility with both \u003ca href=\"https://python-poetry.org\"\u003e\u003cstrong\u003ePoetry\u003c/strong\u003e\u003c/a\u003e and \u003ca href=\"https://pipenv.pypa.io/en/latest\"\u003e\u003cstrong\u003e\u003ccode\u003epipenv\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e. Previously, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e just assumed that Poetry and \u003ccode\u003epipenv\u003c/code\u003e liked \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. What's not to like about \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, guys? Huh!? Apparently...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEverything.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e broke the assumption that everybody likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. Our prior release shipped a \u003ccode\u003epyproject.toml\u003c/code\u003e file with a PEP 440-compliant version string:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10,!=3.14rc1,!=3.14rc2\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThat syntax is valid. But Poetry and \u003ccode\u003epipenv\u003c/code\u003e didn't care. They do what they want! And they didn't want to have anything to do with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e. We disagree, but that's fair enough. Everyone has bad opinions.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e resolves these trivial incompatibilities with popular devtooling. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e also promises this will \u003cem\u003enever\u003c/em\u003e happen again. A new integration test in the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e test suite guarantees Poetry and \u003ccode\u003epipenv\u003c/code\u003e compatibility, safeguarding both your QA stack and sanity against midnight regressions at 4:52AM.\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/beartype/beartype/commit/d543d7cd24a2787790f06fa9ff57a549d7eb5784\"\u003e\u003ccode\u003ed543d7c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.4: Now Less Hated by Poetry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b25aa9b0967a576055a7a33f008050fa9014d40b\"\u003e\u003ccode\u003eb25aa9b\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/65f2d2d306881dab346f8e4b1e9dd98246dfbb2e\"\u003e\u003ccode\u003e65f2d2d\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/67dc58687d791a2f37527c394123f58086b20f2f\"\u003e\u003ccode\u003e67dc586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.4\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/97022c9ab3bbbd940fa44a3dad7f15b0874695f0\"\u003e\u003ccode\u003e97022c9\u003c/code\u003e\u003c/a\u003e Beartype 0.22.3: Yo Dawg We Heard You Like Redis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ed3092b87fcd0d89ac8ba23bb92ed8895648a928\"\u003e\u003ccode\u003eed3092b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/89a5c544920f9d15ebd9f883793b5f7eb4aaf44c\"\u003e\u003ccode\u003e89a5c54\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/991addc19a24df00451842914aaf494bd137a6d3\"\u003e\u003ccode\u003e991addc\u003c/code\u003e\u003c/a\u003e Bluesky social links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b33685cf83d5ce2999d399b4797bd6663dbb9615\"\u003e\u003ccode\u003eb33685c\u003c/code\u003e\u003c/a\u003e Bump actions/upload-pages-artifact in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d44915bcd5ffbe6ddc3e386a91428554237fdeb4\"\u003e\u003ccode\u003ed44915b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@dataclasses.dataclass\u003c/code\u003e + \u003ccode\u003eredis.Redis\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.21.0...v0.22.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=uv\u0026previous-version=0.21.0\u0026new-version=0.22.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/l0s/llm/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/l0s%2Fllm/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"},{"uuid":"3558939555","node_id":"PR_kwDOL2Bi786wAkC9","number":1369,"state":"closed","title":"fix(deps): bump beartype from 0.19.0 to 0.22.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-03T22:17:32.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-27T22:50:14.000Z","updated_at":"2025-11-03T22:17:34.000Z","time_to_close":602838,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"fix(deps)","packages":[{"name":"beartype","old_version":"0.19.0","new_version":"0.22.4","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.19.0 to 0.22.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.4: Now Less Hated by Poetry\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e catastrophically explodes all over your monitor. An oily black residue redolent of snail mucus slides off the screen, dripping with a maddening cadence into the crevices of your trusty mechanical keyboard:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e never gets tired of bug-eyed dudes punching squinty-eyed dudes. Childhood memories do not fade.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/HK-WlNloWp8AAAAd/blood-sport-jean-claude-van-damme.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eLeft: \u003cem\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e.\u003c/em\u003e Right: \u003cem\u003ePoetry and \u003ccode\u003epipenv\u003c/code\u003e together as one dude.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is a patch release that guarantees compatibility with both \u003ca href=\"https://python-poetry.org\"\u003e\u003cstrong\u003ePoetry\u003c/strong\u003e\u003c/a\u003e and \u003ca href=\"https://pipenv.pypa.io/en/latest\"\u003e\u003cstrong\u003e\u003ccode\u003epipenv\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e. Previously, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e just assumed that Poetry and \u003ccode\u003epipenv\u003c/code\u003e liked \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. What's not to like about \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, guys? Huh!? Apparently...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEverything.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e broke the assumption that everybody likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. Our prior release shipped a \u003ccode\u003epyproject.toml\u003c/code\u003e file with a PEP 440-compliant version string:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10,!=3.14rc1,!=3.14rc2\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThat syntax is valid. But Poetry and \u003ccode\u003epipenv\u003c/code\u003e didn't care. They do what they want! And they didn't want to have anything to do with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e. We disagree, but that's fair enough. Everyone has bad opinions.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e resolves these trivial incompatibilities with popular devtooling. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e also promises this will \u003cem\u003enever\u003c/em\u003e happen again. A new integration test in the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e test suite guarantees Poetry and \u003ccode\u003epipenv\u003c/code\u003e compatibility, safeguarding both your QA stack and sanity against midnight regressions at 4:52AM.\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/beartype/beartype/commit/d543d7cd24a2787790f06fa9ff57a549d7eb5784\"\u003e\u003ccode\u003ed543d7c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.4: Now Less Hated by Poetry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b25aa9b0967a576055a7a33f008050fa9014d40b\"\u003e\u003ccode\u003eb25aa9b\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/65f2d2d306881dab346f8e4b1e9dd98246dfbb2e\"\u003e\u003ccode\u003e65f2d2d\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/67dc58687d791a2f37527c394123f58086b20f2f\"\u003e\u003ccode\u003e67dc586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.4\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/97022c9ab3bbbd940fa44a3dad7f15b0874695f0\"\u003e\u003ccode\u003e97022c9\u003c/code\u003e\u003c/a\u003e Beartype 0.22.3: Yo Dawg We Heard You Like Redis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ed3092b87fcd0d89ac8ba23bb92ed8895648a928\"\u003e\u003ccode\u003eed3092b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/89a5c544920f9d15ebd9f883793b5f7eb4aaf44c\"\u003e\u003ccode\u003e89a5c54\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/991addc19a24df00451842914aaf494bd137a6d3\"\u003e\u003ccode\u003e991addc\u003c/code\u003e\u003c/a\u003e Bluesky social links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b33685cf83d5ce2999d399b4797bd6663dbb9615\"\u003e\u003ccode\u003eb33685c\u003c/code\u003e\u003c/a\u003e Bump actions/upload-pages-artifact in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d44915bcd5ffbe6ddc3e386a91428554237fdeb4\"\u003e\u003ccode\u003ed44915b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@dataclasses.dataclass\u003c/code\u003e + \u003ccode\u003eredis.Redis\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.19.0...v0.22.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.19.0\u0026new-version=0.22.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ulab-uiuc/research-town/pull/1369","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulab-uiuc%2Fresearch-town/issues/1369","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1369/packages"},{"uuid":"3558273126","node_id":"PR_kwDOLWRIZM6v-QIe","number":473,"state":"open","title":"Bump the actions group with 4 updates","user":"dependabot[bot]","labels":["topic: dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-27T19:23:40.000Z","updated_at":"2025-10-27T20:01:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"actions","update_count":4,"packages":[{"name":"ruff","old_version":"0.14.1","new_version":"0.14.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"beartype","old_version":"0.22.2","new_version":"0.22.4","repository_url":"https://github.com/beartype/beartype"},{"name":"basedpyright","old_version":"1.31.7","new_version":"1.32.1","repository_url":"https://github.com/detachhead/basedpyright"},{"name":"pyrefly","old_version":"0.38.0","new_version":"0.39.0","repository_url":"https://github.com/facebook/pyrefly"}],"path":null,"ecosystem":"pip"},"body":"Bumps the actions group with 4 updates: [ruff](https://github.com/astral-sh/ruff), [beartype](https://github.com/beartype/beartype), [basedpyright](https://github.com/detachhead/basedpyright) and [pyrefly](https://github.com/facebook/pyrefly).\n\nUpdates `ruff` from 0.14.1 to 0.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-10-23.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-gettext\u003c/code\u003e] Resolve qualified names and built-in bindings (\u003ccode\u003eINT001\u003c/code\u003e, \u003ccode\u003eINT002\u003c/code\u003e, \u003ccode\u003eINT003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19045\"\u003e#19045\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid reusing nested, interpolated quotes before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20930\"\u003e#20930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCatch syntax errors in nested interpolations before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20949\"\u003e#20949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Handle ellipsis defaults in \u003ccode\u003eFAST002\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20810\"\u003e#20810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Skip \u003ccode\u003eSIM911\u003c/code\u003e when unknown arguments are present (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20697\"\u003e#20697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Always parenthesize assignment expressions in fix for \u003ccode\u003ef-string\u003c/code\u003e (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21003\"\u003e#21003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP032\u003c/code\u003e conversion for decimal ints with underscores (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21022\"\u003e#21022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Skip autofix for keyword and \u003ccode\u003e__debug__\u003c/code\u003e path params (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20960\"\u003e#20960\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Skip \u003ccode\u003eB905\u003c/code\u003e and \u003ccode\u003eB912\u003c/code\u003e for fewer than two iterables and no starred arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20998\"\u003e#20998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use \u003ccode\u003eDiagnosticTag\u003c/code\u003e for more \u003ccode\u003epyflakes\u003c/code\u003e and \u003ccode\u003epandas\u003c/code\u003e rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20801\"\u003e#20801\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove JSON output from \u003ccode\u003eruff rule\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20168\"\u003e#20168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd source to testimonial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20971\"\u003e#20971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument when a rule was added (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21035\"\u003e#21035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[syntax-errors] Name is parameter and global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20426\"\u003e#20426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Alternative \u003ccode\u003ematch\u003c/code\u003e patterns bind different names (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20682\"\u003e#20682\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShalokShalom\"\u003e\u003ccode\u003e@​ShalokShalom\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robsdedude\"\u003e\u003ccode\u003e@​robsdedude\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LoicRiegel\"\u003e\u003ccode\u003e@​LoicRiegel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.14.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-10-23.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-gettext\u003c/code\u003e] Resolve qualified names and built-in bindings (\u003ccode\u003eINT001\u003c/code\u003e, \u003ccode\u003eINT002\u003c/code\u003e, \u003ccode\u003eINT003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19045\"\u003e#19045\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid reusing nested, interpolated quotes before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20930\"\u003e#20930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCatch syntax errors in nested interpolations before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20949\"\u003e#20949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Handle ellipsis defaults in \u003ccode\u003eFAST002\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20810\"\u003e#20810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Skip \u003ccode\u003eSIM911\u003c/code\u003e when unknown arguments are present (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20697\"\u003e#20697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Always parenthesize assignment expressions in fix for \u003ccode\u003ef-string\u003c/code\u003e (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21003\"\u003e#21003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP032\u003c/code\u003e conversion for decimal ints with underscores (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21022\"\u003e#21022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Skip autofix for keyword and \u003ccode\u003e__debug__\u003c/code\u003e path params (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20960\"\u003e#20960\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Skip \u003ccode\u003eB905\u003c/code\u003e and \u003ccode\u003eB912\u003c/code\u003e for fewer than two iterables and no starred arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20998\"\u003e#20998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use \u003ccode\u003eDiagnosticTag\u003c/code\u003e for more \u003ccode\u003epyflakes\u003c/code\u003e and \u003ccode\u003epandas\u003c/code\u003e rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20801\"\u003e#20801\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove JSON output from \u003ccode\u003eruff rule\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20168\"\u003e#20168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd source to testimonial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20971\"\u003e#20971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument when a rule was added (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21035\"\u003e#21035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[syntax-errors] Name is parameter and global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20426\"\u003e#20426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Alternative \u003ccode\u003ematch\u003c/code\u003e patterns bind different names (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20682\"\u003e#20682\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShalokShalom\"\u003e\u003ccode\u003e@​ShalokShalom\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robsdedude\"\u003e\u003ccode\u003e@​robsdedude\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LoicRiegel\"\u003e\u003ccode\u003e@​LoicRiegel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/83a3bc4ee94de552d5cec9a3146aff00dade6903\"\u003e\u003ccode\u003e83a3bc4\u003c/code\u003e\u003c/a\u003e Bump 0.14.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21051\"\u003e#21051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/155fd603e8fda8083155ce859bf59b6fdb5935a5\"\u003e\u003ccode\u003e155fd60\u003c/code\u003e\u003c/a\u003e Document when a rule was added (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21035\"\u003e#21035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/48f17718770aa0f503c2d5dcd7c757b6d6a5f9b0\"\u003e\u003ccode\u003e48f1771\u003c/code\u003e\u003c/a\u003e [ty] fix infinite recursion with generic type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20969\"\u003e#20969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4ca74593dd669b75f6d9cae5de1af4c0ee395e2a\"\u003e\u003ccode\u003e4ca7459\u003c/code\u003e\u003c/a\u003e [ty] Consider \u003ccode\u003etype_check_only\u003c/code\u003e when ranking completions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20910\"\u003e#20910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dab3d4e917ae41cce338cc5025e3f39aca38570a\"\u003e\u003ccode\u003edab3d4e\u003c/code\u003e\u003c/a\u003e [ty] Improve \u003ccode\u003einvalid-argument-type\u003c/code\u003e diagnostics where a union type was provi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/01695513ce33f1f1615309323ba145c42f4720c1\"\u003e\u003ccode\u003e0169551\u003c/code\u003e\u003c/a\u003e Disable npm caching for playground (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21039\"\u003e#21039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e92fd51a2c14d42fa3c6ffc442ec3233f9ed2c19\"\u003e\u003ccode\u003ee92fd51\u003c/code\u003e\u003c/a\u003e [ty] Add cycle handling to \u003ccode\u003elazy_default\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20967\"\u003e#20967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c3631c78bd94b7afbe4293d3e2555f0c88d0c4ba\"\u003e\u003ccode\u003ec3631c7\u003c/code\u003e\u003c/a\u003e [ty] Add docstrings for \u003ccode\u003ety_extensions\u003c/code\u003e functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21036\"\u003e#21036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/589e8ac0d92728b8f5aed7e3ad3469ce1993619e\"\u003e\u003ccode\u003e589e8ac\u003c/code\u003e\u003c/a\u003e [ty] Infer type for implicit \u003ccode\u003eself\u003c/code\u003e parameters in method bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20922\"\u003e#20922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/76a55314e4afdb35f52e3df9ceec2514f4fccf73\"\u003e\u003ccode\u003e76a5531\u003c/code\u003e\u003c/a\u003e Fix rare multithreaded related hang (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21038\"\u003e#21038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.1...0.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beartype` from 0.22.2 to 0.22.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.4: Now Less Hated by Poetry\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e catastrophically explodes all over your monitor. An oily black residue redolent of snail mucus slides off the screen, dripping with a maddening cadence into the crevices of your trusty mechanical keyboard:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e never gets tired of bug-eyed dudes punching squinty-eyed dudes. Childhood memories do not fade.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/HK-WlNloWp8AAAAd/blood-sport-jean-claude-van-damme.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eLeft: \u003cem\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e.\u003c/em\u003e Right: \u003cem\u003ePoetry and \u003ccode\u003epipenv\u003c/code\u003e together as one dude.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is a patch release that guarantees compatibility with both \u003ca href=\"https://python-poetry.org\"\u003e\u003cstrong\u003ePoetry\u003c/strong\u003e\u003c/a\u003e and \u003ca href=\"https://pipenv.pypa.io/en/latest\"\u003e\u003cstrong\u003e\u003ccode\u003epipenv\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e. Previously, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e just assumed that Poetry and \u003ccode\u003epipenv\u003c/code\u003e liked \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. What's not to like about \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, guys? Huh!? Apparently...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEverything.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e broke the assumption that everybody likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. Our prior release shipped a \u003ccode\u003epyproject.toml\u003c/code\u003e file with a PEP 440-compliant version string:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10,!=3.14rc1,!=3.14rc2\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThat syntax is valid. But Poetry and \u003ccode\u003epipenv\u003c/code\u003e didn't care. They do what they want! And they didn't want to have anything to do with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e. We disagree, but that's fair enough. Everyone has bad opinions.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e resolves these trivial incompatibilities with popular devtooling. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e also promises this will \u003cem\u003enever\u003c/em\u003e happen again. A new integration test in the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e test suite guarantees Poetry and \u003ccode\u003epipenv\u003c/code\u003e compatibility, safeguarding both your QA stack and sanity against midnight regressions at 4:52AM.\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/beartype/beartype/commit/d543d7cd24a2787790f06fa9ff57a549d7eb5784\"\u003e\u003ccode\u003ed543d7c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.4: Now Less Hated by Poetry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b25aa9b0967a576055a7a33f008050fa9014d40b\"\u003e\u003ccode\u003eb25aa9b\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/65f2d2d306881dab346f8e4b1e9dd98246dfbb2e\"\u003e\u003ccode\u003e65f2d2d\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/67dc58687d791a2f37527c394123f58086b20f2f\"\u003e\u003ccode\u003e67dc586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.4\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/97022c9ab3bbbd940fa44a3dad7f15b0874695f0\"\u003e\u003ccode\u003e97022c9\u003c/code\u003e\u003c/a\u003e Beartype 0.22.3: Yo Dawg We Heard You Like Redis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ed3092b87fcd0d89ac8ba23bb92ed8895648a928\"\u003e\u003ccode\u003eed3092b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/89a5c544920f9d15ebd9f883793b5f7eb4aaf44c\"\u003e\u003ccode\u003e89a5c54\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/991addc19a24df00451842914aaf494bd137a6d3\"\u003e\u003ccode\u003e991addc\u003c/code\u003e\u003c/a\u003e Bluesky social links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b33685cf83d5ce2999d399b4797bd6663dbb9615\"\u003e\u003ccode\u003eb33685c\u003c/code\u003e\u003c/a\u003e Bump actions/upload-pages-artifact in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d44915bcd5ffbe6ddc3e386a91428554237fdeb4\"\u003e\u003ccode\u003ed44915b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@dataclasses.dataclass\u003c/code\u003e + \u003ccode\u003eredis.Redis\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.2...v0.22.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `basedpyright` from 1.31.7 to 1.32.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/dc463b5fecde43a94604fd8ee85058ef9c99d749\"\u003e\u003ccode\u003edc463b5\u003c/code\u003e\u003c/a\u003e 1.32.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/d1c4feed905ef68ee811a65319a4a8049bd93952\"\u003e\u003ccode\u003ed1c4fee\u003c/code\u003e\u003c/a\u003e fix an accidental breaking change to \u003ccode\u003edataclass_transform\u003c/code\u003e that was introduce...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/53d9bb2810b642108b5974f0f03c5606db55e87e\"\u003e\u003ccode\u003e53d9bb2\u003c/code\u003e\u003c/a\u003e 1.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/4c539aabf5f0ed381f17c007ad2697c4f1a6f30b\"\u003e\u003ccode\u003e4c539aa\u003c/code\u003e\u003c/a\u003e update expected error message in unrecognized config tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/1b9d6281ee433f24453c6ef38717cc7c53bd50cc\"\u003e\u003ccode\u003e1b9d628\u003c/code\u003e\u003c/a\u003e delete the newly added unknown config detection from upstream because mine is...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/8ac5a72630dcfd427279146821828b85ee246732\"\u003e\u003ccode\u003e8ac5a72\u003c/code\u003e\u003c/a\u003e update \u003ccode\u003enewTypeClassNotAllowed\u003c/code\u003e russian translation with suggestion from \u003ca href=\"https://github.com/dec\"\u003e\u003ccode\u003e@​dec\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/ac5db4e35228a7beea3e2ec244d9257ace6f012e\"\u003e\u003ccode\u003eac5db4e\u003c/code\u003e\u003c/a\u003e Merge tag '1.1.407' into merge-1.1.407\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/276448f4d1f9bef30601a5efaf112b0df9e40f10\"\u003e\u003ccode\u003e276448f\u003c/code\u003e\u003c/a\u003e Fixed package-lock files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/783ee6761a96b0668476dec953196d1ff11daa98\"\u003e\u003ccode\u003e783ee67\u003c/code\u003e\u003c/a\u003e Published 1.1.407\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/f9fc2aa85a9a606b689e90bf9555bbbf41f1bb4f\"\u003e\u003ccode\u003ef9fc2aa\u003c/code\u003e\u003c/a\u003e Updated typeshed stubs to the latest version (\u003ca href=\"https://redirect.github.com/detachhead/basedpyright/issues/11051\"\u003e#11051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/detachhead/basedpyright/compare/v1.31.7...v1.32.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyrefly` from 0.38.0 to 0.39.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/7a82eaef47996f10d2bf7345fa2854b5d92f7dcf\"\u003e\u003ccode\u003e7a82eae\u003c/code\u003e\u003c/a\u003e Update pyrefly version]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/fd39880bb19fb14588236160d7a90e1a7e3a88fc\"\u003e\u003ccode\u003efd39880\u003c/code\u003e\u003c/a\u003e Record xrefs for symbols \u003ccode\u003e __all__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/6698c93fcf29f9844caeb6e8c2155b91dae8ad89\"\u003e\u003ccode\u003e6698c93\u003c/code\u003e\u003c/a\u003e Adding test with \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/46ffedb3d53034379a5d01d3b12a7cae064a6d81\"\u003e\u003ccode\u003e46ffedb\u003c/code\u003e\u003c/a\u003e fix Feature: inheritance checks for typed dictionaries (\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/98f7611b52ec11d994d15302ce817d3db08a4056\"\u003e\u003ccode\u003e98f7611\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ety\u003c/code\u003e, not \u003ccode\u003ew\u003c/code\u003e for the answer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/697b0aef7e8fd78df8349569ec238fc1db7f82bb\"\u003e\u003ccode\u003e697b0ae\u003c/code\u003e\u003c/a\u003e Don't complain if non-callable \u003ccode\u003e__bool__\u003c/code\u003e is the last entry in a boolop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/1563b7a46b1c97a869d16b5c33d986521f631dc0\"\u003e\u003ccode\u003e1563b7a\u003c/code\u003e\u003c/a\u003e Track behavior of not-boolable types in boolean operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/4b7139797513b5f39a480e381bc071d8f5005c3a\"\u003e\u003ccode\u003e4b71397\u003c/code\u003e\u003c/a\u003e Distribute \u003ccode\u003e__bool__\u003c/code\u003e checks across unions in \u003ccode\u003echeck_dunder_bool_is_callable\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/78fd600a96039a05329dfa96f6a99bd46136f064\"\u003e\u003ccode\u003e78fd600\u003c/code\u003e\u003c/a\u003e Rename some vars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/dd9258b4ffbff2cc3a06a619f0a63bafc0f551c4\"\u003e\u003ccode\u003edd9258b\u003c/code\u003e\u003c/a\u003e Add tests for a bug in Pyrefly union handling\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facebook/pyrefly/compare/0.38.0...0.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/jorenham/optype/pull/473","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorenham%2Foptype/issues/473","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/473/packages"},{"uuid":"3557314901","node_id":"PR_kwDOGKRa286v699R","number":27,"state":"closed","title":"pip stable: bump beartype from 0.22.0rc0 to 0.22.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-03T14:08:12.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-27T15:20:59.000Z","updated_at":"2025-11-03T14:08:13.000Z","time_to_close":600433,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"pip stable","packages":[{"name":"beartype","old_version":"0.22.0rc0","new_version":"0.22.4","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.0rc0 to 0.22.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.4: Now Less Hated by Poetry\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e catastrophically explodes all over your monitor. An oily black residue redolent of snail mucus slides off the screen, dripping with a maddening cadence into the crevices of your trusty mechanical keyboard:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e never gets tired of bug-eyed dudes punching squinty-eyed dudes. Childhood memories do not fade.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/HK-WlNloWp8AAAAd/blood-sport-jean-claude-van-damme.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eLeft: \u003cem\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e.\u003c/em\u003e Right: \u003cem\u003ePoetry and \u003ccode\u003epipenv\u003c/code\u003e together as one dude.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is a patch release that guarantees compatibility with both \u003ca href=\"https://python-poetry.org\"\u003e\u003cstrong\u003ePoetry\u003c/strong\u003e\u003c/a\u003e and \u003ca href=\"https://pipenv.pypa.io/en/latest\"\u003e\u003cstrong\u003e\u003ccode\u003epipenv\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e. Previously, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e just assumed that Poetry and \u003ccode\u003epipenv\u003c/code\u003e liked \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. What's not to like about \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, guys? Huh!? Apparently...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEverything.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e broke the assumption that everybody likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. Our prior release shipped a \u003ccode\u003epyproject.toml\u003c/code\u003e file with a PEP 440-compliant version string:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10,!=3.14rc1,!=3.14rc2\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThat syntax is valid. But Poetry and \u003ccode\u003epipenv\u003c/code\u003e didn't care. They do what they want! And they didn't want to have anything to do with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e. We disagree, but that's fair enough. Everyone has bad opinions.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e resolves these trivial incompatibilities with popular devtooling. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e also promises this will \u003cem\u003enever\u003c/em\u003e happen again. A new integration test in the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e test suite guarantees Poetry and \u003ccode\u003epipenv\u003c/code\u003e compatibility, safeguarding both your QA stack and sanity against midnight regressions at 4:52AM.\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/beartype/beartype/commit/d543d7cd24a2787790f06fa9ff57a549d7eb5784\"\u003e\u003ccode\u003ed543d7c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.4: Now Less Hated by Poetry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b25aa9b0967a576055a7a33f008050fa9014d40b\"\u003e\u003ccode\u003eb25aa9b\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/65f2d2d306881dab346f8e4b1e9dd98246dfbb2e\"\u003e\u003ccode\u003e65f2d2d\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/67dc58687d791a2f37527c394123f58086b20f2f\"\u003e\u003ccode\u003e67dc586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.4\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/97022c9ab3bbbd940fa44a3dad7f15b0874695f0\"\u003e\u003ccode\u003e97022c9\u003c/code\u003e\u003c/a\u003e Beartype 0.22.3: Yo Dawg We Heard You Like Redis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ed3092b87fcd0d89ac8ba23bb92ed8895648a928\"\u003e\u003ccode\u003eed3092b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/89a5c544920f9d15ebd9f883793b5f7eb4aaf44c\"\u003e\u003ccode\u003e89a5c54\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/991addc19a24df00451842914aaf494bd137a6d3\"\u003e\u003ccode\u003e991addc\u003c/code\u003e\u003c/a\u003e Bluesky social links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b33685cf83d5ce2999d399b4797bd6663dbb9615\"\u003e\u003ccode\u003eb33685c\u003c/code\u003e\u003c/a\u003e Bump actions/upload-pages-artifact in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d44915bcd5ffbe6ddc3e386a91428554237fdeb4\"\u003e\u003ccode\u003ed44915b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@dataclasses.dataclass\u003c/code\u003e + \u003ccode\u003eredis.Redis\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.0rc0...v0.22.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.0rc0\u0026new-version=0.22.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/cofiem/repo-browser/pull/27","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cofiem%2Frepo-browser/issues/27","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/27/packages"}],"issue_packages":[{"old_version":"0.22.4","new_version":"0.22.9","update_type":"patch","path":null,"pr_created_at":"2026-03-23T21:23:03.000Z","version_change":"0.22.4 → 0.22.9","issue":{"uuid":"4123817261","node_id":"PR_kwDOHG_iAM7M0KJc","number":671,"state":"open","title":"Bump beartype from 0.22.4 to 0.22.9","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-23T21:23:03.000Z","updated_at":"2026-03-23T21:34:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.22.4","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.4 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\r\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\r\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8a046e0cf193106146d8a9538d8174855b7c3e0e\"\u003e\u003ccode\u003e8a046e0\u003c/code\u003e\u003c/a\u003e Beartype 0.22.8: The Return of the Generator Return\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.4...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.4\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\u003c/details\u003e\n\n\u003c!-- greptile_comment --\u003e\n\n\u003ch3\u003eGreptile Summary\u003c/h3\u003e\n\nThis PR bumps the `beartype` runtime type-checking library from `0.22.4` to `0.22.9`, a five-patch incremental update. The change is isolated to a single version string in `pyproject.toml` and carries no risk of breaking changes given beartype's patch-level versioning policy.\n\nKey points:\n- The version range spans five patch releases (`0.22.5` through `0.22.9`), all in the `0.22.x` development cycle, so no breaking API changes are expected.\n- Notable upstream improvements include: official PyInstaller bundling support, synchronous generator code optimization, and improved mypy integration testing.\n- The `beartype==` exact-pin strategy is consistent with the rest of the project's pinning approach for this dependency.\n- No source code, tests, or other configuration files are touched.\n\n\u003ch3\u003eConfidence Score: 5/5\u003c/h3\u003e\n\n- This PR is safe to merge; it is a routine patch-level dependency bump with no breaking changes.\n- The change is a single-line version bump of a patch-release series (0.22.4 → 0.22.9) for a type-checking utility. No source code, tests, or other configuration is modified, and the upstream release notes confirm only additive improvements and bug fixes. Risk is negligible.\n- No files require special attention.\n\n\u003cdetails\u003e\u003csummary\u003e\u003ch3\u003eImportant Files Changed\u003c/h3\u003e\u003c/summary\u003e\n\n| Filename | Overview |\n|----------|----------|\n| pyproject.toml | Single-line dependency version bump of beartype from 0.22.4 to 0.22.9; no issues found. |\n\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n\u003ch3\u003eFlowchart\u003c/h3\u003e\n\n```mermaid\n%%{init: {'theme': 'neutral'}}%%\nflowchart TD\n    A[pyproject.toml] --\u003e|was| B[\"beartype==0.22.4\"]\n    A --\u003e|now| C[\"beartype==0.22.9\"]\n    C --\u003e D[\"0.22.5: generator fix\"]\n    C --\u003e E[\"0.22.6 – 0.22.8: iterative improvements\"]\n    C --\u003e F[\"0.22.9: PyInstaller support + QA fixes\"]\n```\n\n\u003csub\u003eReviews (1): Last reviewed commit: [\"Bump beartype from 0.22.4 to 0.22.9\"](https://github.com/waltsims/k-wave-python/commit/a1e4d5258586c1c111553bd8996499268552c454) | [Re-trigger Greptile](https://app.greptile.com/api/retrigger?id=26099568)\u003c/sub\u003e\n\n\u003c!-- /greptile_comment --\u003e","html_url":"https://github.com/waltsims/k-wave-python/pull/671","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/waltsims%2Fk-wave-python/issues/671","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/671/packages"}},{"old_version":"0.17.2","new_version":"0.22.9","update_type":"minor","path":"/sdk/python","pr_created_at":"2026-03-01T13:43:00.000Z","version_change":"0.17.2 → 0.22.9","issue":{"uuid":"4007233141","node_id":"PR_kwDOHFxNx87HIN0O","number":1246,"state":"open","title":"chore(deps): bump beartype from 0.17.2 to 0.22.9 in /sdk/python","user":"dependabot[bot]","labels":["stale"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-01T13:43:00.000Z","updated_at":"2026-03-16T04:20:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"beartype","old_version":"0.17.2","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":"/sdk/python","ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.17.2 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\r\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\r\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8a046e0cf193106146d8a9538d8174855b7c3e0e\"\u003e\u003ccode\u003e8a046e0\u003c/code\u003e\u003c/a\u003e Beartype 0.22.8: The Return of the Generator Return\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.17.2...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.17.2\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/slumbering/dagger/pull/1246","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/slumbering%2Fdagger/issues/1246","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1246/packages"}},{"old_version":"0.22.8","new_version":"0.22.9","update_type":"patch","path":null,"pr_created_at":"2026-01-13T05:52:04.000Z","version_change":"0.22.8 → 0.22.9","issue":{"uuid":"3807236615","node_id":"PR_kwDOMkdPVc682NjO","number":759,"state":"open","title":"Bump beartype from 0.22.8 to 0.22.9","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-13T05:52:04.000Z","updated_at":"2026-01-13T05:59:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.22.8","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.8 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.8...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=uv\u0026previous-version=0.22.8\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/fandango-fuzzer/fandango/pull/759","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fandango-fuzzer%2Ffandango/issues/759","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/759/packages"}},{"old_version":"0.17.0","new_version":"0.22.9","update_type":"minor","path":"/sdk/python","pr_created_at":"2026-01-01T20:02:11.000Z","version_change":"0.17.0 → 0.22.9","issue":{"uuid":"3775130816","node_id":"PR_kwDOHF08OM67OZsl","number":1187,"state":"closed","title":"chore(deps): bump beartype from 0.17.0 to 0.22.9 in /sdk/python","user":"dependabot[bot]","labels":["stale"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-01-24T02:15:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-01T20:02:11.000Z","updated_at":"2026-01-24T02:15:25.000Z","time_to_close":1923186,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"beartype","old_version":"0.17.0","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":"/sdk/python","ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.17.0 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8a046e0cf193106146d8a9538d8174855b7c3e0e\"\u003e\u003ccode\u003e8a046e0\u003c/code\u003e\u003c/a\u003e Beartype 0.22.8: The Return of the Generator Return\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.17.0...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.17.0\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dolanor/dagger/pull/1187","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dolanor%2Fdagger/issues/1187","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1187/packages"}},{"old_version":"0.22.8","new_version":"0.22.9","update_type":"patch","path":null,"pr_created_at":"2025-12-16T02:07:36.000Z","version_change":"0.22.8 → 0.22.9","issue":{"uuid":"3732798956","node_id":"PR_kwDOJPFt4s65DHgI","number":1458,"state":"open","title":"Bump beartype from 0.22.8 to 0.22.9","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-16T02:07:36.000Z","updated_at":"2025-12-16T02:13:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.22.8","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.8 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.8...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.8\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/FlorianPfaff/pyRecEst/pull/1458","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianPfaff%2FpyRecEst/issues/1458","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1458/packages"}},{"old_version":"0.19.0","new_version":"0.22.9","update_type":"minor","path":null,"pr_created_at":"2025-12-15T22:29:11.000Z","version_change":"0.19.0 → 0.22.9","issue":{"uuid":"3732367205","node_id":"PR_kwDOL2Bi7865BrUx","number":1423,"state":"open","title":"fix(deps): bump beartype from 0.19.0 to 0.22.9","user":"dependabot[bot]","labels":["dependencies","python","Stale"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T22:29:11.000Z","updated_at":"2026-01-15T03:16:09.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"fix(deps)","packages":[{"name":"beartype","old_version":"0.19.0","new_version":"0.22.9","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.19.0 to 0.22.9.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.9: Party in Da QA House\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e celebrates \u003ca href=\"https://github.com/beartype/beartype/discussions/597\"\u003e\u003cstrong\u003e\u003ccode\u003eone million @​beartype downloads a day\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e! We wanted to rent out a loft warehouse space, flip a dry ice machine off Ebay for pennies, shadow-drop \u003ca href=\"https://www.youtube.com/watch?v=LAQZfeETFbg\u0026amp;list=RDLAQZfeETFbg\u0026amp;start_radio=1\"\u003eDJ Lorien Testard\u003c/a\u003e, invite all our GitHub homies, and get down and funky with this QA quinceañera. It didn't happen. I released instead. The memories we might have made are only another patch release in the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Bear friends, it's your time to shine tonight:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u0026quot;Wave your keyboards in the air like those bugs don't care.\u0026quot;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/NvnO0AuuzvkAAAAd/dancing-cats.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eone million downloads a day says you can't stop this party\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyInstaller: Bundling Your Type-Checked Apps Since Now\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e brings official support for... \u003cem\u003ewait\u003c/em\u003e. \u003cstrong\u003e[PyInstaller][]\u003c/strong\u003e? Hasn't \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e supported [PyInstaller][] since the beginning? Yeah. We thought so too. Then Meta was all like: \u003ca href=\"https://redirect.github.com/beartype/beartype/issues/599\"\u003e\u003ccode\u003e\u0026quot;Oh no you don't, @​beartype.\u0026quot;\u003c/code\u003e\u003c/a\u003e :joy:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has officially supported competing products like \u003ca href=\"https://nuitka.net\"\u003eNuitka\u003c/a\u003e for years. Now PyInstaller joins the ranks. But it's not \u003cem\u003ejust\u003c/em\u003e PyInstaller. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e should also resolve any similar pending issues with other app bundling frameworks like... uhh, \u003ca href=\"https://briefcase.beeware.org\"\u003eBriefcase\u003c/a\u003e? No idea, honestly. That's untested wishful thinking. The very best kind.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.9\u003c/code\u003e: \u003cem\u003eWhen you realize a small part of you still cares about desktop apps.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/iM6XLBMUKNcAAAAd/cat-kitty.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eYour bundled app moments after being packaged with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. It's... not good.\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/beartype/beartype/commit/9430c6515af3b158acacdc47fe7b1adb646f6624\"\u003e\u003ccode\u003e9430c65\u003c/code\u003e\u003c/a\u003e Beartype 0.22.9: Party in Da QA House\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/9a3c64238301dacc105b5f2d935de91dde8d2a42\"\u003e\u003ccode\u003e9a3c642\u003c/code\u003e\u003c/a\u003e PyInstaller x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e29b2d5bb8287cb89e1cb0b2e3627b2e7da78895\"\u003e\u003ccode\u003ee29b2d5\u003c/code\u003e\u003c/a\u003e Superficial \u003ccode\u003ety\u003c/code\u003e compatibility.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8cd5e9913e000b978337225d7674a9256c6cddfb\"\u003e\u003ccode\u003e8cd5e99\u003c/code\u003e\u003c/a\u003e PyInstaller x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/03028085baeb760995fbcce4e2bbccb4b6f92fce\"\u003e\u003ccode\u003e0302808\u003c/code\u003e\u003c/a\u003e PyInstaller x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/cf3f9d7f67148d14fd346c7b1f0503a91b5a449c\"\u003e\u003ccode\u003ecf3f9d7\u003c/code\u003e\u003c/a\u003e Pytest subprocess sanitization x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae626866cfdbe5f97016751b0e8fd32f39e53cd1\"\u003e\u003ccode\u003eae62686\u003c/code\u003e\u003c/a\u003e Mypy integration test improved.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/fbfddc48b31dfecb2dd4bdf0322ad42c785e3a7e\"\u003e\u003ccode\u003efbfddc4\u003c/code\u003e\u003c/a\u003e Synchronous generator code optimized.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/eca38eb68614e423c26a296b1753a465705de51b\"\u003e\u003ccode\u003eeca38eb\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e restarted. \u003cem\u003esigh\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8a046e0cf193106146d8a9538d8174855b7c3e0e\"\u003e\u003ccode\u003e8a046e0\u003c/code\u003e\u003c/a\u003e Beartype 0.22.8: The Return of the Generator Return\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.19.0...v0.22.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.19.0\u0026new-version=0.22.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ulab-uiuc/research-town/pull/1423","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulab-uiuc%2Fresearch-town/issues/1423","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1423/packages"}},{"old_version":"0.22.4","new_version":"0.22.8","update_type":"patch","path":null,"pr_created_at":"2025-12-08T02:24:46.000Z","version_change":"0.22.4 → 0.22.8","issue":{"uuid":"3704372711","node_id":"PR_kwDODaNHaM63ktKr","number":112,"state":"closed","title":"Bump the minor-or-patch group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-05T02:25:08.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-08T02:24:46.000Z","updated_at":"2026-01-05T02:25:09.000Z","time_to_close":2419222,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-or-patch","update_count":4,"packages":[{"name":"beartype","old_version":"0.22.4","new_version":"0.22.8","repository_url":"https://github.com/beartype/beartype"},{"name":"certifi","old_version":"2025.10.5","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"sphinx-substitution-extensions","old_version":"2025.10.24","new_version":"2025.11.17","repository_url":"https://github.com/adamtheturtle/sphinx-substitution-extensions"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-or-patch group with 4 updates in the / directory: [beartype](https://github.com/beartype/beartype), [certifi](https://github.com/certifi/python-certifi), [sphinx-substitution-extensions](https://github.com/adamtheturtle/sphinx-substitution-extensions) and [urllib3](https://github.com/urllib3/urllib3).\n\nUpdates `beartype` from 0.22.4 to 0.22.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.8: The Return of the Generator Return\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.8\u003c/code\u003e. It's happening. Yet, it shouldn't be happening. This is the corrupt timeline we live on:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype      # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv pip install --upgrade beartype   # \u0026lt;-- when you no longer have the strength to care about lock files\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.6\u003c/code\u003e broke synchronous generator returns. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.8\u003c/code\u003e is unbreaking what its younger sibling brazenly broke. The recklessness of youth, huh? Generator returns, huh? \u003ca href=\"https://github.com/fandango-fuzzer/fandango\"\u003eFandango\u003c/a\u003e cares about synchronous generator returns. Surely, they can't be the only ones!? Seems like they're the only ones. Is there anything weirder than retrieving a return value by stripping the \u003ccode\u003evalue\u003c/code\u003e instance variable out of a \u003ccode\u003eStopIteration\u003c/code\u003e exception caught while manually iterating a synchronous generator one iteration past its last valid \u003ccode\u003eyield\u003c/code\u003e? No? Just me? Who designs APIs like that, anyway? I can just imagine the internal discussion thread speccing this cruft out:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u0026quot;So. Uhh. Your API returns values by bolting them onto the side of builtin exceptions implicitly raised when your iterator is exhausted, huh? You can't even access those return values if you iterate over your iterator with \u003ccode\u003efor\u003c/code\u003e loops, huh? You've got to manually iterate your iterator with \u003ccode\u003enext()\u003c/code\u003e calls, huh? Even though that's infeasible in the general case, huh? Sounds good to me. It's in.\u0026quot;\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.8\u003c/code\u003e had better be the last patch release of the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. Overlord Ainz Ooal Gown, we summon you to complete the dark ritual! End this endless cycle of bug death and rebirth... \u003cem\u003eonce and for all\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/Cdys5Fk8I5EAAAAd/epic-seven-ainz-ooal-gown.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.8\u003c/code\u003e: \u003cem\u003eyou know that feeling when a skeletal demon lord raises his eldritch staff of oblivion in triumphant hubris?\u003c/em\u003e yeah. this is like that.\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.8\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eLastly but Beastly (but not Leastly)...\u003c/h2\u003e\n\u003cp\u003e\u003cimg src=\"https://raw.githubusercontent.com/beartype/beartype-assets/main/brand/brand-2600x800.png\" alt=\"we doin' this\" /\u003e\u003c/p\u003e\n\u003cp\u003e...to financially feed \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his friendly \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e through either:\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/beartype/beartype/commit/8a046e0cf193106146d8a9538d8174855b7c3e0e\"\u003e\u003ccode\u003e8a046e0\u003c/code\u003e\u003c/a\u003e Beartype 0.22.8: The Return of the Generator Return\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/00b614f1c333f4bda0c877d63a00d4b84f44c8c6\"\u003e\u003ccode\u003e00b614f\u003c/code\u003e\u003c/a\u003e Synchronous generator returns.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ac4fe5a022504ade01816414144006abe4f9b17c\"\u003e\u003ccode\u003eac4fe5a\u003c/code\u003e\u003c/a\u003e mypy 1.19.0 false positives.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/07435feb177ab8e3ec9ff06f87a7d7639a319819\"\u003e\u003ccode\u003e07435fe\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.23.0\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e7de8aa4e03ebd4f6a2ce2da9d1de9bd58291a5a\"\u003e\u003ccode\u003ee7de8aa\u003c/code\u003e\u003c/a\u003e Beartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/29ba35c979352f85da4ea3e665e07b957a7b33f8\"\u003e\u003ccode\u003e29ba35c\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c13ab820ed026fa0be2e39ef27d32ae9d8b5b5c1\"\u003e\u003ccode\u003ec13ab82\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/029acdc5adc8f5119745f53fe13b12f1b5ea3c18\"\u003e\u003ccode\u003e029acdc\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b80a13b09bb36ad02bc948a938f63edbc2421325\"\u003e\u003ccode\u003eb80a13b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/5665e50478c5841e57b423cecdc1591a622e5f2f\"\u003e\u003ccode\u003e5665e50\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.4...v0.22.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.10.5 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.10.05...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-substitution-extensions` from 2025.10.24 to 2025.11.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/releases\"\u003esphinx-substitution-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.11.17\u003c/h2\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/compare/2025.10.24...2025.11.17\"\u003e2025.11.17\u003c/a\u003e (2025-11-17)\u003c/h3\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/adamtheturtle/sphinx-substitution-extensions/blob/main/CHANGELOG.rst\"\u003esphinx-substitution-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.11.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGive version in extension metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eliteralinclude\u003c/code\u003e directive now supports the following options:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e:content-substitutions:\u003c/code\u003e - Performs substitutions on the included file content.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e:path-substitutions:\u003c/code\u003e - Performs substitutions on the file path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eimage\u003c/code\u003e directive now supports the following option:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e:path-substitutions:\u003c/code\u003e - Performs substitutions on the image file path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003esubstitutions_default_enabled\u003c/code\u003e configuration option to enable substitutions by default.\nWhen set to \u003ccode\u003eTrue\u003c/code\u003e in \u003ccode\u003econf.py\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003ecode-block\u003c/code\u003e directives without requiring the \u003ccode\u003e:substitutions:\u003c/code\u003e flag.\nUse the \u003ccode\u003e:nosubstitutions:\u003c/code\u003e flag on individual code blocks to disable substitutions when the default is enabled.\u003c/li\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003eliteralinclude\u003c/code\u003e directives (both content and path) without requiring the \u003ccode\u003e:content-substitutions:\u003c/code\u003e or \u003ccode\u003e:path-substitutions:\u003c/code\u003e flags.\nUse the \u003ccode\u003e:nocontent-substitutions:\u003c/code\u003e or \u003ccode\u003e:nopath-substitutions:\u003c/code\u003e flags on individual literalinclude directives to disable substitutions when the default is enabled.\u003c/li\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003eimage\u003c/code\u003e directives (path) without requiring the \u003ccode\u003e:path-substitutions:\u003c/code\u003e flag.\nUse the \u003ccode\u003e:nopath-substitutions:\u003c/code\u003e flag on individual image directives to disable substitutions when the default is enabled.\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/adamtheturtle/sphinx-substitution-extensions/commit/a8f37466b596bdeee1130bb92d4dbaec3cd39457\"\u003e\u003ccode\u003ea8f3746\u003c/code\u003e\u003c/a\u003e Bump CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/2ceca0f4864c83cacae596efd85b207d47bb5cfe\"\u003e\u003ccode\u003e2ceca0f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1264\"\u003e#1264\u003c/a\u003e from adamtheturtle/fix-md-sample\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/3e26f1f7887350ede868cf5e8db3011779d515ac\"\u003e\u003ccode\u003e3e26f1f\u003c/code\u003e\u003c/a\u003e Add Markdown examples for new directive support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/549be9718849f1efb59dd586eb7b58ef6b5a9c28\"\u003e\u003ccode\u003e549be97\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1263\"\u003e#1263\u003c/a\u003e from adamtheturtle/image-subst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/0b675f88e89776501aea981be450fe4d0839eb4f\"\u003e\u003ccode\u003e0b675f8\u003c/code\u003e\u003c/a\u003e Remove some comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/0debe432e4bbf3e64c563936c21bd0a42a44b368\"\u003e\u003ccode\u003e0debe43\u003c/code\u003e\u003c/a\u003e Fix mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/b74929af0f44cde1060499f4ec210c7982b2aa07\"\u003e\u003ccode\u003eb74929a\u003c/code\u003e\u003c/a\u003e Fix pyright and use more useful sample image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/ebdd07e39ae24615905a5286d10d4292c80cecbd\"\u003e\u003ccode\u003eebdd07e\u003c/code\u003e\u003c/a\u003e Add images to the samples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/fc80e883c505628ef7130fb62592acdb44bb21c5\"\u003e\u003ccode\u003efc80e88\u003c/code\u003e\u003c/a\u003e Add path substitutions for images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/739cca0683e995e553678356ed77a5d8d2bdd5a4\"\u003e\u003ccode\u003e739cca0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1262\"\u003e#1262\u003c/a\u003e from adamtheturtle/add-default-substitutions-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/compare/2025.10.24...2025.11.17\"\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.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.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\u003cli\u003eIf you use custom decompressors, please make sure to update them to  respect the changed API of \u003ccode\u003eurllib3.response.ContentDecoder\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnabled retrieval, deletion, and membership testing in \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e using bytes keys. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3653\"\u003e#3653\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded host and port information to string representations of \u003ccode\u003eHTTPConnection\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3666\"\u003e#3666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 free-threading builds explicitly. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3696\"\u003e#3696\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers\u003c/code\u003e. Removed the \u003ccode\u003eHTTPResponse.getheader(name, default)\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers.get(name, default)\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3622\"\u003e#3622\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed redirect handling in \u003ccode\u003eurllib3.PoolManager\u003c/code\u003e when an integer is passed for the retries parameter. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3649\"\u003e#3649\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool\u003c/code\u003e when used in Emscripten with no explicit port. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3664\"\u003e#3664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed handling of \u003ccode\u003eSSLKEYLOGFILE\u003c/code\u003e with expandable variables. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3700\"\u003e#3700\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eChanged the \u003ccode\u003ezstd\u003c/code\u003e extra to install \u003ccode\u003ebackports.zstd\u003c/code\u003e instead of \u003ccode\u003ezstandard\u003c/code\u003e on Python 3.13 and before. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3693\"\u003e#3693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the performance of content decoding by optimizing \u003ccode\u003eBytesQueueBuffer\u003c/code\u003e class. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3710\"\u003e#3710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllowed building the urllib3 package with newer setuptools-scm v9.x. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3652\"\u003e#3652\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsured successful urllib3 builds by setting Hatchling requirement to ≥ 1.27.0. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3638\"\u003e#3638\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.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\u003e\n\u003cp\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\n\u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf you use custom decompressors, please make sure to update them to\nrespect the changed API of \u003ccode\u003eurllib3.response.ContentDecoder\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnabled retrieval, deletion, and membership testing in \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e using bytes keys. (\u003ccode\u003e[#3653](https://github.com/urllib3/urllib3/issues/3653) \u0026lt;https://github.com/urllib3/urllib3/issues/3653\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded host and port information to string representations of \u003ccode\u003eHTTPConnection\u003c/code\u003e. (\u003ccode\u003e[#3666](https://github.com/urllib3/urllib3/issues/3666) \u0026lt;https://github.com/urllib3/urllib3/issues/3666\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 free-threading builds explicitly. (\u003ccode\u003e[#3696](https://github.com/urllib3/urllib3/issues/3696) \u0026lt;https://github.com/urllib3/urllib3/issues/3696\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved the \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers\u003c/code\u003e.\nRemoved the \u003ccode\u003eHTTPResponse.getheader(name, default)\u003c/code\u003e method in favor of \u003ccode\u003eHTTPResponse.headers.get(name, default)\u003c/code\u003e. (\u003ccode\u003e[#3622](https://github.com/urllib3/urllib3/issues/3622) \u0026lt;https://github.com/urllib3/urllib3/issues/3622\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed redirect handling in \u003ccode\u003eurllib3.PoolManager\u003c/code\u003e when an integer is passed\nfor the retries parameter. (\u003ccode\u003e[#3649](https://github.com/urllib3/urllib3/issues/3649) \u0026lt;https://github.com/urllib3/urllib3/issues/3649\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool\u003c/code\u003e when used in Emscripten with no explicit port. (\u003ccode\u003e[#3664](https://github.com/urllib3/urllib3/issues/3664) \u0026lt;https://github.com/urllib3/urllib3/issues/3664\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed handling of \u003ccode\u003eSSLKEYLOGFILE\u003c/code\u003e with expandable variables. (\u003ccode\u003e[#3700](https://github.com/urllib3/urllib3/issues/3700) \u0026lt;https://github.com/urllib3/urllib3/issues/3700\u0026gt;\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/urllib3/urllib3/commit/720f484b605f18887a48eef448d0084e2b76902d\"\u003e\u003ccode\u003e720f484\u003c/code\u003e\u003c/a\u003e Release 2.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/24d7b67eac89f94e11003424bcf0d8f7b72222a8\"\u003e\u003ccode\u003e24d7b67\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/c19571de34c47de3a766541b041637ba5f716ed7\"\u003e\u003ccode\u003ec19571d\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/816fcf04528bc0f89672e13398eb813dcc892490\"\u003e\u003ccode\u003e816fcf0\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 6.0.0 to 6.1.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3725\"\u003e#3725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/18af0a10efc4c99dd028f7ad5a461470b9a8b0fd\"\u003e\u003ccode\u003e18af0a1\u003c/code\u003e\u003c/a\u003e Improve speed of \u003ccode\u003eBytesQueueBuffer.get()\u003c/code\u003e by using memoryview (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3711\"\u003e#3711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/1f6abac3e6d426c3939b8a17cf4afa099e691ab2\"\u003e\u003ccode\u003e1f6abac\u003c/code\u003e\u003c/a\u003e Bump versions of pre-commit hooks (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3716\"\u003e#3716\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/1c8fbf787b8e6ed151842c5d6874c9d5bdbf1d0b\"\u003e\u003ccode\u003e1c8fbf7\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3722\"\u003e#3722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/7784b9eee95b7c90802c02b111e98df70259ae4f\"\u003e\u003ccode\u003e7784b9e\u003c/code\u003e\u003c/a\u003e Add Python 3.15 to CI (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3717\"\u003e#3717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/0241c9e7286d3008e3cce18effc13b40dc633385\"\u003e\u003ccode\u003e0241c9e\u003c/code\u003e\u003c/a\u003e Updated docs to reflect change in optional zstd dependency from \u003ccode\u003ezstandard\u003c/code\u003e t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/7afcabb6489d9a8ea95a40e5afcb46463af17351\"\u003e\u003ccode\u003e7afcabb\u003c/code\u003e\u003c/a\u003e Expand environment variable of SSLKEYLOGFILE (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3705\"\u003e#3705\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.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/FAIRDataTeam/FAIRDataPoint-Docs/pull/112","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FAIRDataTeam%2FFAIRDataPoint-Docs/issues/112","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/112/packages"}},{"old_version":"0.22.6","new_version":"0.22.7","update_type":"patch","path":null,"pr_created_at":"2025-12-03T02:06:13.000Z","version_change":"0.22.6 → 0.22.7","issue":{"uuid":"3688171016","node_id":"PR_kwDOJPFt4s62uZ7c","number":1411,"state":"open","title":"Bump beartype from 0.22.6 to 0.22.7","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-03T02:06:13.000Z","updated_at":"2025-12-03T04:02:06.283Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.22.6","new_version":"0.22.7","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.6 to 0.22.7.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e descends like an owl with sorta unsettling black eyes devoid of pupils, majestic wings aloft on the winds of QA. \u003cem\u003eDo not be alarmed.\u003c/em\u003e Actually, isn't that when you should be most alarmed? When somebody says, \u0026quot;Do not be alarmed\u0026quot;!? The italicization isn't helping, either. \u003cem\u003eBut this will\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype   # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv sync beartype                 # \u0026lt;-- \u003ca href=\"https://github.com/Glinte\"\u003e\u003ccode\u003e@​Glinte\u003c/code\u003e\u003c/a\u003e said it, so it must be true\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is the last patch release of the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. That was a lie. Fortunately, seductive lies aren't a problem here at \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. If we want to hear it, it can't be bad. This release brings big:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGradio compatibility!\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now be fully compliant with Gradio needs, wants, hungers, and cravings. Gradio: the ML web framework that was hard to satisfy, but we're pretty sure we managed. If you want Gradio, you want \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e. :spider_web: + :bear: = :safety_pin:\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eShout-outs to \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e!\u003c/strong\u003e \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's pure-Python implementation of the hypothetical \u003ccode\u003easync yield from\u003c/code\u003e expression at \u003ca href=\"https://github.com/rbroderi/future-async-yield-from\"\u003e\u003ccode\u003efuture-async-yield-from\u003c/code\u003e\u003c/a\u003e was hugely inspiring. If you're into mutating Python into misshapen forms through the cosmic horrors of forbidden AST transformations, \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...who isn't? am i right? i'm right\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e check out \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's work. He's up to no good, which is the best kind. :hugs: :people_hugging:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThat's it. That's all we've got. But you don't even want to know the things we \u003cem\u003edid\u003c/em\u003e, the places we \u003cem\u003ewent\u003c/em\u003e, the behaviour we \u003cem\u003eregret\u003c/em\u003e, to make Gradio + \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e happen. If Gradio means nothing to you, we've got nothing but memes for you.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now support all popular Python frameworks. If you (or a codebase you love) know of any Python packages, modules, APIs, or other services that \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e does not support, please drop us a line on the issue tracker. We'll drop what we're doing \u003c!-- raw HTML omitted --\u003e\u003cem\u003evideo games. it's always video games.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e and \u0026quot;immediately\u0026quot; resolve that for your heroic team.\u003c/p\u003e\n\u003cp\u003eUntil then, video games await. Let's get those memes started!\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/4rNc-iqduHgAAAAd/owl.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003ethe more you stare at this, the more your brain sees\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eLastly but Beastly (but not Leastly)...\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/beartype/beartype/commit/e7de8aa4e03ebd4f6a2ce2da9d1de9bd58291a5a\"\u003e\u003ccode\u003ee7de8aa\u003c/code\u003e\u003c/a\u003e Beartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/29ba35c979352f85da4ea3e665e07b957a7b33f8\"\u003e\u003ccode\u003e29ba35c\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c13ab820ed026fa0be2e39ef27d32ae9d8b5b5c1\"\u003e\u003ccode\u003ec13ab82\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/029acdc5adc8f5119745f53fe13b12f1b5ea3c18\"\u003e\u003ccode\u003e029acdc\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b80a13b09bb36ad02bc948a938f63edbc2421325\"\u003e\u003ccode\u003eb80a13b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/5665e50478c5841e57b423cecdc1591a622e5f2f\"\u003e\u003ccode\u003e5665e50\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/a04d9ad94eae420b2c13288208ce3f83aa3b1cdd\"\u003e\u003ccode\u003ea04d9ad\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/21de0d80e7d9da18fad83780ff499c7b44c8e24b\"\u003e\u003ccode\u003e21de0d8\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/124a586fd772165a905c676cd2be21d7993306b8\"\u003e\u003ccode\u003e124a586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.7\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.6...v0.22.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.6\u0026new-version=0.22.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/FlorianPfaff/pyRecEst/pull/1411","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianPfaff%2FpyRecEst/issues/1411","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1411/packages"}},{"old_version":"0.22.6","new_version":"0.22.7","update_type":"patch","path":null,"pr_created_at":"2025-12-02T17:05:48.000Z","version_change":"0.22.6 → 0.22.7","issue":{"uuid":"3686767539","node_id":"PR_kwDOH59FGM62ptYk","number":2435,"state":"open","title":"build: bump beartype from 0.22.6 to 0.22.7","user":"dependabot[bot]","labels":["dependencies","maintenance"],"assignees":["pyansys-ci-bot"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-02T17:05:48.000Z","updated_at":"2025-12-02T17:22:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build","packages":[{"name":"beartype","old_version":"0.22.6","new_version":"0.22.7","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.6 to 0.22.7.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e descends like an owl with sorta unsettling black eyes devoid of pupils, majestic wings aloft on the winds of QA. \u003cem\u003eDo not be alarmed.\u003c/em\u003e Actually, isn't that when you should be most alarmed? When somebody says, \u0026quot;Do not be alarmed\u0026quot;!? The italicization isn't helping, either. \u003cem\u003eBut this will\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype   # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv sync beartype                 # \u0026lt;-- \u003ca href=\"https://github.com/Glinte\"\u003e\u003ccode\u003e@​Glinte\u003c/code\u003e\u003c/a\u003e said it, so it must be true\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is the last patch release of the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. That was a lie. Fortunately, seductive lies aren't a problem here at \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. If we want to hear it, it can't be bad. This release brings big:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGradio compatibility!\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now be fully compliant with Gradio needs, wants, hungers, and cravings. Gradio: the ML web framework that was hard to satisfy, but we're pretty sure we managed. If you want Gradio, you want \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e. :spider_web: + :bear: = :safety_pin:\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eShout-outs to \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e!\u003c/strong\u003e \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's pure-Python implementation of the hypothetical \u003ccode\u003easync yield from\u003c/code\u003e expression at \u003ca href=\"https://github.com/rbroderi/future-async-yield-from\"\u003e\u003ccode\u003efuture-async-yield-from\u003c/code\u003e\u003c/a\u003e was hugely inspiring. If you're into mutating Python into misshapen forms through the cosmic horrors of forbidden AST transformations, \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...who isn't? am i right? i'm right\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e check out \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's work. He's up to no good, which is the best kind. :hugs: :people_hugging:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThat's it. That's all we've got. But you don't even want to know the things we \u003cem\u003edid\u003c/em\u003e, the places we \u003cem\u003ewent\u003c/em\u003e, the behaviour we \u003cem\u003eregret\u003c/em\u003e, to make Gradio + \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e happen. If Gradio means nothing to you, we've got nothing but memes for you.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now support all popular Python frameworks. If you (or a codebase you love) know of any Python packages, modules, APIs, or other services that \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e does not support, please drop us a line on the issue tracker. We'll drop what we're doing \u003c!-- raw HTML omitted --\u003e\u003cem\u003evideo games. it's always video games.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e and \u0026quot;immediately\u0026quot; resolve that for your heroic team.\u003c/p\u003e\n\u003cp\u003eUntil then, video games await. Let's get those memes started!\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/4rNc-iqduHgAAAAd/owl.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003ethe more you stare at this, the more your brain sees\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eLastly but Beastly (but not Leastly)...\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/beartype/beartype/commit/e7de8aa4e03ebd4f6a2ce2da9d1de9bd58291a5a\"\u003e\u003ccode\u003ee7de8aa\u003c/code\u003e\u003c/a\u003e Beartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/29ba35c979352f85da4ea3e665e07b957a7b33f8\"\u003e\u003ccode\u003e29ba35c\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c13ab820ed026fa0be2e39ef27d32ae9d8b5b5c1\"\u003e\u003ccode\u003ec13ab82\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/029acdc5adc8f5119745f53fe13b12f1b5ea3c18\"\u003e\u003ccode\u003e029acdc\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b80a13b09bb36ad02bc948a938f63edbc2421325\"\u003e\u003ccode\u003eb80a13b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/5665e50478c5841e57b423cecdc1591a622e5f2f\"\u003e\u003ccode\u003e5665e50\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/a04d9ad94eae420b2c13288208ce3f83aa3b1cdd\"\u003e\u003ccode\u003ea04d9ad\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/21de0d80e7d9da18fad83780ff499c7b44c8e24b\"\u003e\u003ccode\u003e21de0d8\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/124a586fd772165a905c676cd2be21d7993306b8\"\u003e\u003ccode\u003e124a586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.7\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.6...v0.22.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.6\u0026new-version=0.22.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ansys/pyansys-geometry/pull/2435","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansys%2Fpyansys-geometry/issues/2435","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2435/packages"}},{"old_version":"0.22.6","new_version":"0.22.7","update_type":"patch","path":null,"pr_created_at":"2025-12-01T02:23:07.000Z","version_change":"0.22.6 → 0.22.7","issue":{"uuid":"3678933334","node_id":"PR_kwDOJPFt4s62PImW","number":1381,"state":"closed","title":"Bump beartype from 0.22.6 to 0.22.7","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-12-01T02:53:28.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-01T02:23:07.000Z","updated_at":"2025-12-01T02:53:36.000Z","time_to_close":1821,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.22.6","new_version":"0.22.7","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.6 to 0.22.7.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e descends like an owl with sorta unsettling black eyes devoid of pupils, majestic wings aloft on the winds of QA. \u003cem\u003eDo not be alarmed.\u003c/em\u003e Actually, isn't that when you should be most alarmed? When somebody says, \u0026quot;Do not be alarmed\u0026quot;!? The italicization isn't helping, either. \u003cem\u003eBut this will\u003c/em\u003e:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype   # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv sync beartype                 # \u0026lt;-- \u003ca href=\"https://github.com/Glinte\"\u003e\u003ccode\u003e@​Glinte\u003c/code\u003e\u003c/a\u003e said it, so it must be true\u003c/p\u003e\n\u003ch1\u003eVia \u0026quot;conda\u0026quot;, the corporate scientist in casual lab attire who wants to be your buddy, pal:\u003c/h1\u003e\n\u003cp\u003e$ conda config --add channels conda-forge  # \u0026lt;-- where did python packaging go wrong?\n$ conda install conda-forge::beartype      # \u0026lt;-- it all seemed so simple, once.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is the last patch release of the \u003ccode\u003e0.22.X\u003c/code\u003e dev cycle. That was a lie. Fortunately, seductive lies aren't a problem here at \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. If we want to hear it, it can't be bad. This release brings big:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGradio compatibility!\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now be fully compliant with Gradio needs, wants, hungers, and cravings. Gradio: the ML web framework that was hard to satisfy, but we're pretty sure we managed. If you want Gradio, you want \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e. :spider_web: + :bear: = :safety_pin:\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eShout-outs to \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e!\u003c/strong\u003e \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's pure-Python implementation of the hypothetical \u003ccode\u003easync yield from\u003c/code\u003e expression at \u003ca href=\"https://github.com/rbroderi/future-async-yield-from\"\u003e\u003ccode\u003efuture-async-yield-from\u003c/code\u003e\u003c/a\u003e was hugely inspiring. If you're into mutating Python into misshapen forms through the cosmic horrors of forbidden AST transformations, \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...who isn't? am i right? i'm right\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e check out \u003ca href=\"https://github.com/rbroderi\"\u003e\u003ccode\u003e@​rbroderi\u003c/code\u003e\u003c/a\u003e's work. He's up to no good, which is the best kind. :hugs: :people_hugging:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThat's it. That's all we've got. But you don't even want to know the things we \u003cem\u003edid\u003c/em\u003e, the places we \u003cem\u003ewent\u003c/em\u003e, the behaviour we \u003cem\u003eregret\u003c/em\u003e, to make Gradio + \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e happen. If Gradio means nothing to you, we've got nothing but memes for you.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e should now support all popular Python frameworks. If you (or a codebase you love) know of any Python packages, modules, APIs, or other services that \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e does not support, please drop us a line on the issue tracker. We'll drop what we're doing \u003c!-- raw HTML omitted --\u003e\u003cem\u003evideo games. it's always video games.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e and \u0026quot;immediately\u0026quot; resolve that for your heroic team.\u003c/p\u003e\n\u003cp\u003eUntil then, video games await. Let's get those memes started!\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/4rNc-iqduHgAAAAd/owl.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003ethe more you stare at this, the more your brain sees\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.7\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/BhQq0Wp4NoUAAAAd/hi-there-hi.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eLastly but Beastly (but not Leastly)...\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/beartype/beartype/commit/e7de8aa4e03ebd4f6a2ce2da9d1de9bd58291a5a\"\u003e\u003ccode\u003ee7de8aa\u003c/code\u003e\u003c/a\u003e Beartype 0.22.7: The Road to QA Is Paved with Gradio Intentions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/29ba35c979352f85da4ea3e665e07b957a7b33f8\"\u003e\u003ccode\u003e29ba35c\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c13ab820ed026fa0be2e39ef27d32ae9d8b5b5c1\"\u003e\u003ccode\u003ec13ab82\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/029acdc5adc8f5119745f53fe13b12f1b5ea3c18\"\u003e\u003ccode\u003e029acdc\u003c/code\u003e\u003c/a\u003e Coverage.py subprocess collection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b80a13b09bb36ad02bc948a938f63edbc2421325\"\u003e\u003ccode\u003eb80a13b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/5665e50478c5841e57b423cecdc1591a622e5f2f\"\u003e\u003ccode\u003e5665e50\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/a04d9ad94eae420b2c13288208ce3f83aa3b1cdd\"\u003e\u003ccode\u003ea04d9ad\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isasyncgenfunction()\u003c/code\u003e mimicry x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/21de0d80e7d9da18fad83780ff499c7b44c8e24b\"\u003e\u003ccode\u003e21de0d8\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/593\"\u003e#593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/124a586fd772165a905c676cd2be21d7993306b8\"\u003e\u003ccode\u003e124a586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.7\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.6...v0.22.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.6\u0026new-version=0.22.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/FlorianPfaff/pyRecEst/pull/1381","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlorianPfaff%2FpyRecEst/issues/1381","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1381/packages"}},{"old_version":"0.22.5","new_version":"0.22.6","update_type":"patch","path":null,"pr_created_at":"2025-11-24T19:10:34.000Z","version_change":"0.22.5 → 0.22.6","issue":{"uuid":"3660183695","node_id":"PR_kwDOLWRIZM61RHT2","number":483,"state":"closed","title":"Bump the actions group with 4 updates","user":"dependabot[bot]","labels":["topic: dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-29T03:35:53.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-24T19:10:34.000Z","updated_at":"2025-11-29T03:35:54.000Z","time_to_close":375919,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"actions","update_count":4,"packages":[{"name":"ruff","old_version":"0.14.5","new_version":"0.14.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"beartype","old_version":"0.22.5","new_version":"0.22.6","repository_url":"https://github.com/beartype/beartype"},{"name":"basedpyright","old_version":"1.33.0","new_version":"1.34.0","repository_url":"https://github.com/detachhead/basedpyright"},{"name":"pyrefly","old_version":"0.41.3","new_version":"0.43.1","repository_url":"https://github.com/facebook/pyrefly"}],"path":null,"ecosystem":"pip"},"body":"Bumps the actions group with 4 updates: [ruff](https://github.com/astral-sh/ruff), [beartype](https://github.com/beartype/beartype), [basedpyright](https://github.com/detachhead/basedpyright) and [pyrefly](https://github.com/facebook/pyrefly).\n\nUpdates `ruff` from 0.14.5 to 0.14.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Support new PySNMP API paths (\u003ccode\u003eS508\u003c/code\u003e, \u003ccode\u003eS509\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21374\"\u003e#21374\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdjust own-line comment placement between branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21185\"\u003e#21185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error when formatting attribute expressions with outer parentheses, parenthesized value, and trailing comment on value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20418\"\u003e#20418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when formatting comments in unary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21501\"\u003e#21501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003efmt: skip\u003c/code\u003e for compound statements on a single line (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20633\"\u003e#20633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB103\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21454\"\u003e#21454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positive for complex conversion specifiers in \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positive on \u003ccode\u003eClassVar\u003c/code\u003e reassignment (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21478\"\u003e#21478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRender hyperlinks for lint errors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21514\"\u003e#21514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003eruff analyze\u003c/code\u003e option to skip over imports in \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21472\"\u003e#21472\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit \u003ccode\u003eeglot-format\u003c/code\u003e hook to eglot-managed Python buffers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21459\"\u003e#21459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention \u003ccode\u003eforce-exclude\u003c/code\u003e in \u0026quot;Configuration \u0026gt; Python file discovery\u0026quot; (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21500\"\u003e#21500\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gauthsvenkat\"\u003e\u003ccode\u003e@​gauthsvenkat\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thamer\"\u003e\u003ccode\u003e@​thamer\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ruchir28\"\u003e\u003ccode\u003e@​Ruchir28\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.14.6\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.14.6/ruff-installer.sh | sh\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-11-21.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Support new PySNMP API paths (\u003ccode\u003eS508\u003c/code\u003e, \u003ccode\u003eS509\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21374\"\u003e#21374\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdjust own-line comment placement between branches (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21185\"\u003e#21185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error when formatting attribute expressions with outer parentheses, parenthesized value, and trailing comment on value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20418\"\u003e#20418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix panic when formatting comments in unary expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21501\"\u003e#21501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect \u003ccode\u003efmt: skip\u003c/code\u003e for compound statements on a single line (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20633\"\u003e#20633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB103\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21454\"\u003e#21454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positive for complex conversion specifiers in \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21464\"\u003e#21464\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid false positive on \u003ccode\u003eClassVar\u003c/code\u003e reassignment (\u003ccode\u003eRUF012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21478\"\u003e#21478\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRender hyperlinks for lint errors (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21514\"\u003e#21514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003eruff analyze\u003c/code\u003e option to skip over imports in \u003ccode\u003eTYPE_CHECKING\u003c/code\u003e blocks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21472\"\u003e#21472\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimit \u003ccode\u003eeglot-format\u003c/code\u003e hook to eglot-managed Python buffers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21459\"\u003e#21459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention \u003ccode\u003eforce-exclude\u003c/code\u003e in \u0026quot;Configuration \u0026gt; Python file discovery\u0026quot; (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21500\"\u003e#21500\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gauthsvenkat\"\u003e\u003ccode\u003e@​gauthsvenkat\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thamer\"\u003e\u003ccode\u003e@​thamer\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ruchir28\"\u003e\u003ccode\u003e@​Ruchir28\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thejcannon\"\u003e\u003ccode\u003e@​thejcannon\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/59c6cb521d26380120f8522476fd09d296bf4f2e\"\u003e\u003ccode\u003e59c6cb5\u003c/code\u003e\u003c/a\u003e Bump 0.14.6 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21558\"\u003e#21558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/54dba15088ced32c31592ab44ddfdf40614002bb\"\u003e\u003ccode\u003e54dba15\u003c/code\u003e\u003c/a\u003e [ty] Improve debug messages when imports fail (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21555\"\u003e#21555\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1af318534a01ba6be69d7d77c33e96080635a8af\"\u003e\u003ccode\u003e1af3185\u003c/code\u003e\u003c/a\u003e [ty] Add support for relative import completions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/553e5686248e86b9c781af77c714adc229bf8cc5\"\u003e\u003ccode\u003e553e568\u003c/code\u003e\u003c/a\u003e [ty] Refactor detection of import statements for completions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/cdef3f5ab8115e2581e080341d4bab932d905af4\"\u003e\u003ccode\u003ecdef3f5\u003c/code\u003e\u003c/a\u003e [ty] Use dedicated collector for completions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/617882242719af179a42be68170f9de9d83174f4\"\u003e\u003ccode\u003e6178822\u003c/code\u003e\u003c/a\u003e [ty] Attach subdiagnostics to \u003ccode\u003eunresolved-import\u003c/code\u003e errors for relative imports...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6b7adb0537d1a57f26cf462a637af483e0ba2c75\"\u003e\u003ccode\u003e6b7adb0\u003c/code\u003e\u003c/a\u003e [ty] support PEP 613 type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21394\"\u003e#21394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/06941c1987bd4fe2b54d99b5514784472cabc0b3\"\u003e\u003ccode\u003e06941c1\u003c/code\u003e\u003c/a\u003e [ty] More low-hanging fruit for inlay hint goto-definition (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21548\"\u003e#21548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eb7c098d6b70aacbaebe8b7c8d7710ad4ad0f46b\"\u003e\u003ccode\u003eeb7c098\u003c/code\u003e\u003c/a\u003e [ty] implement \u003ccode\u003eTypedDict\u003c/code\u003e structural assignment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21467\"\u003e#21467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1b28fc1f1417284a075afa4a18c5e9d31a7d8620\"\u003e\u003ccode\u003e1b28fc1\u003c/code\u003e\u003c/a\u003e [ty] Add more random TypeDetails and tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21546\"\u003e#21546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.5...0.14.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beartype` from 0.22.5 to 0.22.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/876591c0f3f89dc214cea7ce6f73873a6f7f6498\"\u003e\u003ccode\u003e876591c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.6: Gradio, They Said. It'll Be Easy, They Said.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/1f57def01dc623e775d13c2b7730c83df9df1981\"\u003e\u003ccode\u003e1f57def\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isgeneratorfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae520e9f22fcc03b9aab67928d9d4c2f320e7490\"\u003e\u003ccode\u003eae520e9\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isgeneratorfunction()\u003c/code\u003e mimicry x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/aa872c5194030a28fdf957676bcba815ae9e785b\"\u003e\u003ccode\u003eaa872c5\u003c/code\u003e\u003c/a\u003e PyPy resurrection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/43856587c7b5aee69891a5dbbd3522d9bc4b0048\"\u003e\u003ccode\u003e4385658\u003c/code\u003e\u003c/a\u003e \u003ccode\u003edocutils.core.publish_parts()\u003c/code\u003e \u0026gt;= 0.22.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/de34bacd24102dc9196e59d84e5874cca2e153c9\"\u003e\u003ccode\u003ede34bac\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.6\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.5...v0.22.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `basedpyright` from 1.33.0 to 1.34.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/b908f269cc605635f226d4b2f2db7c43d673d898\"\u003e\u003ccode\u003eb908f26\u003c/code\u003e\u003c/a\u003e 1.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/21cd035490ae1852d47217aaf31816d35b85ae89\"\u003e\u003ccode\u003e21cd035\u003c/code\u003e\u003c/a\u003e document go to implementations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/08d798a2b78f4b60759b66c9b76bdc27be604276\"\u003e\u003ccode\u003e08d798a\u003c/code\u003e\u003c/a\u003e hopefully fix npm tasks running with the globally installed version of node\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/6400e27a424d7caefcb76647a9a6fe107c34120d\"\u003e\u003ccode\u003e6400e27\u003c/code\u003e\u003c/a\u003e implement \u003ccode\u003etextDocument/implementation\u003c/code\u003e to find overrides (\u003ca href=\"https://redirect.github.com/detachhead/basedpyright/issues/1636\"\u003e#1636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/513aa518c60e4fe8e9b3cb87c115dc75427013f4\"\u003e\u003ccode\u003e513aa51\u003c/code\u003e\u003c/a\u003e workaround for crash in vscode pylint plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/759c0da37d7f7cbfa51471beeb2178cc93110262\"\u003e\u003ccode\u003e759c0da\u003c/code\u003e\u003c/a\u003e disable \u003ccode\u003epython.terminal.shellIntegration.enabled\u003c/code\u003e in vscode because it's broken\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/acfea41d0026bf99fa9084f101776ff9bdf5ca70\"\u003e\u003ccode\u003eacfea41\u003c/code\u003e\u003c/a\u003e Fix issues with highlighting decorators/properties (\u003ca href=\"https://redirect.github.com/detachhead/basedpyright/issues/1632\"\u003e#1632\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/ac639c21c42cccaa864af80f57295cae19a65f24\"\u003e\u003ccode\u003eac639c2\u003c/code\u003e\u003c/a\u003e remove workaround for language server crash when installing basedpyright with...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/c7537d4cc6e9f0801cbf39a28bb90b70e221e7bb\"\u003e\u003ccode\u003ec7537d4\u003c/code\u003e\u003c/a\u003e Chinese (Simplified) localization update (2025.11) (\u003ca href=\"https://redirect.github.com/detachhead/basedpyright/issues/1628\"\u003e#1628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/449c4b6ea9455c415e29ce10ee77e6a915815fea\"\u003e\u003ccode\u003e449c4b6\u003c/code\u003e\u003c/a\u003e document hover and \u0026quot;go to definition\u0026quot; on operators\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/detachhead/basedpyright/compare/v1.33.0...v1.34.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyrefly` from 0.41.3 to 0.43.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facebook/pyrefly/releases\"\u003epyrefly's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyrefly v0.42.0 - BETA\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eStatus : BETA 🎉\u003c/strong\u003e\u003cbr /\u003e\n\u003cem\u003eRelease date: 17 Nov 2025\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003e\u003cstrong\u003e🚀Pyrefly is now in Beta!\u003c/strong\u003e\u003c/h2\u003e\n\u003cp\u003eWe’re thrilled to announce with this release that Pyrefly has transitioned from Alpha to Beta status! This marks a new chapter for the project, with increased stability, feature maturity, and readiness for broader adoption. When using a version of Pyrefly with Beta status you can feel confident that the IDE extension is ready for production use, while core type-checking features can be used, but be aware some edge cases are still being addressed as we make progress towards a later stable v1 release (\u003ca href=\"https://github.com/facebook/pyrefly/issues\"\u003ebug reports welcome\u003c/a\u003e!).\u003c/p\u003e\n\u003cp\u003eThese release notes will use a slightly different format than usual, covering the major highlights of the last 6 months that have contributed to this milestone.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003cstrong\u003e🏆 Major Highlights from Alpha Releases\u003c/strong\u003e\u003c/h2\u003e\n\u003ch3\u003e\u003cstrong\u003e1. IDE \u0026amp; Language Server Features\u003c/strong\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInstant IDE Startup: Major performance improvements for large environments.\u003c/li\u003e\n\u003cli\u003eSemantic Highlighting, Inlay Hints: Enhanced code readability and added highlighting for unreachable blocks and unused function parameters. Unnecessary/obvious inlay hints are no longer displayed.\u003c/li\u003e\n\u003cli\u003eHover Cards \u0026amp; Docstrings: Richer information in tooltips, including docstrings for built-in types and links to error documentation.\u003c/li\u003e\n\u003cli\u003eConfigurable LSP Features: Greater control over enabling/disabling IDE features like autocomplete, go-to-definition, and hover.\u003c/li\u003e\n\u003cli\u003eExtensions released for a range of popular IDEs, including \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=meta.pyrefly\"\u003eVSCode\u003c/a\u003e, \u003ca href=\"https://www.jetbrains.com/help/pycharm/2025.3/lsp-tools.html#pyrefly\"\u003ePyCharm\u003c/a\u003e and \u003ca href=\"https://pyrefly.org/en/docs/IDE/#other-editors\"\u003emore\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eSome relevant issues: \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/853\"\u003e#853\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1403\"\u003e#1403\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1335\"\u003e#1335\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/873\"\u003e#873\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/802\"\u003e#802\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/716\"\u003e#716\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cstrong\u003e2. Type Checking Enhancements\u003c/strong\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved overload evaluation: Fully compliant with the Python typing spec\u003c/li\u003e\n\u003cli\u003eSmarter Type Narrowing: Improved handling of variable types in loops, control flow, and pattern matching. Added ability to understand patterns like `getattr()`, `hasattr()`, and `dict.get()`\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypedDict\u003c/code\u003e \u0026amp; Protocol Improvements: More accurate type checking for structural types, including handling for union keys and improved inheritance checks.\u003c/li\u003e\n\u003cli\u003eAdditional Python typing features: \u003ccode\u003eLiteralString\u003c/code\u003e \u0026amp; \u003ccode\u003eTypeAliasType\u003c/code\u003e support, abstract class instantiation checks, unused awaitable checks, multiple inheritance consistency checks, and more!\u003c/li\u003e\n\u003cli\u003eConfigurable Type Inference: Advanced features like empty container inference and return type inference can be toggled via config.\u003c/li\u003e\n\u003cli\u003eSome relevant issues: \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/684\"\u003e#684\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/872\"\u003e#872\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1058\"\u003e#1058\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/940\"\u003e#940\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/815\"\u003e#815\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1461\"\u003e#1461\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/44\"\u003e#44\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cstrong\u003e3. Error Reporting \u0026amp; Suppression\u003c/strong\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGranular Error Filtering: Filter summarized errors by code, set error severity, and get clickable links to docs.\u003c/li\u003e\n\u003cli\u003eSuppression Workflow: Scripts and commands to silence new errors after upgrades, making large codebase migrations manageable.\u003c/li\u003e\n\u003cli\u003eImproved Error Messages: Clearer, more actionable diagnostics for overloads, missing imports, and more.\u003c/li\u003e\n\u003cli\u003eSome relevant issues: \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1276\"\u003e#1276\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1302\"\u003e#1302\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/890\"\u003e#890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1401\"\u003e#1401\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cstrong\u003e4. Framework Integrations\u003c/strong\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDjango: Partial support, with ongoing improvements for model field inference, enum support, and lazy label handling.\u003c/li\u003e\n\u003cli\u003ePydantic: Experimental support, with growing documentation and bug fixes.\u003c/li\u003e\n\u003cli\u003eSome relevant issues: \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/316\"\u003e#316\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/334\"\u003e#334\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1276\"\u003e#1276\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/839\"\u003e#839\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cstrong\u003e5. Jupyter Notebook Support (Experimental)\u003c/strong\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFull Language Server Integration: Diagnostics, inlay hints, go-to-definition, hover, semantic tokens, signature help, and completions now work out-of-the-box for .ipynb files.\u003c/li\u003e\n\u003cli\u003eCLI Type Checking for Notebooks\u003c/li\u003e\n\u003cli\u003eJupyter Lab Integration\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/a4d0bfa8abb78ef1ecffbf6c5eae765be1998c5b\"\u003e\u003ccode\u003ea4d0bfa\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/693b94f4cd773539df59152a4112e709de244d1e\"\u003e\u003ccode\u003e693b94f\u003c/code\u003e\u003c/a\u003e highlight false negative\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/8a3b4d953f9a334caa8915cdeeefa114c5ca3d5e\"\u003e\u003ccode\u003e8a3b4d9\u003c/code\u003e\u003c/a\u003e filter star imports from unused detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/95c23bd100805b1175dba986e995807e8f39b2b2\"\u003e\u003ccode\u003e95c23bd\u003c/code\u003e\u003c/a\u003e fix unused variable detection for reassignments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/d668be0912039a2dab14f1d87a3d95a79d85a514\"\u003e\u003ccode\u003ed668be0\u003c/code\u003e\u003c/a\u003e Test that Union types do not split properly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/549429e87c19a8ee7e964469dde2426ceaae8b28\"\u003e\u003ccode\u003e549429e\u003c/code\u003e\u003c/a\u003e Implement write_type.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/fcbf94228f2d8fee99e7d2592d05f338567fee5e\"\u003e\u003ccode\u003efcbf942\u003c/code\u003e\u003c/a\u003e fix parsing of multi-line parameter descriptions in docstrings \u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1588\"\u003e#1588\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1629\"\u003e#1629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/19a2edc42423af30cd6a20cc66d1324c7d010bfc\"\u003e\u003ccode\u003e19a2edc\u003c/code\u003e\u003c/a\u003e Implement write_targs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/1bd817f78bd9a41d0febc4d9d45169175c2eeadb\"\u003e\u003ccode\u003e1bd817f\u003c/code\u003e\u003c/a\u003e Implement write_lit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/853af26db534d6d1a386ded9f9eb361fed297a6c\"\u003e\u003ccode\u003e853af26\u003c/code\u003e\u003c/a\u003e Implement write_qname\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facebook/pyrefly/compare/0.41.3...0.43.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/jorenham/optype/pull/483","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorenham%2Foptype/issues/483","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/483/packages"}},{"old_version":"0.22.4","new_version":"0.22.6","update_type":"patch","path":null,"pr_created_at":"2025-11-24T02:40:12.000Z","version_change":"0.22.4 → 0.22.6","issue":{"uuid":"3656862961","node_id":"PR_kwDODaNHaM61F88Z","number":110,"state":"closed","title":"Bump the minor-or-patch group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-08T02:24:37.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-24T02:40:12.000Z","updated_at":"2025-12-08T02:24:38.000Z","time_to_close":1208665,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-or-patch","update_count":3,"packages":[{"name":"beartype","old_version":"0.22.4","new_version":"0.22.6","repository_url":"https://github.com/beartype/beartype"},{"name":"certifi","old_version":"2025.10.5","new_version":"2025.11.12","repository_url":"https://github.com/certifi/python-certifi"},{"name":"sphinx-substitution-extensions","old_version":"2025.10.24","new_version":"2025.11.17","repository_url":"https://github.com/adamtheturtle/sphinx-substitution-extensions"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-or-patch group with 3 updates in the / directory: [beartype](https://github.com/beartype/beartype), [certifi](https://github.com/certifi/python-certifi) and [sphinx-substitution-extensions](https://github.com/adamtheturtle/sphinx-substitution-extensions).\n\nUpdates `beartype` from 0.22.4 to 0.22.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e does stuff. \u003cem\u003eUhhh.\u003c/em\u003e Wait. Why are we releasing yet another \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.x\u003c/code\u003e patch within the span of ten seconds? We were just here. We already released \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e a week ago. Wasn't that good enough!? I... I guess not. Turns out \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e support has been busted in \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e for literally years. Probably decades. Nobody cared – until somebody cared. I blame only myself despite wanting to point the finger at somebody else. Anybody else. I'll take anybody. Let's start over.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e valiantly arises from the ashes of our issue tracker like a burning phoenix on fire!!!! You can't stop this:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e stoically puts on the sunglasses so you don't have to.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/Ow-oBn2sTXoAAAAd/sonny-crockett-crockett.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eThe sky is blue and I have hair again.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Still Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a patch release that guarantees compatibility with \u003cstrong\u003ePython optimization.\u003c/strong\u003e Both the \u003ccode\u003e@beartype\u003c/code\u003e decorator and \u003ccode\u003ebeartype.claw\u003c/code\u003e import hooks now silently reduce to noops (i.e., do nothing rather than type-checking everything) when users:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePass one or more \u003ccode\u003e-O\u003c/code\u003e options to the Python interpreter (e.g., \u003ccode\u003epython -O worldshattering_app_shatters_world_accidentally.py\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSet the \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e environment variable to a positive integer (e.g., \u003ccode\u003ePYTHONOPTIMIZE=1 python worldrepairing_app_repairs_world_shattered_by_worldshattering_app.py\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://gofastmcp.com/getting-started/welcome\"\u003eFastMCP\u003c/a\u003e users \u003cem\u003ereally\u003c/em\u003e care about Python optimization. Apparently, nobody else does. Makes sense. Even \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is too slow for those speed-obsessed LLM gurus. How can this be!? It's never enough for the AI. In the relentless drive for faster query turnaround times, FastMCP is plumbing the depths of the impossible. There are always casualties on the road to progress. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e was one of those casualties. \u003cem\u003eBut no more.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a burning phoenix on fire. It's not a metaphor anymore. We're pretty sure our issue tracker is on fire. What is it now? Still \u003cstrong\u003e98 open issues\u003c/strong\u003e despite a flurry of recent issue resolutions that took our last will to code? Yup. 98 open issues. My... my gods. GitHub. Does no one sleep around here? :face_exhaling:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e + \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e: \u003cem\u003ebecause you're too tired to even run \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e anymore.\u003c/em\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/beartype/beartype/commit/876591c0f3f89dc214cea7ce6f73873a6f7f6498\"\u003e\u003ccode\u003e876591c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.6: Gradio, They Said. It'll Be Easy, They Said.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/1f57def01dc623e775d13c2b7730c83df9df1981\"\u003e\u003ccode\u003e1f57def\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isgeneratorfunction()\u003c/code\u003e mimicry x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ae520e9f22fcc03b9aab67928d9d4c2f320e7490\"\u003e\u003ccode\u003eae520e9\u003c/code\u003e\u003c/a\u003e \u003ccode\u003einspect.isgeneratorfunction()\u003c/code\u003e mimicry x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/aa872c5194030a28fdf957676bcba815ae9e785b\"\u003e\u003ccode\u003eaa872c5\u003c/code\u003e\u003c/a\u003e PyPy resurrection x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/43856587c7b5aee69891a5dbbd3522d9bc4b0048\"\u003e\u003ccode\u003e4385658\u003c/code\u003e\u003c/a\u003e \u003ccode\u003edocutils.core.publish_parts()\u003c/code\u003e \u0026gt;= 0.22.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/de34bacd24102dc9196e59d84e5874cca2e153c9\"\u003e\u003ccode\u003ede34bac\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.6\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ec7400f6336a0b28cbcc3036e26871802b333f7b\"\u003e\u003ccode\u003eec7400f\u003c/code\u003e\u003c/a\u003e Beartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d63933565d3432dc00db489c3289d3c20199a894\"\u003e\u003ccode\u003ed639335\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ebeartype.claw\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e114bd107cb233191aaa94694ac648736fc4e258\"\u003e\u003ccode\u003ee114bd1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@beartype(conf=...)\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/2a29e8ed3091326dbc2d0390fdece7fe8a1a7d75\"\u003e\u003ccode\u003e2a29e8e\u003c/code\u003e\u003c/a\u003e Continuous integration (CI) badge.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.4...v0.22.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.10.5 to 2025.11.12\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37ea150bee10958559f804f128de2fdd48e1ed45\"\u003e\u003ccode\u003e37ea150\u003c/code\u003e\u003c/a\u003e 2025.11.12 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2fa50bb698145e2401e17b23f6969d3952a6f7c1\"\u003e\u003ccode\u003e2fa50bb\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.2 to 5.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/6cadb5304715523e57ea425f833aa3495a4e01e4\"\u003e\u003ccode\u003e6cadb53\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.10.05...2025.11.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-substitution-extensions` from 2025.10.24 to 2025.11.17\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/releases\"\u003esphinx-substitution-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2025.11.17\u003c/h2\u003e\n\u003ch3\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/compare/2025.10.24...2025.11.17\"\u003e2025.11.17\u003c/a\u003e (2025-11-17)\u003c/h3\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/adamtheturtle/sphinx-substitution-extensions/blob/main/CHANGELOG.rst\"\u003esphinx-substitution-extensions's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2025.11.17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGive version in extension metadata.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eliteralinclude\u003c/code\u003e directive now supports the following options:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e:content-substitutions:\u003c/code\u003e - Performs substitutions on the included file content.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e:path-substitutions:\u003c/code\u003e - Performs substitutions on the file path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eimage\u003c/code\u003e directive now supports the following option:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e:path-substitutions:\u003c/code\u003e - Performs substitutions on the image file path.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003esubstitutions_default_enabled\u003c/code\u003e configuration option to enable substitutions by default.\nWhen set to \u003ccode\u003eTrue\u003c/code\u003e in \u003ccode\u003econf.py\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003ecode-block\u003c/code\u003e directives without requiring the \u003ccode\u003e:substitutions:\u003c/code\u003e flag.\nUse the \u003ccode\u003e:nosubstitutions:\u003c/code\u003e flag on individual code blocks to disable substitutions when the default is enabled.\u003c/li\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003eliteralinclude\u003c/code\u003e directives (both content and path) without requiring the \u003ccode\u003e:content-substitutions:\u003c/code\u003e or \u003ccode\u003e:path-substitutions:\u003c/code\u003e flags.\nUse the \u003ccode\u003e:nocontent-substitutions:\u003c/code\u003e or \u003ccode\u003e:nopath-substitutions:\u003c/code\u003e flags on individual literalinclude directives to disable substitutions when the default is enabled.\u003c/li\u003e\n\u003cli\u003eSubstitutions are applied to all \u003ccode\u003eimage\u003c/code\u003e directives (path) without requiring the \u003ccode\u003e:path-substitutions:\u003c/code\u003e flag.\nUse the \u003ccode\u003e:nopath-substitutions:\u003c/code\u003e flag on individual image directives to disable substitutions when the default is enabled.\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/adamtheturtle/sphinx-substitution-extensions/commit/a8f37466b596bdeee1130bb92d4dbaec3cd39457\"\u003e\u003ccode\u003ea8f3746\u003c/code\u003e\u003c/a\u003e Bump CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/2ceca0f4864c83cacae596efd85b207d47bb5cfe\"\u003e\u003ccode\u003e2ceca0f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1264\"\u003e#1264\u003c/a\u003e from adamtheturtle/fix-md-sample\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/3e26f1f7887350ede868cf5e8db3011779d515ac\"\u003e\u003ccode\u003e3e26f1f\u003c/code\u003e\u003c/a\u003e Add Markdown examples for new directive support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/549be9718849f1efb59dd586eb7b58ef6b5a9c28\"\u003e\u003ccode\u003e549be97\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1263\"\u003e#1263\u003c/a\u003e from adamtheturtle/image-subst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/0b675f88e89776501aea981be450fe4d0839eb4f\"\u003e\u003ccode\u003e0b675f8\u003c/code\u003e\u003c/a\u003e Remove some comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/0debe432e4bbf3e64c563936c21bd0a42a44b368\"\u003e\u003ccode\u003e0debe43\u003c/code\u003e\u003c/a\u003e Fix mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/b74929af0f44cde1060499f4ec210c7982b2aa07\"\u003e\u003ccode\u003eb74929a\u003c/code\u003e\u003c/a\u003e Fix pyright and use more useful sample image\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/ebdd07e39ae24615905a5286d10d4292c80cecbd\"\u003e\u003ccode\u003eebdd07e\u003c/code\u003e\u003c/a\u003e Add images to the samples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/fc80e883c505628ef7130fb62592acdb44bb21c5\"\u003e\u003ccode\u003efc80e88\u003c/code\u003e\u003c/a\u003e Add path substitutions for images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/commit/739cca0683e995e553678356ed77a5d8d2bdd5a4\"\u003e\u003ccode\u003e739cca0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/adamtheturtle/sphinx-substitution-extensions/issues/1262\"\u003e#1262\u003c/a\u003e from adamtheturtle/add-default-substitutions-config\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/adamtheturtle/sphinx-substitution-extensions/compare/2025.10.24...2025.11.17\"\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/FAIRDataTeam/FAIRDataPoint-Docs/pull/110","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FAIRDataTeam%2FFAIRDataPoint-Docs/issues/110","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/110/packages"}},{"old_version":"0.22.2","new_version":"0.22.5","update_type":"patch","path":null,"pr_created_at":"2025-11-10T18:43:59.000Z","version_change":"0.22.2 → 0.22.5","issue":{"uuid":"3609251578","node_id":"PR_kwDOP9frXc6ymPXl","number":37,"state":"open","title":"deps(deps): bump the runtime group across 1 directory with 6 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-10T18:43:59.000Z","updated_at":"2025-11-10T18:44:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"runtime","update_count":6,"packages":[{"name":"typer","old_version":"0.19.2","new_version":"0.20.0","repository_url":"https://github.com/fastapi/typer"},{"name":"beartype","old_version":"0.22.2","new_version":"0.22.5","repository_url":"https://github.com/beartype/beartype"},{"name":"coverage","old_version":"7.10.7","new_version":"7.11.3","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pymarkdownlnt","old_version":"0.9.32","new_version":"0.9.33","repository_url":"https://github.com/jackdewinter/pymarkdown"},{"name":"ipython","old_version":"9.6.0","new_version":"9.7.0","repository_url":"https://github.com/ipython/ipython"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"}],"path":null,"ecosystem":"pip"},"body":"Bumps the runtime group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [typer](https://github.com/fastapi/typer) | `0.19.2` | `0.20.0` |\n| [beartype](https://github.com/beartype/beartype) | `0.22.2` | `0.22.5` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.7` | `7.11.3` |\n| [pymarkdownlnt](https://github.com/jackdewinter/pymarkdown) | `0.9.32` | `0.9.33` |\n| [ipython](https://github.com/ipython/ipython) | `9.6.0` | `9.7.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n\n\nUpdates `typer` from 0.19.2 to 0.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.20.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Enable command suggestions on typo by default. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1371\"\u003e#1371\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Add support for Python 3.14. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1372\"\u003e#1372\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add nightly workflow to run tests against CPython main branch. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1374\"\u003e#1374\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.21 to 9.6.22. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1377\"\u003e#1377\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Configure reminder for \u003ccode\u003ewaiting\u003c/code\u003e label in \u003ccode\u003eissue-manager\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1378\"\u003e#1378\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.3 to 0.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1368\"\u003e#1368\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1376\"\u003e#1376\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-macros-plugin from 1.3.9 to 1.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1354\"\u003e#1354\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.20 to 9.6.21. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1360\"\u003e#1360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.4.1 to 1.11.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/957\"\u003e#957\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 6 to 7. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1369\"\u003e#1369\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.2 to 0.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1366\"\u003e#1366\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1367\"\u003e#1367\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump tiangolo/issue-manager from 0.5.1 to 0.6.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1361\"\u003e#1361\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.1 to 0.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1357\"\u003e#1357\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1358\"\u003e#1358\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update docs previews comment, single comment, add failure status. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1359\"\u003e#1359\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.20.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Enable command suggestions on typo by default. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1371\"\u003e#1371\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Add support for Python 3.14. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1372\"\u003e#1372\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👷 Add nightly workflow to run tests against CPython main branch. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1374\"\u003e#1374\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.21 to 9.6.22. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1377\"\u003e#1377\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Configure reminder for \u003ccode\u003ewaiting\u003c/code\u003e label in \u003ccode\u003eissue-manager\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1378\"\u003e#1378\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.3 to 0.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1368\"\u003e#1368\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1376\"\u003e#1376\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-macros-plugin from 1.3.9 to 1.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1354\"\u003e#1354\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.20 to 9.6.21. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1360\"\u003e#1360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.4.1 to 1.11.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/957\"\u003e#957\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 6 to 7. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1369\"\u003e#1369\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.2 to 0.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1366\"\u003e#1366\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1367\"\u003e#1367\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump tiangolo/issue-manager from 0.5.1 to 0.6.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1361\"\u003e#1361\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.13.1 to 0.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1357\"\u003e#1357\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1358\"\u003e#1358\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update docs previews comment, single comment, add failure status. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1359\"\u003e#1359\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/1b74bfe2c6e9e7d7f42dfddff422599d9ca1e962\"\u003e\u003ccode\u003e1b74bfe\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.20.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/e9ee0e71d7c90476d0881f53692c967ef58d290c\"\u003e\u003ccode\u003ee9ee0e7\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/f6718b8834a14b8286d39128696c9a0ea8dce918\"\u003e\u003ccode\u003ef6718b8\u003c/code\u003e\u003c/a\u003e ✨ Enable command suggestions on typo by default (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1371\"\u003e#1371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/ffbaed50f96fcea5bffa1c59b97cd222ac0f8b95\"\u003e\u003ccode\u003effbaed5\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/9e4764d6fa7ae873a2d5ac50a07968eebb1c9518\"\u003e\u003ccode\u003e9e4764d\u003c/code\u003e\u003c/a\u003e ⬆️ Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1372\"\u003e#1372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/a06eb77ff4d6311c9f7385c18a2203caf132580b\"\u003e\u003ccode\u003ea06eb77\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/6cd1a9e793ec2154f291dda421b02648a96ffeb9\"\u003e\u003ccode\u003e6cd1a9e\u003c/code\u003e\u003c/a\u003e 👷 Add nightly workflow to run tests against CPython main branch (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1374\"\u003e#1374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/9f38ada7bd30d33d4ebed7a32c429c70ac4d1ff8\"\u003e\u003ccode\u003e9f38ada\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/e0ca37720ada8daaa97f899df0174a77d9b3d0bc\"\u003e\u003ccode\u003ee0ca377\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.6.21 to 9.6.22 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1377\"\u003e#1377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/dc2fd89ab9d2cddb0fa44612deea981216623397\"\u003e\u003ccode\u003edc2fd89\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.19.2...0.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beartype` from 0.22.2 to 0.22.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e does stuff. \u003cem\u003eUhhh.\u003c/em\u003e Wait. Why are we releasing yet another \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.x\u003c/code\u003e patch within the span of ten seconds? We were just here. We already released \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e a week ago. Wasn't that good enough!? I... I guess not. Turns out \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e support has been busted in \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e for literally years. Probably decades. Nobody cared – until somebody cared. I blame only myself despite wanting to point the finger at somebody else. Anybody else. I'll take anybody. Let's start over.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e valiantly arises from the ashes of our issue tracker like a burning phoenix on fire!!!! You can't stop this:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e stoically puts on the sunglasses so you don't have to.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/Ow-oBn2sTXoAAAAd/sonny-crockett-crockett.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eThe sky is blue and I have hair again.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Still Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a patch release that guarantees compatibility with \u003cstrong\u003ePython optimization.\u003c/strong\u003e Both the \u003ccode\u003e@beartype\u003c/code\u003e decorator and \u003ccode\u003ebeartype.claw\u003c/code\u003e import hooks now silently reduce to noops (i.e., do nothing rather than type-checking everything) when users:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePass one or more \u003ccode\u003e-O\u003c/code\u003e options to the Python interpreter (e.g., \u003ccode\u003epython -O worldshattering_app_shatters_world_accidentally.py\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSet the \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e environment variable to a positive integer (e.g., \u003ccode\u003ePYTHONOPTIMIZE=1 python worldrepairing_app_repairs_world_shattered_by_worldshattering_app.py\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://gofastmcp.com/getting-started/welcome\"\u003eFastMCP\u003c/a\u003e users \u003cem\u003ereally\u003c/em\u003e care about Python optimization. Apparently, nobody else does. Makes sense. Even \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is too slow for those speed-obsessed LLM gurus. How can this be!? It's never enough for the AI. In the relentless drive for faster query turnaround times, FastMCP is plumbing the depths of the impossible. There are always casualties on the road to progress. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e was one of those casualties. \u003cem\u003eBut no more.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a burning phoenix on fire. It's not a metaphor anymore. We're pretty sure our issue tracker is on fire. What is it now? Still \u003cstrong\u003e98 open issues\u003c/strong\u003e despite a flurry of recent issue resolutions that took our last will to code? Yup. 98 open issues. My... my gods. GitHub. Does no one sleep around here? :face_exhaling:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e + \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e: \u003cem\u003ebecause you're too tired to even run \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e anymore.\u003c/em\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/beartype/beartype/commit/ec7400f6336a0b28cbcc3036e26871802b333f7b\"\u003e\u003ccode\u003eec7400f\u003c/code\u003e\u003c/a\u003e Beartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d63933565d3432dc00db489c3289d3c20199a894\"\u003e\u003ccode\u003ed639335\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ebeartype.claw\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e114bd107cb233191aaa94694ac648736fc4e258\"\u003e\u003ccode\u003ee114bd1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@beartype(conf=...)\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/2a29e8ed3091326dbc2d0390fdece7fe8a1a7d75\"\u003e\u003ccode\u003e2a29e8e\u003c/code\u003e\u003c/a\u003e Continuous integration (CI) badge.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ab9a65b5ea82c2672c1db5232a79565e216f4887\"\u003e\u003ccode\u003eab9a65b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003epip\u003c/code\u003e -\u0026gt; \u003ccode\u003euv\u003c/code\u003e code review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/aa5f097fc08d86017f7ffd8381861cd79905fd4d\"\u003e\u003ccode\u003eaa5f097\u003c/code\u003e\u003c/a\u003e snatching away the low hanging fruits from papa bear (UV rocks) (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/57f3de39a4dd84421b80e5fb47aa03ef7f4c45de\"\u003e\u003ccode\u003e57f3de3\u003c/code\u003e\u003c/a\u003e \u003ccode\u003etyping.TypeAliasType\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/4e3db9526b1a23f6b17737f7779a920ac7188e05\"\u003e\u003ccode\u003e4e3db95\u003c/code\u003e\u003c/a\u003e Azure-compliant \u0026quot;beartype.claw\u0026quot; handling x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c293bdd49bba574b7403137d6efdfceee7a76fc6\"\u003e\u003ccode\u003ec293bdd\u003c/code\u003e\u003c/a\u003e GitHub Actions macOS runner disabled x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/0faf2f0b2fb1eefb28eb5f013f88e73be7ffcda3\"\u003e\u003ccode\u003e0faf2f0\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.5\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.2...v0.22.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.7 to 7.11.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.11.3 — 2025-11-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the 7.11.1 changes meant that conflicts between a requested measurement\ncore and other settings would raise an error. This was a breaking change from\nprevious behavior, as reported in \u003ccode\u003eissue 2076\u003c/code\u003e_ and \u003ccode\u003eissue 2078\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eThe previous behavior has been restored: when the requested core conflicts\nwith other settings, another core is used instead, and a warning is issued.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFor contributors: the repo has moved from Ned's \u003ccode\u003enedbat GitHub account\u003c/code\u003e_ to\nthe \u003ccode\u003ecoveragepy GitHub organization\u003c/code\u003e_. The default branch has changed from\nmaster to main.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2076: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2076\"\u003ecoveragepy/coveragepy#2076\u003c/a\u003e\n.. _issue 2078: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2078\"\u003ecoveragepy/coveragepy#2078\u003c/a\u003e\n.. _nedbat GitHub account: \u003ca href=\"https://github.com/nedbat\"\u003ehttps://github.com/nedbat\u003c/a\u003e\n.. _coveragepy GitHub organization: \u003ca href=\"https://github.com/coveragepy\"\u003ehttps://github.com/coveragepy\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-11-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.11.2 — 2025-11-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: using the \u0026quot;sysmon\u0026quot; measurement core in 7.11.1, if Python code was\nclaimed to come from a non-Python file, a \u003ccode\u003eNotPython\u003c/code\u003e exception could be\nraised. This could happen for example with Jinja templates compiled to\nPython, as reported in \u003ccode\u003eissue 2077\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDoc: corrected the first entry in the 7.11.1 changelog.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2077: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2077\"\u003ecoveragepy/coveragepy#2077\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-11-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.11.1 — 2025-11-07\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: some chanages to details of how the measurement core is chosen, and how\nconflicting settings are handled. The \u0026quot;sysmon\u0026quot; core cannot be used with some\nconurrency settings, with dynamic context, and in Python 3.12/3.13, with\nbranch measurement.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf the core is not specified and defaults to \u0026quot;sysmon\u0026quot; (Python 3.14+), but\nother settings conflict with sysmon, then the \u0026quot;ctrace\u0026quot; core will be used\ninstead with no warning. For concurrency conflicts, this used to produce an\nerror, as described in \u003ccode\u003eissue 2064\u003c/code\u003e_.\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/coveragepy/coveragepy/commit/8bb1230de21cd8e3ffd4f7577d93b2406e2b8f9c\"\u003e\u003ccode\u003e8bb1230\u003c/code\u003e\u003c/a\u003e docs: remove duplicate entry in the changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/06c493cdfe0785fc67d538ed348d2262159a7ed5\"\u003e\u003ccode\u003e06c493c\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.11.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/0823a70f28111290cbe5e56a95c860f5a3aa30f1\"\u003e\u003ccode\u003e0823a70\u003c/code\u003e\u003c/a\u003e docs: prep for 7.11.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/843479261fd9cb10ab739f50406a36ed4024ec92\"\u003e\u003ccode\u003e8434792\u003c/code\u003e\u003c/a\u003e fix: sysmon conflicts no longer cause errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1f211841cfe5756b322301dcca446e5398f0d8ea\"\u003e\u003ccode\u003e1f21184\u003c/code\u003e\u003c/a\u003e chore: bump docker/setup-qemu-action in the action-dependencies group (\u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2080\"\u003e#2080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/bd61620d805ec5d178722ec9aae5466b7514f56f\"\u003e\u003ccode\u003ebd61620\u003c/code\u003e\u003c/a\u003e docs: django_coverage_plugin moved\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/1bd73f1aa418804f78f4c83e96c9d675339c50b4\"\u003e\u003ccode\u003e1bd73f1\u003c/code\u003e\u003c/a\u003e build: nedbat/coverage-reports moved to coveragepy/metacov-reports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/b54131fd090613b5f251342d9e7ee356026bf8b8\"\u003e\u003ccode\u003eb54131f\u003c/code\u003e\u003c/a\u003e docs: moved to coveragepy, master-\u0026gt;main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/f2d740fdb856dfae8aff4634ece15e436f7d9e9a\"\u003e\u003ccode\u003ef2d740f\u003c/code\u003e\u003c/a\u003e build: change more github urls to the coveragepy org\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/776f313f5415bc95ea736f6486634c3f9d0b96f4\"\u003e\u003ccode\u003e776f313\u003c/code\u003e\u003c/a\u003e docs: issue and pr references moved to coveragepy org\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.10.7...7.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymarkdownlnt` from 0.9.32 to 0.9.33\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jackdewinter/pymarkdown/releases\"\u003epymarkdownlnt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.9.33 - 2025-10-22\u003c/h2\u003e\n\u003ch3\u003eNotes\u003c/h3\u003e\n\u003cp\u003eThis release was a long time in coming, mostly because of things that are not\nimmediately obvious.  Our team took some time to look and experiment with some\nother Python tools, with the aim of reducing the test count for the project\nwithout sacrificing coverage.  In addition, we have started to look at the\nperformance of the project, and how to best accomplish those improvements. Through\nthe end of the year, we have concrete plans to address any new issues, reduce the\ntest count while maintaining quality, finishing \u003ca href=\"https://redirect.github.com/jackdewinter/pymarkdown/issues/1468\"\u003eIssue 1468\u003c/a\u003e,\nand working on performance enhancements.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNone\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/jackdewinter/pymarkdown/issues/1468\"\u003eIssue 1468\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003estarted effort to harmonize the LRD and Table tests\u003c/li\u003e\n\u003cli\u003emapped out level 0 and level 1 container tests for LRDs, adding extra tests\nwhere necessary\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNone\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jackdewinter/pymarkdown/commit/0b4ac197f67f6ed75e27a10fad70ddc8014cb2e2\"\u003e\u003ccode\u003e0b4ac19\u003c/code\u003e\u003c/a\u003e Issue 1468 (\u003ca href=\"https://redirect.github.com/jackdewinter/pymarkdown/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jackdewinter/pymarkdown/compare/v0.9.32...v0.9.33\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ipython` from 9.6.0 to 9.7.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/4d6a64ace3fc7385c9d8b6811ffe965f27dd0a70\"\u003e\u003ccode\u003e4d6a64a\u003c/code\u003e\u003c/a\u003e release 9.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/6dd0bf2543f477281142d660028c93a22e9e606d\"\u003e\u003ccode\u003e6dd0bf2\u003c/code\u003e\u003c/a\u003e create publish action on GH (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15061\"\u003e#15061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/b805f6da5b6106a64599cab0c1de529556d7b944\"\u003e\u003ccode\u003eb805f6d\u003c/code\u003e\u003c/a\u003e create publish script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/d4b10832f548ca8978f482d9ce9a1ea3ec6a68ac\"\u003e\u003ccode\u003ed4b1083\u003c/code\u003e\u003c/a\u003e TST: add systematic backward compatibility checks against oldest supported ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/a7d5d2c7df18a9503f9c995e9e1cdd9b1fbe5706\"\u003e\u003ccode\u003ea7d5d2c\u003c/code\u003e\u003c/a\u003e DEP: bump minimal requirement on stack-data (0.0.7 -\u0026gt; 0.6.0)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/558cf9ef6851e4041fc98d222c2e50eddd64a5a2\"\u003e\u003ccode\u003e558cf9e\u003c/code\u003e\u003c/a\u003e DEP: bump minimal requirement on jedi (0.17.0 -\u0026gt; 0.18.1)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/a703cfb7b47bd38637be3eeb0bc25239acd56b25\"\u003e\u003ccode\u003ea703cfb\u003c/code\u003e\u003c/a\u003e TST: add systematic backward compatibility checks against oldest supported ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/3c94df8dd3d99c04d656aee9e6bb5da921b4c18c\"\u003e\u003ccode\u003e3c94df8\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esetuptools-scm\u003c/code\u003e to pyflyby tests (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15059\"\u003e#15059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/1019171675c172c19b3d0ee73e2b5b1ef79f8082\"\u003e\u003ccode\u003e1019171\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esetuptools-scm\u003c/code\u003e to pyflyby tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/fdbc9649113af9d4ba944d417f0e5307736f916f\"\u003e\u003ccode\u003efdbc964\u003c/code\u003e\u003c/a\u003e Move TerminalInteractiveshell.inputhook to Deprecated, from Pending. (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15053\"\u003e#15053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipython/compare/9.6.0...9.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.3.0 to 4.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/17cf8864737af2ce75c73839a0cdedc26ce50598\"\u003e\u003ccode\u003e17cf886\u003c/code\u003e\u003c/a\u003e v4.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/cb63a5cb9a1f22342d7450315cb4daffe72f6c21\"\u003e\u003ccode\u003ecb63a5c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e from br-rhrbacek/fix-cgroups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/f80801d75a429d5eafa1d87e9f88f73b108d1890\"\u003e\u003ccode\u003ef80801d\u003c/code\u003e\u003c/a\u003e Fix docker-in-docker detection for cgroups v2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/9143fc35457adb0a2d28022b1149b131c40c0490\"\u003e\u003ccode\u003e9143fc3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e from pre-commit/language-unsupported\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/725acc969a28a6bc9a7e2260f035426bc932e8da\"\u003e\u003ccode\u003e725acc9\u003c/code\u003e\u003c/a\u003e rename system and script languages to unsupported / unsupported_script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/3815e2e6d87ba644ecc19f29177184df7ee16812\"\u003e\u003ccode\u003e3815e2e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e from pre-commit/fix-stages-config-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/aa2961c122b4aa834c77e612232c154f9439c388\"\u003e\u003ccode\u003eaa2961c\u003c/code\u003e\u003c/a\u003e fix missing context in error for stages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/46297f7cd6e4f2615c3b5d50f09c6ea264679c6b\"\u003e\u003ccode\u003e46297f7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3575\"\u003e#3575\u003c/a\u003e from pre-commit/rm-python3-hooks-repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/95eec7500464500d2ca0cc13d0986000508830e5\"\u003e\u003ccode\u003e95eec75\u003c/code\u003e\u003c/a\u003e rm python3_hooks_repo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/5e4b3546f30fc9b15ed71515d979e4a644d850f6\"\u003e\u003ccode\u003e5e4b354\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3574\"\u003e#3574\u003c/a\u003e from pre-commit/rm-hook-with-spaces-test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.3.0...v4.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/steven-cutting/decree/pull/37","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/steven-cutting%2Fdecree/issues/37","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/37/packages"}},{"old_version":"0.21.0","new_version":"0.22.2","update_type":"minor","path":null,"pr_created_at":"2025-11-03T10:08:42.000Z","version_change":"0.21.0 → 0.22.2","issue":{"uuid":"3581378509","node_id":"PR_kwDOHreUVM6xJxMR","number":319,"state":"closed","title":"Bump beartype from 0.21.0 to 0.22.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-11-03T10:32:35.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-03T10:08:42.000Z","updated_at":"2025-11-03T10:32:36.000Z","time_to_close":1433,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.21.0","new_version":"0.22.2","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.21.0 to 0.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.2: Yo Dawg We Heard You Like LLM\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is proud as a cub gnawing its first salmon to announce: \u003cstrong\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e has been \u003ca href=\"https://tidelift.com/lifter/search/pypi/beartype\"\u003eTidelifted\u003c/a\u003e!\u003c/strong\u003e For our security-conscious corporate and government userbase, the best way to secure your enterprise \u003cem\u003eand\u003c/em\u003e support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is now through \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e vis-a-vis a \u003cstrong\u003e[SonarQube Advanced Security][]\u003c/strong\u003e subscription. More on that later. We now return to your regularly scheduled release party. DJ Leycec in residence. Hit those fat QA jams.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003eBeartype \u003cdel\u003e0.22.0\u003c/del\u003e \u003cdel\u003e0.22.1\u003c/del\u003e 0.22.2\u003c/strong\u003e portals into the mortal plenum with a disturbing \u0026quot;WHOOOMP!\u0026quot; As you panic, all the oxygen in the room is rapidly vacuumed into an adjacent hyperdimension. It's not \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e's safest entrance – but it's one we're all sure to remember. This is \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.2\u003c/code\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003edon't ask what happened to \u003ccode\u003e0.22.0\u003c/code\u003e. just... don't.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install --upgrade --pre beartype   # beartype casts magic missile on the darkness\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThe central dogma of \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.2\u003c/code\u003e is \u003cstrong\u003eLLM compatibility.\u003c/strong\u003e Do you like LLM? Do you like compatibility? Then your code likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.2\u003c/code\u003e (even against your better judgement). But before the liking starts...\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/lxpfB01kWpcAAAAd/bromance-sig-curtis.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.2\u003c/code\u003e salutes you who are about to code\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife are eating well. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e's cats would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdditional financial shout-outs to \u003ca href=\"https://github.com/ilyapoz\"\u003e\u003ccode\u003e@​ilyapoz\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://github.com/Ilia\"\u003e\u003ccode\u003e@​Ilia\u003c/code\u003e\u003c/a\u003e Pozhilov), the \u003cem\u003eamazing\u003c/em\u003e former \u003ca href=\"https://yandex.com\"\u003eYandex\u003c/a\u003e code cosmonaut who graciously donated a pile of \u003ca href=\"https://en.wikipedia.org/wiki/Georgian_lari\"\u003eGeorgian lari\u003c/a\u003e to \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e this go-around. Apparently, the lari is denominated in the ლ Unicode character. What a symbol! It looks like a beautiful hat. If only the Canadian dollar was half as manly. :sob:\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and Yandex.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Yandex. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eTidelift: A Rising Tide Lifted \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e's Not-At-All-Leaky Boat\u003c/h2\u003e\n\u003cp\u003eThis release also comes courtesy \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, which very graciously pays out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, NumPy, and other stuff you probably care about. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e joining [Tidelift][] has super-positive implications for Python's broader QA community – including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNo rugpull.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is much less likely to die, disappear, or otherwise wither on the entropic vine now. Sadly, most open-source software does. Without recurring income, most open-source software never makes it to the [Tidelift][] stage. It vanishes without a trace at 5:37AM on a Monday morning, leaving your once-profitable corporate enterprise and your once-stable local government without a working QA solution. That won't happen to \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eActual security.\u003c/strong\u003e Thanks to Tidelift making me do it, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e now features an \u003ca href=\"https://github.com/beartype/beartype/blob/main/.github/SECURITY.md\"\u003eactual honest-to-Ursula \u003cstrong\u003esecurity policy\u003c/strong\u003e\u003c/a\u003e. It's boring. It's bog-standard. If we were responsible, we'd encourage you to read it. Instead, here's the \u003cstrong\u003etl;dr\u003c/strong\u003e:\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e users who discover security vulnerabilities are invited to privately disclose those vulnerabilities by submitting a \u003ca href=\"https://github.com/beartype/beartype/security/advisories/new\"\u003eGitHub-managed security vulnerability\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e will then privately resolve those vulnerabilities.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e will then publish a new stable release containing those resolutions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e will then publicly document your discovery, crediting you and your fearsome l33t skills. Seriously, they're fearsome. We're afraid. With great power comes great \u003cdel\u003eresponsibility\u003c/del\u003e QA. Somebody smart said that.\u003c/li\u003e\n\u003cli\u003eGitHub will then include these vulnerabilities in its own \u003ca href=\"https://github.com/advisories\"\u003e\u003cstrong\u003eGitHub Advisory Database\u003c/strong\u003e\u003c/a\u003e, improving everyone's security. Luckily, you are part of everyone. \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...what does that even mean?\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/klV93pLX4Q4AAAAC/edwardelric-sinking.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003ePictured: \u003cem\u003eArtistic rendition of the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e development process before Tidelift. You weren't supposed to see this.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003e!!STUFF YOU WANNA READ EVEN THOUGH ITS EXHAUSTING!!\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/beartype/beartype/commit/344167bc7fee7c86be806c65b111665442f880b8\"\u003e\u003ccode\u003e344167b\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.2\u003c/strong\u003e released.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/5fb9383bb449602ba585ce918637816726d72d09\"\u003e\u003ccode\u003e5fb9383\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.2\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/2b6b52886180678691a915f35d47801ec0ccc3a1\"\u003e\u003ccode\u003e2b6b528\u003c/code\u003e\u003c/a\u003e GitHub Actions-based release workflow permissions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/f6e781c36fc974094cbf01c3f5b11b16102ea111\"\u003e\u003ccode\u003ef6e781c\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.1\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/871beab18d68c3d76487b4122d28b267c44ed88f\"\u003e\u003ccode\u003e871beab\u003c/code\u003e\u003c/a\u003e \u0026gt; \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is proud as a cub gnawing its first salmon to announce: **\u003ca href=\"https://github.com/bearty\"\u003e\u003ccode\u003e@​bearty\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/141e3d81a7d10a8050535be0d5749f92a1d6adaf\"\u003e\u003ccode\u003e141e3d8\u003c/code\u003e\u003c/a\u003e Decorator-hostile decorator QA x 5.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/a6ed0aec0f493078810dd7fd38523e1541ede84a\"\u003e\u003ccode\u003ea6ed0ae\u003c/code\u003e\u003c/a\u003e Official \u003ccode\u003epandera.polars\u003c/code\u003e support.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/8e5de8eb94682dbd0fbd51a71ddda93f4bbf93f6\"\u003e\u003ccode\u003e8e5de8e\u003c/code\u003e\u003c/a\u003e Decorator-hostile decorator QA x 4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/32590b02ab9949c25a3c4c4590d22e94658201bf\"\u003e\u003ccode\u003e32590b0\u003c/code\u003e\u003c/a\u003e Decorator-hostile decorator QA x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/10aa599e0fa3674dcf994dca5a33673ef2ef6c28\"\u003e\u003ccode\u003e10aa599\u003c/code\u003e\u003c/a\u003e Decorator-hostile decorator QA x 2.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.21.0...v0.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.21.0\u0026new-version=0.22.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/spdx/ntia-conformance-checker/pull/319","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/spdx%2Fntia-conformance-checker/issues/319","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/319/packages"}},{"old_version":"0.17.0","new_version":"0.22.5","update_type":"minor","path":"/sdk/python","pr_created_at":"2025-11-01T20:01:54.000Z","version_change":"0.17.0 → 0.22.5","issue":{"uuid":"3578388488","node_id":"PR_kwDOHF08OM6xAYji","number":1143,"state":"open","title":"chore(deps): bump beartype from 0.17.0 to 0.22.5 in /sdk/python","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-01T20:01:54.000Z","updated_at":"2025-11-01T20:01:54.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"beartype","old_version":"0.17.0","new_version":"0.22.5","repository_url":"https://github.com/beartype/beartype"}],"path":"/sdk/python","ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.17.0 to 0.22.5.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e does stuff. \u003cem\u003eUhhh.\u003c/em\u003e Wait. Why are we releasing yet another \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.x\u003c/code\u003e patch within the span of ten seconds? We were just here. We already released \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e a week ago. Wasn't that good enough!? I... I guess not. Turns out \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e support has been busted in \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e for literally years. Probably decades. Nobody cared – until somebody cared. I blame only myself despite wanting to point the finger at somebody else. Anybody else. I'll take anybody. Let's start over.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e valiantly arises from the ashes of our issue tracker like a burning phoenix on fire!!!! You can't stop this:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e stoically puts on the sunglasses so you don't have to.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/Ow-oBn2sTXoAAAAd/sonny-crockett-crockett.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003e\u003cem\u003eThe sky is blue and I have hair again.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Still Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a patch release that guarantees compatibility with \u003cstrong\u003ePython optimization.\u003c/strong\u003e Both the \u003ccode\u003e@beartype\u003c/code\u003e decorator and \u003ccode\u003ebeartype.claw\u003c/code\u003e import hooks now silently reduce to noops (i.e., do nothing rather than type-checking everything) when users:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePass one or more \u003ccode\u003e-O\u003c/code\u003e options to the Python interpreter (e.g., \u003ccode\u003epython -O worldshattering_app_shatters_world_accidentally.py\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eSet the \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e environment variable to a positive integer (e.g., \u003ccode\u003ePYTHONOPTIMIZE=1 python worldrepairing_app_repairs_world_shattered_by_worldshattering_app.py\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://gofastmcp.com/getting-started/welcome\"\u003eFastMCP\u003c/a\u003e users \u003cem\u003ereally\u003c/em\u003e care about Python optimization. Apparently, nobody else does. Makes sense. Even \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e is too slow for those speed-obsessed LLM gurus. How can this be!? It's never enough for the AI. In the relentless drive for faster query turnaround times, FastMCP is plumbing the depths of the impossible. There are always casualties on the road to progress. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e was one of those casualties. \u003cem\u003eBut no more.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.5\u003c/code\u003e is a burning phoenix on fire. It's not a metaphor anymore. We're pretty sure our issue tracker is on fire. What is it now? Still \u003cstrong\u003e98 open issues\u003c/strong\u003e despite a flurry of recent issue resolutions that took our last will to code? Yup. 98 open issues. My... my gods. GitHub. Does no one sleep around here? :face_exhaling:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e + \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e: \u003cem\u003ebecause you're too tired to even run \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e anymore.\u003c/em\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/beartype/beartype/commit/ec7400f6336a0b28cbcc3036e26871802b333f7b\"\u003e\u003ccode\u003eec7400f\u003c/code\u003e\u003c/a\u003e Beartype 0.22.5: Beloved Even by \u003ccode\u003ePYTHONOPTIMIZE=1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d63933565d3432dc00db489c3289d3c20199a894\"\u003e\u003ccode\u003ed639335\u003c/code\u003e\u003c/a\u003e \u003ccode\u003ebeartype.claw\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/e114bd107cb233191aaa94694ac648736fc4e258\"\u003e\u003ccode\u003ee114bd1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@beartype(conf=...)\u003c/code\u003e + \u003ccode\u003e${PYTHONOPTIMIZE}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/2a29e8ed3091326dbc2d0390fdece7fe8a1a7d75\"\u003e\u003ccode\u003e2a29e8e\u003c/code\u003e\u003c/a\u003e Continuous integration (CI) badge.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ab9a65b5ea82c2672c1db5232a79565e216f4887\"\u003e\u003ccode\u003eab9a65b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003epip\u003c/code\u003e -\u0026gt; \u003ccode\u003euv\u003c/code\u003e code review.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/aa5f097fc08d86017f7ffd8381861cd79905fd4d\"\u003e\u003ccode\u003eaa5f097\u003c/code\u003e\u003c/a\u003e snatching away the low hanging fruits from papa bear (UV rocks) (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/57f3de39a4dd84421b80e5fb47aa03ef7f4c45de\"\u003e\u003ccode\u003e57f3de3\u003c/code\u003e\u003c/a\u003e \u003ccode\u003etyping.TypeAliasType\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/4e3db9526b1a23f6b17737f7779a920ac7188e05\"\u003e\u003ccode\u003e4e3db95\u003c/code\u003e\u003c/a\u003e Azure-compliant \u0026quot;beartype.claw\u0026quot; handling x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/c293bdd49bba574b7403137d6efdfceee7a76fc6\"\u003e\u003ccode\u003ec293bdd\u003c/code\u003e\u003c/a\u003e GitHub Actions macOS runner disabled x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/0faf2f0b2fb1eefb28eb5f013f88e73be7ffcda3\"\u003e\u003ccode\u003e0faf2f0\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.5\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.17.0...v0.22.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.17.0\u0026new-version=0.22.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dolanor/dagger/pull/1143","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dolanor%2Fdagger/issues/1143","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1143/packages"}},{"old_version":"0.18.5","new_version":"0.22.4","update_type":"minor","path":null,"pr_created_at":"2025-10-29T11:57:29.000Z","version_change":"0.18.5 → 0.22.4","issue":{"uuid":"3565628551","node_id":"PR_kwDOQLZv0s6wWhpS","number":21,"state":"closed","title":"fix(deps): bump beartype from 0.18.5 to 0.22.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-03T22:39:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-29T11:57:29.000Z","updated_at":"2025-11-03T22:39:01.000Z","time_to_close":470491,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"fix(deps)","packages":[{"name":"beartype","old_version":"0.18.5","new_version":"0.22.4","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.18.5 to 0.22.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.4: Now Less Hated by Poetry\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e catastrophically explodes all over your monitor. An oily black residue redolent of snail mucus slides off the screen, dripping with a maddening cadence into the crevices of your trusty mechanical keyboard:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e never gets tired of bug-eyed dudes punching squinty-eyed dudes. Childhood memories do not fade.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/HK-WlNloWp8AAAAd/blood-sport-jean-claude-van-damme.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eLeft: \u003cem\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e.\u003c/em\u003e Right: \u003cem\u003ePoetry and \u003ccode\u003epipenv\u003c/code\u003e together as one dude.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is a patch release that guarantees compatibility with both \u003ca href=\"https://python-poetry.org\"\u003e\u003cstrong\u003ePoetry\u003c/strong\u003e\u003c/a\u003e and \u003ca href=\"https://pipenv.pypa.io/en/latest\"\u003e\u003cstrong\u003e\u003ccode\u003epipenv\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e. Previously, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e just assumed that Poetry and \u003ccode\u003epipenv\u003c/code\u003e liked \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. What's not to like about \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, guys? Huh!? Apparently...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEverything.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e broke the assumption that everybody likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. Our prior release shipped a \u003ccode\u003epyproject.toml\u003c/code\u003e file with a PEP 440-compliant version string:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10,!=3.14rc1,!=3.14rc2\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThat syntax is valid. But Poetry and \u003ccode\u003epipenv\u003c/code\u003e didn't care. They do what they want! And they didn't want to have anything to do with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e. We disagree, but that's fair enough. Everyone has bad opinions.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e resolves these trivial incompatibilities with popular devtooling. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e also promises this will \u003cem\u003enever\u003c/em\u003e happen again. A new integration test in the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e test suite guarantees Poetry and \u003ccode\u003epipenv\u003c/code\u003e compatibility, safeguarding both your QA stack and sanity against midnight regressions at 4:52AM.\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/beartype/beartype/commit/d543d7cd24a2787790f06fa9ff57a549d7eb5784\"\u003e\u003ccode\u003ed543d7c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.4: Now Less Hated by Poetry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b25aa9b0967a576055a7a33f008050fa9014d40b\"\u003e\u003ccode\u003eb25aa9b\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/65f2d2d306881dab346f8e4b1e9dd98246dfbb2e\"\u003e\u003ccode\u003e65f2d2d\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/67dc58687d791a2f37527c394123f58086b20f2f\"\u003e\u003ccode\u003e67dc586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.4\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/97022c9ab3bbbd940fa44a3dad7f15b0874695f0\"\u003e\u003ccode\u003e97022c9\u003c/code\u003e\u003c/a\u003e Beartype 0.22.3: Yo Dawg We Heard You Like Redis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ed3092b87fcd0d89ac8ba23bb92ed8895648a928\"\u003e\u003ccode\u003eed3092b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/89a5c544920f9d15ebd9f883793b5f7eb4aaf44c\"\u003e\u003ccode\u003e89a5c54\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/991addc19a24df00451842914aaf494bd137a6d3\"\u003e\u003ccode\u003e991addc\u003c/code\u003e\u003c/a\u003e Bluesky social links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b33685cf83d5ce2999d399b4797bd6663dbb9615\"\u003e\u003ccode\u003eb33685c\u003c/code\u003e\u003c/a\u003e Bump actions/upload-pages-artifact in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d44915bcd5ffbe6ddc3e386a91428554237fdeb4\"\u003e\u003ccode\u003ed44915b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@dataclasses.dataclass\u003c/code\u003e + \u003ccode\u003eredis.Redis\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.18.5...v0.22.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.18.5\u0026new-version=0.22.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/autocode07/ulab-uiuc__research-town.f15f4c14/pull/21","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/autocode07%2Fulab-uiuc__research-town.f15f4c14/issues/21","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/21/packages"}},{"old_version":"0.21.0","new_version":"0.22.4","update_type":"minor","path":null,"pr_created_at":"2025-10-28T06:06:53.000Z","version_change":"0.21.0 → 0.22.4","issue":{"uuid":"3559970320","node_id":"PR_kwDOPP01-M6wEEGt","number":20,"state":"closed","title":"Bump beartype from 0.21.0 to 0.22.4","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-04T06:06:36.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-28T06:06:53.000Z","updated_at":"2025-11-04T06:06:38.000Z","time_to_close":604783,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"beartype","old_version":"0.21.0","new_version":"0.22.4","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.21.0 to 0.22.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.4: Now Less Hated by Poetry\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e catastrophically explodes all over your monitor. An oily black residue redolent of snail mucus slides off the screen, dripping with a maddening cadence into the crevices of your trusty mechanical keyboard:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e never gets tired of bug-eyed dudes punching squinty-eyed dudes. Childhood memories do not fade.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/HK-WlNloWp8AAAAd/blood-sport-jean-claude-van-damme.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eLeft: \u003cem\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e.\u003c/em\u003e Right: \u003cem\u003ePoetry and \u003ccode\u003epipenv\u003c/code\u003e together as one dude.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is a patch release that guarantees compatibility with both \u003ca href=\"https://python-poetry.org\"\u003e\u003cstrong\u003ePoetry\u003c/strong\u003e\u003c/a\u003e and \u003ca href=\"https://pipenv.pypa.io/en/latest\"\u003e\u003cstrong\u003e\u003ccode\u003epipenv\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e. Previously, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e just assumed that Poetry and \u003ccode\u003epipenv\u003c/code\u003e liked \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. What's not to like about \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, guys? Huh!? Apparently...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEverything.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e broke the assumption that everybody likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. Our prior release shipped a \u003ccode\u003epyproject.toml\u003c/code\u003e file with a PEP 440-compliant version string:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10,!=3.14rc1,!=3.14rc2\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThat syntax is valid. But Poetry and \u003ccode\u003epipenv\u003c/code\u003e didn't care. They do what they want! And they didn't want to have anything to do with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e. We disagree, but that's fair enough. Everyone has bad opinions.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e resolves these trivial incompatibilities with popular devtooling. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e also promises this will \u003cem\u003enever\u003c/em\u003e happen again. A new integration test in the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e test suite guarantees Poetry and \u003ccode\u003epipenv\u003c/code\u003e compatibility, safeguarding both your QA stack and sanity against midnight regressions at 4:52AM.\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/beartype/beartype/commit/d543d7cd24a2787790f06fa9ff57a549d7eb5784\"\u003e\u003ccode\u003ed543d7c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.4: Now Less Hated by Poetry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b25aa9b0967a576055a7a33f008050fa9014d40b\"\u003e\u003ccode\u003eb25aa9b\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/65f2d2d306881dab346f8e4b1e9dd98246dfbb2e\"\u003e\u003ccode\u003e65f2d2d\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/67dc58687d791a2f37527c394123f58086b20f2f\"\u003e\u003ccode\u003e67dc586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.4\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/97022c9ab3bbbd940fa44a3dad7f15b0874695f0\"\u003e\u003ccode\u003e97022c9\u003c/code\u003e\u003c/a\u003e Beartype 0.22.3: Yo Dawg We Heard You Like Redis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ed3092b87fcd0d89ac8ba23bb92ed8895648a928\"\u003e\u003ccode\u003eed3092b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/89a5c544920f9d15ebd9f883793b5f7eb4aaf44c\"\u003e\u003ccode\u003e89a5c54\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/991addc19a24df00451842914aaf494bd137a6d3\"\u003e\u003ccode\u003e991addc\u003c/code\u003e\u003c/a\u003e Bluesky social links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b33685cf83d5ce2999d399b4797bd6663dbb9615\"\u003e\u003ccode\u003eb33685c\u003c/code\u003e\u003c/a\u003e Bump actions/upload-pages-artifact in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d44915bcd5ffbe6ddc3e386a91428554237fdeb4\"\u003e\u003ccode\u003ed44915b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@dataclasses.dataclass\u003c/code\u003e + \u003ccode\u003eredis.Redis\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.21.0...v0.22.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=uv\u0026previous-version=0.21.0\u0026new-version=0.22.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/l0s/llm/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/l0s%2Fllm/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"}},{"old_version":"0.19.0","new_version":"0.22.4","update_type":"minor","path":null,"pr_created_at":"2025-10-27T22:50:14.000Z","version_change":"0.19.0 → 0.22.4","issue":{"uuid":"3558939555","node_id":"PR_kwDOL2Bi786wAkC9","number":1369,"state":"closed","title":"fix(deps): bump beartype from 0.19.0 to 0.22.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-03T22:17:32.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-27T22:50:14.000Z","updated_at":"2025-11-03T22:17:34.000Z","time_to_close":602838,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"fix(deps)","packages":[{"name":"beartype","old_version":"0.19.0","new_version":"0.22.4","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.19.0 to 0.22.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.4: Now Less Hated by Poetry\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e catastrophically explodes all over your monitor. An oily black residue redolent of snail mucus slides off the screen, dripping with a maddening cadence into the crevices of your trusty mechanical keyboard:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e never gets tired of bug-eyed dudes punching squinty-eyed dudes. Childhood memories do not fade.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/HK-WlNloWp8AAAAd/blood-sport-jean-claude-van-damme.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eLeft: \u003cem\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e.\u003c/em\u003e Right: \u003cem\u003ePoetry and \u003ccode\u003epipenv\u003c/code\u003e together as one dude.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is a patch release that guarantees compatibility with both \u003ca href=\"https://python-poetry.org\"\u003e\u003cstrong\u003ePoetry\u003c/strong\u003e\u003c/a\u003e and \u003ca href=\"https://pipenv.pypa.io/en/latest\"\u003e\u003cstrong\u003e\u003ccode\u003epipenv\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e. Previously, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e just assumed that Poetry and \u003ccode\u003epipenv\u003c/code\u003e liked \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. What's not to like about \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, guys? Huh!? Apparently...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEverything.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e broke the assumption that everybody likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. Our prior release shipped a \u003ccode\u003epyproject.toml\u003c/code\u003e file with a PEP 440-compliant version string:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10,!=3.14rc1,!=3.14rc2\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThat syntax is valid. But Poetry and \u003ccode\u003epipenv\u003c/code\u003e didn't care. They do what they want! And they didn't want to have anything to do with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e. We disagree, but that's fair enough. Everyone has bad opinions.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e resolves these trivial incompatibilities with popular devtooling. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e also promises this will \u003cem\u003enever\u003c/em\u003e happen again. A new integration test in the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e test suite guarantees Poetry and \u003ccode\u003epipenv\u003c/code\u003e compatibility, safeguarding both your QA stack and sanity against midnight regressions at 4:52AM.\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/beartype/beartype/commit/d543d7cd24a2787790f06fa9ff57a549d7eb5784\"\u003e\u003ccode\u003ed543d7c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.4: Now Less Hated by Poetry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b25aa9b0967a576055a7a33f008050fa9014d40b\"\u003e\u003ccode\u003eb25aa9b\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/65f2d2d306881dab346f8e4b1e9dd98246dfbb2e\"\u003e\u003ccode\u003e65f2d2d\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/67dc58687d791a2f37527c394123f58086b20f2f\"\u003e\u003ccode\u003e67dc586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.4\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/97022c9ab3bbbd940fa44a3dad7f15b0874695f0\"\u003e\u003ccode\u003e97022c9\u003c/code\u003e\u003c/a\u003e Beartype 0.22.3: Yo Dawg We Heard You Like Redis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ed3092b87fcd0d89ac8ba23bb92ed8895648a928\"\u003e\u003ccode\u003eed3092b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/89a5c544920f9d15ebd9f883793b5f7eb4aaf44c\"\u003e\u003ccode\u003e89a5c54\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/991addc19a24df00451842914aaf494bd137a6d3\"\u003e\u003ccode\u003e991addc\u003c/code\u003e\u003c/a\u003e Bluesky social links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b33685cf83d5ce2999d399b4797bd6663dbb9615\"\u003e\u003ccode\u003eb33685c\u003c/code\u003e\u003c/a\u003e Bump actions/upload-pages-artifact in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d44915bcd5ffbe6ddc3e386a91428554237fdeb4\"\u003e\u003ccode\u003ed44915b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@dataclasses.dataclass\u003c/code\u003e + \u003ccode\u003eredis.Redis\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.19.0...v0.22.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.19.0\u0026new-version=0.22.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ulab-uiuc/research-town/pull/1369","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulab-uiuc%2Fresearch-town/issues/1369","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1369/packages"}},{"old_version":"0.22.2","new_version":"0.22.4","update_type":"patch","path":null,"pr_created_at":"2025-10-27T19:23:40.000Z","version_change":"0.22.2 → 0.22.4","issue":{"uuid":"3558273126","node_id":"PR_kwDOLWRIZM6v-QIe","number":473,"state":"open","title":"Bump the actions group with 4 updates","user":"dependabot[bot]","labels":["topic: dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-27T19:23:40.000Z","updated_at":"2025-10-27T20:01:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"actions","update_count":4,"packages":[{"name":"ruff","old_version":"0.14.1","new_version":"0.14.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"beartype","old_version":"0.22.2","new_version":"0.22.4","repository_url":"https://github.com/beartype/beartype"},{"name":"basedpyright","old_version":"1.31.7","new_version":"1.32.1","repository_url":"https://github.com/detachhead/basedpyright"},{"name":"pyrefly","old_version":"0.38.0","new_version":"0.39.0","repository_url":"https://github.com/facebook/pyrefly"}],"path":null,"ecosystem":"pip"},"body":"Bumps the actions group with 4 updates: [ruff](https://github.com/astral-sh/ruff), [beartype](https://github.com/beartype/beartype), [basedpyright](https://github.com/detachhead/basedpyright) and [pyrefly](https://github.com/facebook/pyrefly).\n\nUpdates `ruff` from 0.14.1 to 0.14.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-10-23.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-gettext\u003c/code\u003e] Resolve qualified names and built-in bindings (\u003ccode\u003eINT001\u003c/code\u003e, \u003ccode\u003eINT002\u003c/code\u003e, \u003ccode\u003eINT003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19045\"\u003e#19045\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid reusing nested, interpolated quotes before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20930\"\u003e#20930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCatch syntax errors in nested interpolations before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20949\"\u003e#20949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Handle ellipsis defaults in \u003ccode\u003eFAST002\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20810\"\u003e#20810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Skip \u003ccode\u003eSIM911\u003c/code\u003e when unknown arguments are present (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20697\"\u003e#20697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Always parenthesize assignment expressions in fix for \u003ccode\u003ef-string\u003c/code\u003e (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21003\"\u003e#21003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP032\u003c/code\u003e conversion for decimal ints with underscores (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21022\"\u003e#21022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Skip autofix for keyword and \u003ccode\u003e__debug__\u003c/code\u003e path params (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20960\"\u003e#20960\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Skip \u003ccode\u003eB905\u003c/code\u003e and \u003ccode\u003eB912\u003c/code\u003e for fewer than two iterables and no starred arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20998\"\u003e#20998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use \u003ccode\u003eDiagnosticTag\u003c/code\u003e for more \u003ccode\u003epyflakes\u003c/code\u003e and \u003ccode\u003epandas\u003c/code\u003e rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20801\"\u003e#20801\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove JSON output from \u003ccode\u003eruff rule\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20168\"\u003e#20168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd source to testimonial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20971\"\u003e#20971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument when a rule was added (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21035\"\u003e#21035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[syntax-errors] Name is parameter and global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20426\"\u003e#20426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Alternative \u003ccode\u003ematch\u003c/code\u003e patterns bind different names (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20682\"\u003e#20682\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShalokShalom\"\u003e\u003ccode\u003e@​ShalokShalom\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robsdedude\"\u003e\u003ccode\u003e@​robsdedude\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LoicRiegel\"\u003e\u003ccode\u003e@​LoicRiegel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.14.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.14.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-10-23.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-gettext\u003c/code\u003e] Resolve qualified names and built-in bindings (\u003ccode\u003eINT001\u003c/code\u003e, \u003ccode\u003eINT002\u003c/code\u003e, \u003ccode\u003eINT003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19045\"\u003e#19045\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid reusing nested, interpolated quotes before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20930\"\u003e#20930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCatch syntax errors in nested interpolations before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20949\"\u003e#20949\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Handle ellipsis defaults in \u003ccode\u003eFAST002\u003c/code\u003e autofix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20810\"\u003e#20810\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Skip \u003ccode\u003eSIM911\u003c/code\u003e when unknown arguments are present (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20697\"\u003e#20697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Always parenthesize assignment expressions in fix for \u003ccode\u003ef-string\u003c/code\u003e (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21003\"\u003e#21003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP032\u003c/code\u003e conversion for decimal ints with underscores (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21022\"\u003e#21022\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Skip autofix for keyword and \u003ccode\u003e__debug__\u003c/code\u003e path params (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20960\"\u003e#20960\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Skip \u003ccode\u003eB905\u003c/code\u003e and \u003ccode\u003eB912\u003c/code\u003e for fewer than two iterables and no starred arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20998\"\u003e#20998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use \u003ccode\u003eDiagnosticTag\u003c/code\u003e for more \u003ccode\u003epyflakes\u003c/code\u003e and \u003ccode\u003epandas\u003c/code\u003e rules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20801\"\u003e#20801\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove JSON output from \u003ccode\u003eruff rule\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20168\"\u003e#20168\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd source to testimonial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20971\"\u003e#20971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument when a rule was added (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/21035\"\u003e#21035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[syntax-errors] Name is parameter and global (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20426\"\u003e#20426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[syntax-errors] Alternative \u003ccode\u003ematch\u003c/code\u003e patterns bind different names (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20682\"\u003e#20682\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShalokShalom\"\u003e\u003ccode\u003e@​ShalokShalom\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/robsdedude\"\u003e\u003ccode\u003e@​robsdedude\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LoicRiegel\"\u003e\u003ccode\u003e@​LoicRiegel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/11happy\"\u003e\u003ccode\u003e@​11happy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/83a3bc4ee94de552d5cec9a3146aff00dade6903\"\u003e\u003ccode\u003e83a3bc4\u003c/code\u003e\u003c/a\u003e Bump 0.14.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21051\"\u003e#21051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/155fd603e8fda8083155ce859bf59b6fdb5935a5\"\u003e\u003ccode\u003e155fd60\u003c/code\u003e\u003c/a\u003e Document when a rule was added (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21035\"\u003e#21035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/48f17718770aa0f503c2d5dcd7c757b6d6a5f9b0\"\u003e\u003ccode\u003e48f1771\u003c/code\u003e\u003c/a\u003e [ty] fix infinite recursion with generic type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20969\"\u003e#20969\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4ca74593dd669b75f6d9cae5de1af4c0ee395e2a\"\u003e\u003ccode\u003e4ca7459\u003c/code\u003e\u003c/a\u003e [ty] Consider \u003ccode\u003etype_check_only\u003c/code\u003e when ranking completions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20910\"\u003e#20910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dab3d4e917ae41cce338cc5025e3f39aca38570a\"\u003e\u003ccode\u003edab3d4e\u003c/code\u003e\u003c/a\u003e [ty] Improve \u003ccode\u003einvalid-argument-type\u003c/code\u003e diagnostics where a union type was provi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/01695513ce33f1f1615309323ba145c42f4720c1\"\u003e\u003ccode\u003e0169551\u003c/code\u003e\u003c/a\u003e Disable npm caching for playground (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21039\"\u003e#21039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e92fd51a2c14d42fa3c6ffc442ec3233f9ed2c19\"\u003e\u003ccode\u003ee92fd51\u003c/code\u003e\u003c/a\u003e [ty] Add cycle handling to \u003ccode\u003elazy_default\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20967\"\u003e#20967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/c3631c78bd94b7afbe4293d3e2555f0c88d0c4ba\"\u003e\u003ccode\u003ec3631c7\u003c/code\u003e\u003c/a\u003e [ty] Add docstrings for \u003ccode\u003ety_extensions\u003c/code\u003e functions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21036\"\u003e#21036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/589e8ac0d92728b8f5aed7e3ad3469ce1993619e\"\u003e\u003ccode\u003e589e8ac\u003c/code\u003e\u003c/a\u003e [ty] Infer type for implicit \u003ccode\u003eself\u003c/code\u003e parameters in method bodies (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20922\"\u003e#20922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/76a55314e4afdb35f52e3df9ceec2514f4fccf73\"\u003e\u003ccode\u003e76a5531\u003c/code\u003e\u003c/a\u003e Fix rare multithreaded related hang (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/21038\"\u003e#21038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.1...0.14.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `beartype` from 0.22.2 to 0.22.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.4: Now Less Hated by Poetry\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e catastrophically explodes all over your monitor. An oily black residue redolent of snail mucus slides off the screen, dripping with a maddening cadence into the crevices of your trusty mechanical keyboard:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e never gets tired of bug-eyed dudes punching squinty-eyed dudes. Childhood memories do not fade.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/HK-WlNloWp8AAAAd/blood-sport-jean-claude-van-damme.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eLeft: \u003cem\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e.\u003c/em\u003e Right: \u003cem\u003ePoetry and \u003ccode\u003epipenv\u003c/code\u003e together as one dude.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is a patch release that guarantees compatibility with both \u003ca href=\"https://python-poetry.org\"\u003e\u003cstrong\u003ePoetry\u003c/strong\u003e\u003c/a\u003e and \u003ca href=\"https://pipenv.pypa.io/en/latest\"\u003e\u003cstrong\u003e\u003ccode\u003epipenv\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e. Previously, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e just assumed that Poetry and \u003ccode\u003epipenv\u003c/code\u003e liked \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. What's not to like about \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, guys? Huh!? Apparently...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEverything.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e broke the assumption that everybody likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. Our prior release shipped a \u003ccode\u003epyproject.toml\u003c/code\u003e file with a PEP 440-compliant version string:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10,!=3.14rc1,!=3.14rc2\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThat syntax is valid. But Poetry and \u003ccode\u003epipenv\u003c/code\u003e didn't care. They do what they want! And they didn't want to have anything to do with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e. We disagree, but that's fair enough. Everyone has bad opinions.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e resolves these trivial incompatibilities with popular devtooling. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e also promises this will \u003cem\u003enever\u003c/em\u003e happen again. A new integration test in the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e test suite guarantees Poetry and \u003ccode\u003epipenv\u003c/code\u003e compatibility, safeguarding both your QA stack and sanity against midnight regressions at 4:52AM.\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/beartype/beartype/commit/d543d7cd24a2787790f06fa9ff57a549d7eb5784\"\u003e\u003ccode\u003ed543d7c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.4: Now Less Hated by Poetry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b25aa9b0967a576055a7a33f008050fa9014d40b\"\u003e\u003ccode\u003eb25aa9b\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/65f2d2d306881dab346f8e4b1e9dd98246dfbb2e\"\u003e\u003ccode\u003e65f2d2d\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/67dc58687d791a2f37527c394123f58086b20f2f\"\u003e\u003ccode\u003e67dc586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.4\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/97022c9ab3bbbd940fa44a3dad7f15b0874695f0\"\u003e\u003ccode\u003e97022c9\u003c/code\u003e\u003c/a\u003e Beartype 0.22.3: Yo Dawg We Heard You Like Redis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ed3092b87fcd0d89ac8ba23bb92ed8895648a928\"\u003e\u003ccode\u003eed3092b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/89a5c544920f9d15ebd9f883793b5f7eb4aaf44c\"\u003e\u003ccode\u003e89a5c54\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/991addc19a24df00451842914aaf494bd137a6d3\"\u003e\u003ccode\u003e991addc\u003c/code\u003e\u003c/a\u003e Bluesky social links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b33685cf83d5ce2999d399b4797bd6663dbb9615\"\u003e\u003ccode\u003eb33685c\u003c/code\u003e\u003c/a\u003e Bump actions/upload-pages-artifact in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d44915bcd5ffbe6ddc3e386a91428554237fdeb4\"\u003e\u003ccode\u003ed44915b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@dataclasses.dataclass\u003c/code\u003e + \u003ccode\u003eredis.Redis\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.2...v0.22.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `basedpyright` from 1.31.7 to 1.32.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/dc463b5fecde43a94604fd8ee85058ef9c99d749\"\u003e\u003ccode\u003edc463b5\u003c/code\u003e\u003c/a\u003e 1.32.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/d1c4feed905ef68ee811a65319a4a8049bd93952\"\u003e\u003ccode\u003ed1c4fee\u003c/code\u003e\u003c/a\u003e fix an accidental breaking change to \u003ccode\u003edataclass_transform\u003c/code\u003e that was introduce...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/53d9bb2810b642108b5974f0f03c5606db55e87e\"\u003e\u003ccode\u003e53d9bb2\u003c/code\u003e\u003c/a\u003e 1.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/4c539aabf5f0ed381f17c007ad2697c4f1a6f30b\"\u003e\u003ccode\u003e4c539aa\u003c/code\u003e\u003c/a\u003e update expected error message in unrecognized config tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/1b9d6281ee433f24453c6ef38717cc7c53bd50cc\"\u003e\u003ccode\u003e1b9d628\u003c/code\u003e\u003c/a\u003e delete the newly added unknown config detection from upstream because mine is...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/8ac5a72630dcfd427279146821828b85ee246732\"\u003e\u003ccode\u003e8ac5a72\u003c/code\u003e\u003c/a\u003e update \u003ccode\u003enewTypeClassNotAllowed\u003c/code\u003e russian translation with suggestion from \u003ca href=\"https://github.com/dec\"\u003e\u003ccode\u003e@​dec\u003c/code\u003e\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/ac5db4e35228a7beea3e2ec244d9257ace6f012e\"\u003e\u003ccode\u003eac5db4e\u003c/code\u003e\u003c/a\u003e Merge tag '1.1.407' into merge-1.1.407\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/276448f4d1f9bef30601a5efaf112b0df9e40f10\"\u003e\u003ccode\u003e276448f\u003c/code\u003e\u003c/a\u003e Fixed package-lock files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/783ee6761a96b0668476dec953196d1ff11daa98\"\u003e\u003ccode\u003e783ee67\u003c/code\u003e\u003c/a\u003e Published 1.1.407\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DetachHead/basedpyright/commit/f9fc2aa85a9a606b689e90bf9555bbbf41f1bb4f\"\u003e\u003ccode\u003ef9fc2aa\u003c/code\u003e\u003c/a\u003e Updated typeshed stubs to the latest version (\u003ca href=\"https://redirect.github.com/detachhead/basedpyright/issues/11051\"\u003e#11051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/detachhead/basedpyright/compare/v1.31.7...v1.32.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyrefly` from 0.38.0 to 0.39.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/7a82eaef47996f10d2bf7345fa2854b5d92f7dcf\"\u003e\u003ccode\u003e7a82eae\u003c/code\u003e\u003c/a\u003e Update pyrefly version]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/fd39880bb19fb14588236160d7a90e1a7e3a88fc\"\u003e\u003ccode\u003efd39880\u003c/code\u003e\u003c/a\u003e Record xrefs for symbols \u003ccode\u003e __all__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/6698c93fcf29f9844caeb6e8c2155b91dae8ad89\"\u003e\u003ccode\u003e6698c93\u003c/code\u003e\u003c/a\u003e Adding test with \u003cstrong\u003eall\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/46ffedb3d53034379a5d01d3b12a7cae064a6d81\"\u003e\u003ccode\u003e46ffedb\u003c/code\u003e\u003c/a\u003e fix Feature: inheritance checks for typed dictionaries (\u003ca href=\"https://redirect.github.com/facebook/pyrefly/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/98f7611b52ec11d994d15302ce817d3db08a4056\"\u003e\u003ccode\u003e98f7611\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ety\u003c/code\u003e, not \u003ccode\u003ew\u003c/code\u003e for the answer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/697b0aef7e8fd78df8349569ec238fc1db7f82bb\"\u003e\u003ccode\u003e697b0ae\u003c/code\u003e\u003c/a\u003e Don't complain if non-callable \u003ccode\u003e__bool__\u003c/code\u003e is the last entry in a boolop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/1563b7a46b1c97a869d16b5c33d986521f631dc0\"\u003e\u003ccode\u003e1563b7a\u003c/code\u003e\u003c/a\u003e Track behavior of not-boolable types in boolean operators\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/4b7139797513b5f39a480e381bc071d8f5005c3a\"\u003e\u003ccode\u003e4b71397\u003c/code\u003e\u003c/a\u003e Distribute \u003ccode\u003e__bool__\u003c/code\u003e checks across unions in \u003ccode\u003echeck_dunder_bool_is_callable\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/78fd600a96039a05329dfa96f6a99bd46136f064\"\u003e\u003ccode\u003e78fd600\u003c/code\u003e\u003c/a\u003e Rename some vars\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facebook/pyrefly/commit/dd9258b4ffbff2cc3a06a619f0a63bafc0f551c4\"\u003e\u003ccode\u003edd9258b\u003c/code\u003e\u003c/a\u003e Add tests for a bug in Pyrefly union handling\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facebook/pyrefly/compare/0.38.0...0.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot 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/jorenham/optype/pull/473","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorenham%2Foptype/issues/473","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/473/packages"}},{"old_version":"0.22.0rc0","new_version":"0.22.4","update_type":"patch","path":null,"pr_created_at":"2025-10-27T15:20:59.000Z","version_change":"0.22.0rc0 → 0.22.4","issue":{"uuid":"3557314901","node_id":"PR_kwDOGKRa286v699R","number":27,"state":"closed","title":"pip stable: bump beartype from 0.22.0rc0 to 0.22.4","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-03T14:08:12.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-27T15:20:59.000Z","updated_at":"2025-11-03T14:08:13.000Z","time_to_close":600433,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"pip stable","packages":[{"name":"beartype","old_version":"0.22.0rc0","new_version":"0.22.4","repository_url":"https://github.com/beartype/beartype"}],"path":null,"ecosystem":"pip"},"body":"Bumps [beartype](https://github.com/beartype/beartype) from 0.22.0rc0 to 0.22.4.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/beartype/beartype/releases\"\u003ebeartype's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBeartype 0.22.4: Now Less Hated by Poetry\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e catastrophically explodes all over your monitor. An oily black residue redolent of snail mucus slides off the screen, dripping with a maddening cadence into the crevices of your trusty mechanical keyboard:\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Via \u0026quot;pip\u0026quot;, the once-great venerable master packager now fallen on hard times:\n$ pip install --upgrade beartype        # \u0026lt;-- you go, pipe-smoking pip\n\u003ch1\u003eVia \u0026quot;uv\u0026quot;, the plucky upstart spiky-haired kid wielding a sword larger than its body:\u003c/h1\u003e\n\u003cp\u003e$ uv lock --upgrade-package beartype    # \u0026lt;-- you do what you need to do, ultraviolet radiation\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e never gets tired of bug-eyed dudes punching squinty-eyed dudes. Childhood memories do not fade.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/HK-WlNloWp8AAAAd/blood-sport-jean-claude-van-damme.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eLeft: \u003cem\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e.\u003c/em\u003e Right: \u003cem\u003ePoetry and \u003ccode\u003epipenv\u003c/code\u003e together as one dude.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is helping \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e and his beautiful science wife to eat food. Thanks entirely to...\u003c/p\u003e\n\u003ch2\u003eGitHub Sponsors: Befriend the Bear and Get a Bear for Life\u003c/h2\u003e\n\u003cp\u003eThis release comes courtesy these proud \u003ca href=\"https://github.com/sponsors/leycec\"\u003eGitHub Sponsors\u003c/a\u003e, without whom everyone in the \u003ca href=\"https://github.com/leycec\"\u003e\u003ccode\u003e@​leycec\u003c/code\u003e\u003c/a\u003e family would currently be eating grasshoppers in the abandoned back lot again:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sesco-llc\"\u003e\u003ccode\u003e@​sesco-llc\u003c/code\u003e\u003c/a\u003e (SESCO Enterprises), \u0026quot;The Power of Innovation in Trading\u0026quot;: \u003c!-- raw HTML omitted --\u003e\u003cem\u003ethis inspires me to get out of the house and do something\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://sescollc.com\"\u003ehttps://sescollc.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DylanModesitt\"\u003e\u003ccode\u003e@​DylanModesitt\u003c/code\u003e\u003c/a\u003e (Dylan Modesitt), quantitative strategies energy trading associate: \u003c!-- raw HTML omitted --\u003e\u003cem\u003e...wikipedia, don't fail me now!\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://dylanmodesitt.com\"\u003ehttps://dylanmodesitt.com\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e[Tidelift][]\u003c/strong\u003e, graciously paying out recurring income to security-sensitive open-source projects like \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e: \u003c!-- raw HTML omitted --\u003e\u003cem\u003eso much hype\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\n\u003ca href=\"https://www.sonarsource.com/products/sonarqube/advanced-security\"\u003ehttps://www.sonarsource.com/products/sonarqube/advanced-security\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you represent a security-conscious corporate, government, or non-profit, the \u003cem\u003ebest\u003c/em\u003e way bar none for you to support \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e and secure your own workflow is by subscribing to \u003cstrong\u003e[Tidelift][]\u003c/strong\u003e through \u003cstrong\u003e[SonarQube Advanced Security][].\u003c/strong\u003e Security giant [Sonar][] recently acquired [Tidelift][], guaranteeing the economic viability of the Tidelift model for billions of future open-source projects that have yet to be born. Join the jargon-laden conversation and pay someone else to think about unreadable acronyms like SAST, SCA, and SBOM for once.\u003c/p\u003e\n\u003cp\u003eThanks so much, masters of fintech and lifted tides.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://media1.tenor.com/m/7JR7sD8oTiUAAAAC/who-are-you-do-i-know-you.gif\" alt=\"\" /\u003e\n\u003c!-- raw HTML omitted --\u003eThe Masters of Fintech and Lifted Tides. \u003cem\u003eThat's who.\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003eGods Not Another Patch Release. What's Wrong with You, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e?\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e is a patch release that guarantees compatibility with both \u003ca href=\"https://python-poetry.org\"\u003e\u003cstrong\u003ePoetry\u003c/strong\u003e\u003c/a\u003e and \u003ca href=\"https://pipenv.pypa.io/en/latest\"\u003e\u003cstrong\u003e\u003ccode\u003epipenv\u003c/code\u003e\u003c/strong\u003e\u003c/a\u003e. Previously, \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e just assumed that Poetry and \u003ccode\u003epipenv\u003c/code\u003e liked \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. What's not to like about \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e, guys? Huh!? Apparently...\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEverything.\u003c/strong\u003e \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e broke the assumption that everybody likes \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e. Our prior release shipped a \u003ccode\u003epyproject.toml\u003c/code\u003e file with a PEP 440-compliant version string:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10,!=3.14rc1,!=3.14rc2\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThat syntax is valid. But Poetry and \u003ccode\u003epipenv\u003c/code\u003e didn't care. They do what they want! And they didn't want to have anything to do with \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.3\u003c/code\u003e. We disagree, but that's fair enough. Everyone has bad opinions.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e resolves these trivial incompatibilities with popular devtooling. \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e0.22.4\u003c/code\u003e also promises this will \u003cem\u003enever\u003c/em\u003e happen again. A new integration test in the \u003ca href=\"https://github.com/beartype\"\u003e\u003ccode\u003e@​beartype\u003c/code\u003e\u003c/a\u003e test suite guarantees Poetry and \u003ccode\u003epipenv\u003c/code\u003e compatibility, safeguarding both your QA stack and sanity against midnight regressions at 4:52AM.\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/beartype/beartype/commit/d543d7cd24a2787790f06fa9ff57a549d7eb5784\"\u003e\u003ccode\u003ed543d7c\u003c/code\u003e\u003c/a\u003e Beartype 0.22.4: Now Less Hated by Poetry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b25aa9b0967a576055a7a33f008050fa9014d40b\"\u003e\u003ccode\u003eb25aa9b\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/65f2d2d306881dab346f8e4b1e9dd98246dfbb2e\"\u003e\u003ccode\u003e65f2d2d\u003c/code\u003e\u003c/a\u003e Poetry compatibility x 1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/67dc58687d791a2f37527c394123f58086b20f2f\"\u003e\u003ccode\u003e67dc586\u003c/code\u003e\u003c/a\u003e \u003cstrong\u003eBeartype 0.22.4\u003c/strong\u003e started.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/97022c9ab3bbbd940fa44a3dad7f15b0874695f0\"\u003e\u003ccode\u003e97022c9\u003c/code\u003e\u003c/a\u003e Beartype 0.22.3: Yo Dawg We Heard You Like Redis\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/ed3092b87fcd0d89ac8ba23bb92ed8895648a928\"\u003e\u003ccode\u003eed3092b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/89a5c544920f9d15ebd9f883793b5f7eb4aaf44c\"\u003e\u003ccode\u003e89a5c54\u003c/code\u003e\u003c/a\u003e \u003ccode\u003egemini-cli\u003c/code\u003e x 2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/991addc19a24df00451842914aaf494bd137a6d3\"\u003e\u003ccode\u003e991addc\u003c/code\u003e\u003c/a\u003e Bluesky social links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/b33685cf83d5ce2999d399b4797bd6663dbb9615\"\u003e\u003ccode\u003eb33685c\u003c/code\u003e\u003c/a\u003e Bump actions/upload-pages-artifact in the github-actions group (\u003ca href=\"https://redirect.github.com/beartype/beartype/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/beartype/beartype/commit/d44915bcd5ffbe6ddc3e386a91428554237fdeb4\"\u003e\u003ccode\u003ed44915b\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@dataclasses.dataclass\u003c/code\u003e + \u003ccode\u003eredis.Redis\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/beartype/beartype/compare/v0.22.0rc0...v0.22.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=beartype\u0026package-manager=pip\u0026previous-version=0.22.0rc0\u0026new-version=0.22.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/cofiem/repo-browser/pull/27","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cofiem%2Frepo-browser/issues/27","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/27/packages"}}]}