From c9cd6254e7f6f3f5becce9d71b76cb103de857e9 Mon Sep 17 00:00:00 2001 From: Adam Dangoor Date: Tue, 27 Jan 2026 04:31:39 +0000 Subject: [PATCH 1/2] Support Python 3.14 --- .github/workflows/ci.yml | 4 +--- pyproject.toml | 3 ++- uv.lock | 38 +++++++++++++++++++------------------- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 48043e9d..709ea283 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,4 @@ --- - name: Test on: @@ -16,10 +15,9 @@ permissions: {} jobs: build: - strategy: matrix: - python-version: ['3.13'] + python-version: ['3.13', '3.14'] platform: [ubuntu-latest, windows-latest] runs-on: ${{ matrix.platform }} diff --git a/pyproject.toml b/pyproject.toml index f23e35e0..f78bb288 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ classifiers = [ "Operating System :: POSIX", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] dynamic = [ "version", @@ -310,7 +311,7 @@ pep621_dev_dependency_groups = [ [tool.pyproject-fmt] indent = 4 keep_full_version = true -max_supported_python = "3.13" +max_supported_python = "3.14" [tool.pytest.ini_options] diff --git a/uv.lock b/uv.lock index 76b5d6f9..3f360b95 100644 --- a/uv.lock +++ b/uv.lock @@ -375,7 +375,7 @@ wheels = [ [[package]] name = "doccmd" -version = "2026.1.23.4" +version = "2026.1.25" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "beartype" }, @@ -387,9 +387,9 @@ dependencies = [ { name = "sybil" }, { name = "sybil-extras" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/89/b3/c0dbdb5861d9bb91b88fbb4fb345638443753b7fe9522e52eb341a057330/doccmd-2026.1.23.4.tar.gz", hash = "sha256:74337971d34d8861eccaf0a0b6c8d8aa4375e05aa5d7575339276f2b4481f3fe", size = 180250, upload-time = "2026-01-23T13:40:40.703Z" } +sdist = { url = "https://files.pythonhosted.org/packages/03/99/ea7d447c5467190038119763781063e76479a3c06bee26e1fa8ffe49fb14/doccmd-2026.1.25.tar.gz", hash = "sha256:f08cc5b26dcddd178c2e2b8fc28e03fd89dd27bb68c1b5ac426a1eeaabcef5b1", size = 180471, upload-time = "2026-01-25T10:48:14.279Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/73/fa/fb5ceaad739d7126df95ff7f55183ce822e1695a46fc4c287781d74d6255/doccmd-2026.1.23.4-py2.py3-none-any.whl", hash = "sha256:3a17bb8deaa3b7bbee726fbe69e21036b5816e5298dac1f179e928f9c60ab3b5", size = 18398, upload-time = "2026-01-23T13:40:39.492Z" }, + { url = "https://files.pythonhosted.org/packages/12/da/e3c8ed9a741e33aefb8609e9bf59c4869486dea9bd1a9fb151697c92fade/doccmd-2026.1.25-py2.py3-none-any.whl", hash = "sha256:e0b74cad594c5b3f00a073c2efc046df13e92eac04408eeffc8b3c1d638fc20e", size = 18384, upload-time = "2026-01-25T10:48:12.144Z" }, ] [[package]] @@ -1324,11 +1324,11 @@ wheels = [ [[package]] name = "pydocstringformatter" -version = "0.7.3" +version = "0.7.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b3/51/5c21963eb7bdba245ec808fdb0ef8abc0cd87ef674f2b6ba1fd76f3a0ffa/pydocstringformatter-0.7.3.tar.gz", hash = "sha256:dfcc07bec1706803d563275e282ef9e629b02dc19983ec6778d07a9f500bb62b", size = 24024, upload-time = "2023-01-02T15:09:30.152Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/37/f6d5ff68893c8b4ae194d6dd9df31be2cceacfae5256c840b9e216fd20de/pydocstringformatter-0.7.5.tar.gz", hash = "sha256:e9cbd134d6279360fd2bcaad94680cec02aa20a22560375c5ffd495fcfbcf92d", size = 30474, upload-time = "2025-07-12T10:12:46.089Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/38/b3a99e9cc66941e044ad3d40e90a72b1191925b8af13e3e4d8edc5c0eb87/pydocstringformatter-0.7.3-py3-none-any.whl", hash = "sha256:3654f52c49fc729b49712d1e7c49384dfd253bdffeda4939e79dab31491c563f", size = 31287, upload-time = "2023-01-02T15:09:28.904Z" }, + { url = "https://files.pythonhosted.org/packages/81/ed/e70e413b537b7809badcd275a5f050301dafbe54efd1ae9d392ed2943c40/pydocstringformatter-0.7.5-py3-none-any.whl", hash = "sha256:7daed355f11244f64571d119e49e7328365ea9b545f88256a47b550f213d23eb", size = 31433, upload-time = "2025-07-12T10:12:44.619Z" }, ] [[package]] @@ -1414,18 +1414,18 @@ wheels = [ [[package]] name = "pyrefly" -version = "0.49.0" +version = "0.50.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b4/19/8ad522587672c6bb013e284ee8a326136f6511c74784141f3fd550b99aee/pyrefly-0.49.0.tar.gz", hash = "sha256:d4e9a978d55253d2cd24c0354bd4cf087026d07bd374388c2ae12a3bc26f93fc", size = 4822135, upload-time = "2026-01-20T15:13:48.061Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/fd/3de73c11f5f5f9bc493840d54bdac70c7ae7862f4afe3ad6c07b64e21917/pyrefly-0.50.0.tar.gz", hash = "sha256:55daafb02d8cfde54de5f6872a20059a9e34350bff47ec12b8b4f279eac3b8f5", size = 4890579, upload-time = "2026-01-26T21:04:12.475Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5b/47/8c34be1fd5fb3ca74608a71dfece40c4b9d382a8899db8418be9b326ba3f/pyrefly-0.49.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:1cd5516ddab7c745e195fe1470629251962498482025bf2a9a9d53d5bde73729", size = 11644108, upload-time = "2026-01-20T15:13:25.358Z" }, - { url = "https://files.pythonhosted.org/packages/57/01/f492c92b4df963dbfda8d8e1cf57477704df8cdecf907568580af60193fe/pyrefly-0.49.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5a998a37dc1465a648c03076545080a8bd2a421c67cac27686eca43244e8ac69", size = 11246465, upload-time = "2026-01-20T15:13:27.845Z" }, - { url = "https://files.pythonhosted.org/packages/d1/0b/89da00960e9c43ae7aa5f50886e9f87457137c444e513c00b714fdc6ba1e/pyrefly-0.49.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a96b1452fa61d7db6d5ae6b6297f50ba8c006ba7ce420233ebd33eaf95d04cfd", size = 31723528, upload-time = "2026-01-20T15:13:31.686Z" }, - { url = "https://files.pythonhosted.org/packages/f7/69/43a2a1a6bc00037879643d7d5257215fea1988dd2ef3168b5fe3cd55dcf0/pyrefly-0.49.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:97f1b5fb1be6f8f4868fe40e7ebeed055c8483012212267e182d58a8e50723e7", size = 33924099, upload-time = "2026-01-20T15:13:35.056Z" }, - { url = "https://files.pythonhosted.org/packages/f4/df/e475cd37d40221571e25465f0a39dd14123b8a3498f103e39e5938a2645f/pyrefly-0.49.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7ee11eefd1d551629ce1b25888814dbf758aac1a10279537d9425bc53f2d41c", size = 35026928, upload-time = "2026-01-20T15:13:38.403Z" }, - { url = "https://files.pythonhosted.org/packages/54/e2/fe9588b2cb4685c410ebf106bf1d28c66ed2727a5eeeabcfb51fec714143/pyrefly-0.49.0-py3-none-win32.whl", hash = "sha256:6196cb9b20ee977f64fa1fe87e06d3f7a222c5155031d21139fc60464a7a4b9c", size = 10675311, upload-time = "2026-01-20T15:13:40.99Z" }, - { url = "https://files.pythonhosted.org/packages/1a/dc/65fba26966bc2d9a9cbef620ef2a957f72bf3551822d6c250e3d36c2d0ee/pyrefly-0.49.0-py3-none-win_amd64.whl", hash = "sha256:15333b5550fd32a8f9a971ad124714d75f1906a67e48033dcc203258525bc7fd", size = 11418250, upload-time = "2026-01-20T15:13:43.321Z" }, - { url = "https://files.pythonhosted.org/packages/54/3c/9b0af11cbbfd57c5487af2d5d7322c30e7d73179171e1ffa4dda758dd286/pyrefly-0.49.0-py3-none-win_arm64.whl", hash = "sha256:4a57eebced37836791b681626a4be004ebd27221bc208f8200e1e2ca8a8b9510", size = 10962081, upload-time = "2026-01-20T15:13:45.82Z" }, + { url = "https://files.pythonhosted.org/packages/bf/3a/a0267459efc61a7bb6e5281ab5a41c4a16a10dce8acbd7376f2956a59b2e/pyrefly-0.50.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:c997844857f72e9edf6365c05b58ac1b9176572b7d4a86153e95cebcf1b06dda", size = 11826217, upload-time = "2026-01-26T21:03:53.96Z" }, + { url = "https://files.pythonhosted.org/packages/f1/20/3bc1f05efabe36e0cfbce9cdd8043261e4237c3af0feabd60a985aad4645/pyrefly-0.50.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:f630a47bfb65cf0baa094daee19c0d6c1ee18800b598353accca2a3bb347d65c", size = 11407127, upload-time = "2026-01-26T21:03:56.239Z" }, + { url = "https://files.pythonhosted.org/packages/c5/67/c161542c45d8f37666b8f55fcf5a096e9f90bef0682227f2713135e5ac5f/pyrefly-0.50.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e521bfbb730aa143e415457a4c11f9486ede5cd5f142b8b2446d4a6a1a22aef", size = 32317816, upload-time = "2026-01-26T21:03:58.73Z" }, + { url = "https://files.pythonhosted.org/packages/53/80/9887e4d3036184485a64b0353529d83938eefdc43ea60b9b5ce34ea782df/pyrefly-0.50.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:457b3c8267749fa82fe9555813c18707278fd3d11442aa3b85008b60c53fbfc1", size = 34569414, upload-time = "2026-01-26T21:04:01.211Z" }, + { url = "https://files.pythonhosted.org/packages/e7/07/95ebd93237ee646cc14a310380ec2a59fa8a87e5cefc91a832e902f88356/pyrefly-0.50.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92d6c908f63a9e484a3865f5995c0a9d4dd6f8e66aec6e911f2051b51d18c148", size = 35695334, upload-time = "2026-01-26T21:04:04.036Z" }, + { url = "https://files.pythonhosted.org/packages/c5/97/fc5f992a12713459c41124d7762df23ed9a78eb796a1adf7b1ea2c0b6104/pyrefly-0.50.0-py3-none-win32.whl", hash = "sha256:1ebbc5796b6d6b8b6937500c3c51ef22b4d607e5f100e170c104ea2832c22bbe", size = 10828039, upload-time = "2026-01-26T21:04:06.554Z" }, + { url = "https://files.pythonhosted.org/packages/02/fd/8aefef009268346b60cfa02c087efb8a587cf4bdc630ce5a072c59a765e4/pyrefly-0.50.0-py3-none-win_amd64.whl", hash = "sha256:dae33a7023fd85acbf8ba8b4d8488bc897e92f7439016db10d8e38c3de21ba30", size = 11585740, upload-time = "2026-01-26T21:04:08.558Z" }, + { url = "https://files.pythonhosted.org/packages/3e/8b/4ffcab526a92611b3d5c9ca3eab8d98b6a935ee11e58ee7cdbe9499bd1d9/pyrefly-0.50.0-py3-none-win_arm64.whl", hash = "sha256:7ce692c8262ef9bc877b735e6b4ec053dac119ed64d4cad51aa9d8c285cfb549", size = 11119646, upload-time = "2026-01-26T21:04:10.515Z" }, ] [[package]] @@ -2412,7 +2412,7 @@ requires-dist = [ { name = "click", specifier = "==8.3.1" }, { name = "deptry", marker = "extra == 'dev'", specifier = "==0.24.0" }, { name = "doc8", marker = "extra == 'dev'", specifier = "==2.0.0" }, - { name = "doccmd", marker = "extra == 'dev'", specifier = "==2026.1.23.4" }, + { name = "doccmd", marker = "extra == 'dev'", specifier = "==2026.1.25" }, { name = "freezegun", marker = "extra == 'dev'", specifier = "==1.5.5" }, { name = "furo", marker = "extra == 'dev'", specifier = "==2025.12.19" }, { name = "hadolint-bin", marker = "sys_platform != 'win32' and extra == 'dev'", specifier = "==2.14.0" }, @@ -2421,10 +2421,10 @@ requires-dist = [ { name = "mypy", extras = ["faster-cache"], marker = "extra == 'dev'", specifier = "==1.19.1" }, { name = "mypy-strict-kwargs", marker = "extra == 'dev'", specifier = "==2026.1.12" }, { name = "prek", marker = "extra == 'dev'", specifier = "==0.3.0" }, - { name = "pydocstringformatter", marker = "extra == 'dev'", specifier = "==0.7.3" }, + { name = "pydocstringformatter", marker = "extra == 'dev'", specifier = "==0.7.5" }, { name = "pylint", extras = ["spelling"], marker = "extra == 'dev'", specifier = "==4.0.4" }, { name = "pyproject-fmt", marker = "extra == 'dev'", specifier = "==2.11.1" }, - { name = "pyrefly", marker = "extra == 'dev'", specifier = "==0.49.0" }, + { name = "pyrefly", marker = "extra == 'dev'", specifier = "==0.50.0" }, { name = "pyright", marker = "extra == 'dev'", specifier = "==1.1.408" }, { name = "pyroma", marker = "extra == 'dev'", specifier = "==5.0.1" }, { name = "pytest", marker = "extra == 'dev'", specifier = "==9.0.2" }, From 3cdc3104cc76c3eb44d3fa8bb01ceac3fd669943 Mon Sep 17 00:00:00 2001 From: Adam Dangoor Date: Tue, 27 Jan 2026 06:07:12 +0000 Subject: [PATCH 2/2] Remove ignore for pydocstringformatter --- .pre-commit-config.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3b42c609..20d0dfb2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -133,8 +133,6 @@ repos: entry: uv run --extra=dev pydocstringformatter language: python types_or: [python] - # We exclude this file to avoid https://github.com/PyCQA/docformatter/issues/291. - exclude: src/vws_cli/commands.py additional_dependencies: [uv==0.9.5] stages: [pre-commit]