diff --git a/pyproject.toml b/pyproject.toml index 8de67cb69..36f8ad407 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ optional-dependencies.dev = [ "pydocstyle==6.3", "pylint[spelling]==4.0.7", "pylint-per-file-ignores==3.2.1", - "pyproject-fmt==2.27.0", + "pyproject-fmt==2.28.0", "pyrefly==1.2.0", "pyright==1.1.411", "pyroma==5.0.1", @@ -462,17 +462,17 @@ retry_delay = "10" xfail_strict = true [tool.coverage] +run.source = [ "ci/", "src/", "tests/" ] run.branch = true run.parallel = true -run.patch = [ "subprocess" ] run.relative_files = true -run.source = [ "ci/", "src/", "tests/" ] +run.patch = [ "subprocess" ] +report.fail_under = 100 report.exclude_also = [ "case _ as unreachable:\n\\s*assert_never\\(", "class .*\\bProtocol\\):", "if TYPE_CHECKING:", ] -report.fail_under = 100 report.show_missing = true [tool.towncrier] diff --git a/uv.lock b/uv.lock index 9fcb8b5b5..e245a3267 100644 --- a/uv.lock +++ b/uv.lock @@ -1540,33 +1540,33 @@ wheels = [ [[package]] name = "pyproject-fmt" -version = "2.27.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/76/39/65b0c0342498ca594f1f678e9bb955bde32ba75ffabf8dff6c711d703109/pyproject_fmt-2.27.0.tar.gz", hash = "sha256:31f638e1d42a6689922d9c413d410a5f3f56e45c844830763321119e919cd45b", size = 300145, upload-time = "2026-08-03T22:54:59.243Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/41/2ef4c9e092a4c3e7c70311eb2cfd4125fac742734db708ab5c00cef62483/pyproject_fmt-2.27.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:0a780b411258f5ee62b9c622c0c07f55053e64e0866cfede5648b99b7573ec84", size = 5344637, upload-time = "2026-08-03T22:54:07.039Z" }, - { url = "https://files.pythonhosted.org/packages/69/56/4f88cfd3f4e83bd6ba16c0a9b0d9776efbeb4bd504fb661da5d9344790a6/pyproject_fmt-2.27.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:62acfbfe9dc150e542d0764aed71e901f6f2d818e3a9c07ee5176306348db146", size = 5102853, upload-time = "2026-08-03T22:54:08.96Z" }, - { url = "https://files.pythonhosted.org/packages/82/93/84b226f18da04a3ef21308f8a310b859e96c44cbeb88723f0409d70eb411/pyproject_fmt-2.27.0-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:754f840e915861a594ab402c1c62e09c7a53692e5db57eb544a6731154c674ce", size = 5273151, upload-time = "2026-08-03T22:54:10.75Z" }, - { url = "https://files.pythonhosted.org/packages/7f/79/d6d47dc82e39a759819af2cde51adfefcef9cff32a421245f32b18393ecf/pyproject_fmt-2.27.0-cp310-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:97c803bd973d5c8a37a368a7c6d571ff09817570bc48b23b286ab3c55712c124", size = 5667236, upload-time = "2026-08-03T22:54:12.448Z" }, - { url = "https://files.pythonhosted.org/packages/cc/28/2e2c1a3a558be20b6fdf4c415fed97e5da32d3232ae90f84091a3b00a486/pyproject_fmt-2.27.0-cp310-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:dcdd93f1c1cab93b79ed6777ef729ac7961f3b1e8a7a0b7ff04b4b826a016b96", size = 5365689, upload-time = "2026-08-03T22:54:14.431Z" }, - { url = "https://files.pythonhosted.org/packages/50/9f/b57e8ad891ea9f5fa6afec3c2d25d7d8cc8b8725cfd91381ff9b08baf8d4/pyproject_fmt-2.27.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d274ec865d4af811b874e85f23cfdc332ab05f2a66c5a6e6d10d3ff689462b5d", size = 5272980, upload-time = "2026-08-03T22:54:16.335Z" }, - { url = "https://files.pythonhosted.org/packages/56/61/914c9c4957b2e944c84adf211d6a8f28554bcc97b553de170a81aca5e96e/pyproject_fmt-2.27.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a3fc9615a0b438c2cf9b7d233a9235b5889fd3cc9f7376e90418bce5f4f2acc8", size = 5842234, upload-time = "2026-08-03T22:54:18.219Z" }, - { url = "https://files.pythonhosted.org/packages/90/f8/f16f7cc82eca680997cb36fb175a3a2a9246b47a1d90d718d59baf0f111b/pyproject_fmt-2.27.0-cp310-abi3-win_amd64.whl", hash = "sha256:3b44079ecf57addebfb06c8cbba5961d69eaea8e5dc5a21b781804c0c49a48b7", size = 5546145, upload-time = "2026-08-03T22:54:20.443Z" }, - { url = "https://files.pythonhosted.org/packages/33/79/4d3fdfbdf4afe879dab75555af1387fca77f0f3397c36d79f9e3092d09d2/pyproject_fmt-2.27.0-cp310-abi3-win_arm64.whl", hash = "sha256:b226c744ab4d1a6918ecbccbcc2d73d0e7a3527d73c44dc8c5a3775c56dc0dd0", size = 5068780, upload-time = "2026-08-03T22:54:22.377Z" }, - { url = "https://files.pythonhosted.org/packages/cb/c8/b621c3cbc19eb81d2473aab02c09bd2418929f3d61d9f3c92f127f285ba4/pyproject_fmt-2.27.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:ce05601d0d266587a8cd08af6e1cc19935e1dc3be7d6f83fa20537d6a242512d", size = 5344535, upload-time = "2026-08-03T22:54:24.127Z" }, - { url = "https://files.pythonhosted.org/packages/23/c4/f7e51e7f59d586e0797de2f533029c71cd888025b33d51dbb3967ffd2f10/pyproject_fmt-2.27.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:97901311988fd3601df115af63cd285317ad60b4db79c4598efcbe9f8a7816c2", size = 5097006, upload-time = "2026-08-03T22:54:25.99Z" }, - { url = "https://files.pythonhosted.org/packages/e1/13/cd92d6bab4f1075425982e3e6c85bc300e320c9e8e53e96028386192ef73/pyproject_fmt-2.27.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:624a4aa2f4553697dd078f1c00edc8659a5e5ccfd07325611358332f0a5dcf13", size = 5267186, upload-time = "2026-08-03T22:54:27.869Z" }, - { url = "https://files.pythonhosted.org/packages/76/99/948a3f766935723b17143ee23bdf15b7b35bc9248fb14cbd019ece93ce2a/pyproject_fmt-2.27.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:cdec6b19d887bb27df0a06448e9d0a4c3366c4a0e5b6ad308262d379a904d337", size = 5662485, upload-time = "2026-08-03T22:54:29.966Z" }, - { url = "https://files.pythonhosted.org/packages/02/30/7700d5c1a123ed76289b673f68f2f558faddeea4f60b2d58634acd91497c/pyproject_fmt-2.27.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:00833606878a5cf8e0d980e9175788a5b6d44a0d68d88d5723ec2befafddda06", size = 5266508, upload-time = "2026-08-03T22:54:32.135Z" }, - { url = "https://files.pythonhosted.org/packages/31/46/4b177d5606d3632a8690bc8489ae34984e712e58aa52496c811f1706d671/pyproject_fmt-2.27.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:48d5f4da35d77905bf2234f12b787fecb2247d0573793f31c075a1469333bf39", size = 5837669, upload-time = "2026-08-03T22:54:34.081Z" }, - { url = "https://files.pythonhosted.org/packages/9c/9d/c13f03014b2538a515caa83b6a41ef08b29f6ee6af7ac3cd75f0732384a6/pyproject_fmt-2.27.0-cp314-cp314t-win_amd64.whl", hash = "sha256:cc014e22b1e10d5f0d7b51faa281d310f04a646607ed4e620cf031bd5d7f57e8", size = 5543009, upload-time = "2026-08-03T22:54:36.049Z" }, - { url = "https://files.pythonhosted.org/packages/0b/21/341bc93ce40488a0e49bfc45e3328e11d4011ce655f2f45bd1f91f989199/pyproject_fmt-2.27.0-cp314-cp314t-win_arm64.whl", hash = "sha256:3e104c0a28212af3e2b4228b04c83220c762ce4f0bd0ec7bb2f2230361a7f154", size = 5064853, upload-time = "2026-08-03T22:54:38.72Z" }, - { url = "https://files.pythonhosted.org/packages/db/44/34cef5210591b288e0cc44138ecd4549ca93e933e11c26d4449129d34ae0/pyproject_fmt-2.27.0-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:f84843bfc074b8defa4376113a9d17b9d5f7ec10c5c5185662427409b4b9fea9", size = 5344052, upload-time = "2026-08-03T22:54:40.415Z" }, - { url = "https://files.pythonhosted.org/packages/67/5a/2ec9937459827018bb6983e29a5c6f62d519ae3019b359807c068cd2ca46/pyproject_fmt-2.27.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:3291f2526bb0071801dd1734ba10062f7363a82123a61810aebf2d823a6bc52b", size = 5096312, upload-time = "2026-08-03T22:54:42.57Z" }, - { url = "https://files.pythonhosted.org/packages/45/14/fbaa36049d3aaec9f82b83d699cdb9fc2a46dad2ca740168111c312b4cb2/pyproject_fmt-2.27.0-cp315-cp315t-manylinux_2_28_aarch64.whl", hash = "sha256:0d7f55de0460109fb892323384ce1bb6cde5b3756a7c62b1465884b42ac648ed", size = 5268557, upload-time = "2026-08-03T22:54:44.37Z" }, - { url = "https://files.pythonhosted.org/packages/95/c9/dbffa555dd0686c1309e72274d1fb5ad2feaed40469caeec62f5dc32717a/pyproject_fmt-2.27.0-cp315-cp315t-manylinux_2_28_x86_64.whl", hash = "sha256:9960ec75a2e1275c7519309838e196cbd2863db918ac8d6cf2edb89d715dbfc3", size = 5662628, upload-time = "2026-08-03T22:54:46.514Z" }, - { url = "https://files.pythonhosted.org/packages/f0/a5/a41d21f984207e719cf338165440758b561ecd6875c5f682cfe578b9424b/pyproject_fmt-2.27.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:880f3002f702e8c888fd4b129ca699d318ebc3266ed12cc7a2f7b411e56d641f", size = 5267349, upload-time = "2026-08-03T22:54:49.068Z" }, - { url = "https://files.pythonhosted.org/packages/76/08/a51aa810d4a5518bfd8cb5bf49f55864a7cf88f5aa190fcf8627c6364c80/pyproject_fmt-2.27.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:8a6e68a0780828853850c0e284fd67e75c14e7e40d681894f40bca5d17b0d93b", size = 5837708, upload-time = "2026-08-03T22:54:50.846Z" }, +version = "2.28.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/85/879bce1cffaa5941c41998a2bce8c6d7b79631695b53e9293340874c90de/pyproject_fmt-2.28.0.tar.gz", hash = "sha256:e22437de7e3f4add60e65fe935a65df6bc513edd827041f397013d78199ce146", size = 301864, upload-time = "2026-08-16T05:00:03.662Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/2d/39e1f76937cef523d15bb3bb4e3df8597df906a9c2e0212a01695acfeb08/pyproject_fmt-2.28.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:e6f5e97f2cc5a0727d5115f5aae3a14ccbf71920a948d3ed771b3cb0906f1cf8", size = 5385537, upload-time = "2026-08-16T04:59:07.293Z" }, + { url = "https://files.pythonhosted.org/packages/68/d7/b009a90794e13e2a17c86b30b393caadc37a100ef4e369a8728a7899d4d2/pyproject_fmt-2.28.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:ffb0948534e27cb7d5acc50e09e3e2661394ee07d0b836564e014ce27950c5c4", size = 5142798, upload-time = "2026-08-16T04:59:09.41Z" }, + { url = "https://files.pythonhosted.org/packages/f3/ff/96a7a36d47ffdb160f059f1429e229afe3cf6eba05e5685ad50c320742b6/pyproject_fmt-2.28.0-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:136fd2c3ea58495e2b8577184849215a8b8d77fbe09915cca932a5a20d6cd216", size = 5325673, upload-time = "2026-08-16T04:59:11.553Z" }, + { url = "https://files.pythonhosted.org/packages/4e/d9/9b6af64e2020661e189570deef209bd79fbece1a509143da416e519df0ca/pyproject_fmt-2.28.0-cp310-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:00d1a24f28708f09bd7ad3f44715c6181f9dd0f212a921a83fc27829cfd9b3ae", size = 5722916, upload-time = "2026-08-16T04:59:13.654Z" }, + { url = "https://files.pythonhosted.org/packages/32/f3/90d2766e171e44047a15ce04cb746b0f519a1d7fbf28a81d8c66a72e3281/pyproject_fmt-2.28.0-cp310-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:a067e9f378c6e095d8b428fb56b7a8b5d7314f70c480f665396ff04eb618606d", size = 5431113, upload-time = "2026-08-16T04:59:15.817Z" }, + { url = "https://files.pythonhosted.org/packages/c9/a8/8878779297b26eaa9856c05199d7e20a8238bb8b1ace23d19feae1cbcc50/pyproject_fmt-2.28.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33411f486e72340d5e760903a4273b7774d52d154e6f22290e97eff358aca462", size = 5321162, upload-time = "2026-08-16T04:59:17.806Z" }, + { url = "https://files.pythonhosted.org/packages/4a/a4/cce06b9767a029af91f809f2929ddc74afcad2bd4278fc3cef7d8650a5aa/pyproject_fmt-2.28.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5436666720e39352e11998d469373bcd68c51e8b654ef5770a41409ef85fbc3b", size = 5907287, upload-time = "2026-08-16T04:59:19.84Z" }, + { url = "https://files.pythonhosted.org/packages/4a/a6/11c2a258a935b9bd2fd6b4f85bf1e4b51429a674cbfe77718f69f605979c/pyproject_fmt-2.28.0-cp310-abi3-win_amd64.whl", hash = "sha256:cc4d157e671c2a708568e9a1950ec202fde98f1965569cc15ec8a0396ff50169", size = 5591686, upload-time = "2026-08-16T04:59:21.91Z" }, + { url = "https://files.pythonhosted.org/packages/fb/be/663048802ed13e5d896077bd697fe81f085341e01ac39ff1dd66acf5e5d5/pyproject_fmt-2.28.0-cp310-abi3-win_arm64.whl", hash = "sha256:0693a801820d9e07c92db4fc9db45fc4e5d200d3473bee5e16b603894ceab166", size = 5129252, upload-time = "2026-08-16T04:59:24.695Z" }, + { url = "https://files.pythonhosted.org/packages/d1/53/6cab4191abe78492ebe3d516e84f178244f822164e665faccc7a9d0931e5/pyproject_fmt-2.28.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:3d1b5117229c6ca243c2fb133abd6b821a918c385e5efc9ff46fdfae188b869e", size = 5387563, upload-time = "2026-08-16T04:59:27.041Z" }, + { url = "https://files.pythonhosted.org/packages/b7/39/7d680eb4bd681b60f47141bf881313a11bde0dcfb99ff317f777797a9bbc/pyproject_fmt-2.28.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:05be6edabe24d84944514dc4c37abf2c6cbb24c348f5fd59409c2ef1a5577cde", size = 5139681, upload-time = "2026-08-16T04:59:29.27Z" }, + { url = "https://files.pythonhosted.org/packages/0d/b4/515f7a466fb5062f3f067538bd86ef009627b69b66256ac1586417540977/pyproject_fmt-2.28.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:0f6ee0c7aa2da3eff9b8f4d8499df7d31e339535d5d196449d49c14fd26356ab", size = 5323897, upload-time = "2026-08-16T04:59:31.445Z" }, + { url = "https://files.pythonhosted.org/packages/cb/61/399889ca871bfe6a2de46bc601183ad80bf66d4bf4f237e8280ff9b8dc85/pyproject_fmt-2.28.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:6ea996081a59d623c2795c1c074c82ca3cccc79e5b107ec1c7219e3fcce1a5da", size = 5719701, upload-time = "2026-08-16T04:59:33.474Z" }, + { url = "https://files.pythonhosted.org/packages/d4/2e/c2b650563bc5bc23dce58ab1909bc849c71e8dfcfd3396f204a8a3f45f31/pyproject_fmt-2.28.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3b1c440739851f43caf38ec61dc223b4728b0cc81f583a0a0494365756d55952", size = 5319409, upload-time = "2026-08-16T04:59:35.97Z" }, + { url = "https://files.pythonhosted.org/packages/21/e9/9d89d4cb263b0ee907140c3da10450758a327675b83076d43aec70f5f2bd/pyproject_fmt-2.28.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6464a09cc16686be3d7ca35c22b6390afd0abf43c04b144653bdfea3d5c665e0", size = 5905767, upload-time = "2026-08-16T04:59:38.656Z" }, + { url = "https://files.pythonhosted.org/packages/a5/9e/5adec7e3e7b2ed27ca51f6de8e919618d841f64754bb25ecf86e71f88eb9/pyproject_fmt-2.28.0-cp314-cp314t-win_amd64.whl", hash = "sha256:ca3543b814da6a74435aa465245e4c35262803a724e871c9f5c0689afae17b74", size = 5588124, upload-time = "2026-08-16T04:59:40.575Z" }, + { url = "https://files.pythonhosted.org/packages/c1/12/2d9b31475e82e80b24972be3dea876f6279841cdaabcf24bb91c45217f54/pyproject_fmt-2.28.0-cp314-cp314t-win_arm64.whl", hash = "sha256:75921bbb0690ae3cf93f592edfc9e1137c887fd134753d3134984c9f473bc4e6", size = 5122927, upload-time = "2026-08-16T04:59:42.501Z" }, + { url = "https://files.pythonhosted.org/packages/e1/34/da0ff3f27728711ab2120f4b96032c61d8c3f9a3d704bb46fd26340b28a5/pyproject_fmt-2.28.0-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:d4ebdfaa713c73cbba8bdf1ea6a466aad2982fc039c135bb717fbf3702df3af2", size = 5388194, upload-time = "2026-08-16T04:59:44.362Z" }, + { url = "https://files.pythonhosted.org/packages/7d/80/bc956146647cd45d6ae19c39155d477bc13adf1dba43821a1552346d64dd/pyproject_fmt-2.28.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:e6e07b16c393a756871a4b3441d9918eb84af8b1fd6433a3955a0358bb71f16e", size = 5141168, upload-time = "2026-08-16T04:59:47.019Z" }, + { url = "https://files.pythonhosted.org/packages/c7/57/0122acaba393578e9ea753dbcf96bfd850b5241b2ae7a3d2bba558258640/pyproject_fmt-2.28.0-cp315-cp315t-manylinux_2_28_aarch64.whl", hash = "sha256:8ac651cbc6fdb3fc1193fc6f43a056f5b41f7299979dbbb26f5da77dce49fb17", size = 5323437, upload-time = "2026-08-16T04:59:49.121Z" }, + { url = "https://files.pythonhosted.org/packages/ac/c1/3c0076b8cdda3d6abea773bf6c93598d7b44a244d57c5ff8c0fdd0874ba3/pyproject_fmt-2.28.0-cp315-cp315t-manylinux_2_28_x86_64.whl", hash = "sha256:b1afe08c408c0179bf73a580e6d199e240c761d3273e99c8eb9c5eeaba09cafa", size = 5719717, upload-time = "2026-08-16T04:59:51.329Z" }, + { url = "https://files.pythonhosted.org/packages/c7/d3/612615b1a60a598e92760d567d671cbde44fbf36eb9d6c112b83e26459f2/pyproject_fmt-2.28.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:a87c67e7d267ee9e713ca6a4a1bb4254c51005c508e5deacd7d59da6bd12cb8b", size = 5319046, upload-time = "2026-08-16T04:59:53.395Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5c/de19bc2aaa1ea0248455bee478d8cc2fb187cb905cda086d09b8f89fcc3e/pyproject_fmt-2.28.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:21d530de13b3ba9ae57cfbcadab84700bdf22e013338067d37439dbd70ee151f", size = 5905843, upload-time = "2026-08-16T04:59:55.619Z" }, ] [[package]] @@ -2835,7 +2835,7 @@ requires-dist = [ { name = "pydocstyle", marker = "extra == 'dev'", specifier = "==6.3" }, { name = "pylint", extras = ["spelling"], marker = "extra == 'dev'", specifier = "==4.0.7" }, { name = "pylint-per-file-ignores", marker = "extra == 'dev'", specifier = "==3.2.1" }, - { name = "pyproject-fmt", marker = "extra == 'dev'", specifier = "==2.27.0" }, + { name = "pyproject-fmt", marker = "extra == 'dev'", specifier = "==2.28.0" }, { name = "pyrefly", marker = "extra == 'dev'", specifier = "==1.2.0" }, { name = "pyright", marker = "extra == 'dev'", specifier = "==1.1.411" }, { name = "pyroma", marker = "extra == 'dev'", specifier = "==5.0.1" },