Skip to content

Commit 036fd45

Browse files
committed
Confirm support for Python 3.14.
1 parent 356dc70 commit 036fd45

File tree

6 files changed

+13
-4
lines changed

6 files changed

+13
-4
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
with:
5454
platforms: all
5555
- name: Build wheels
56-
uses: pypa/cibuildwheel@v2.22.0
56+
uses: pypa/cibuildwheel@v3.0.1
5757
env:
5858
BUILD_EXTENSION: yes
5959
- name: Save wheels

.github/workflows/tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ jobs:
5959
- "3.11"
6060
- "3.12"
6161
- "3.13"
62+
- "3.14"
6263
- "pypy-3.10"
6364
is_main:
6465
- ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}

docs/project/changelog.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ Backwards-incompatible changes
4040

4141
websockets 15.0 is the last version supporting Python 3.9.
4242

43+
New features
44+
............
45+
46+
* Validated compatibility with Python 3.14.
47+
4348
Improvements
4449
............
4550

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ classifiers = [
2323
"Programming Language :: Python :: 3.11",
2424
"Programming Language :: Python :: 3.12",
2525
"Programming Language :: Python :: 3.13",
26+
"Programming Language :: Python :: 3.14",
2627
]
2728
dynamic = ["version", "readme"]
2829

tests/legacy/utils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import asyncio
22
import functools
3+
import inspect
34
import sys
45
import unittest
56

@@ -23,7 +24,7 @@ def __init_subclass__(cls, **kwargs):
2324
super().__init_subclass__(**kwargs)
2425
for name in unittest.defaultTestLoader.getTestCaseNames(cls):
2526
test = getattr(cls, name)
26-
if asyncio.iscoroutinefunction(test):
27+
if inspect.iscoroutinefunction(test):
2728
setattr(cls, name, cls.convert_async_to_sync(test))
2829

2930
@staticmethod

tox.ini

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ env_list =
44
py311
55
py312
66
py313
7+
py314
78
coverage
89
ruff
910
mypy
@@ -14,8 +15,8 @@ commands =
1415
pass_env =
1516
WEBSOCKETS_*
1617
deps =
17-
py311,py312,py313,coverage,maxi_cov: mitmproxy
18-
py311,py312,py313,coverage,maxi_cov: python-socks[asyncio]
18+
py311,py312,py313,py314,coverage,maxi_cov: mitmproxy
19+
py311,py312,py313,py314,coverage,maxi_cov: python-socks[asyncio]
1920
werkzeug
2021

2122
[testenv:coverage]

0 commit comments

Comments
 (0)