diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml index 446b4da..20d4734 100644 --- a/.github/workflows/github-actions.yml +++ b/.github/workflows/github-actions.yml @@ -559,6 +559,186 @@ jobs: cibw_build: 'cp313t-*' cibw_ft: 'true' os: 'macos-latest' + - name: 'py314-cover (ubuntu/x86_64)' + artifact: 'py314-ubuntu-x86_64' + python: '3.14-dev' + toxpython: 'python3.14' + python_arch: 'x64' + tox_env: 'py314-cover' + cover: true + cibw_arch: 'x86_64' + cibw_build: false + os: 'ubuntu-latest' + - name: 'py314-cover (windows/AMD64)' + artifact: 'py314-windows-AMD64' + python: '3.14-dev' + toxpython: 'python3.14' + python_arch: 'x64' + tox_env: 'py314-cover' + cover: true + cibw_arch: 'AMD64' + cibw_build: false + os: 'windows-latest' + - name: 'py314-cover (macos/arm64)' + artifact: 'py314-macos-arm64' + python: '3.14-dev' + toxpython: 'python3.14' + python_arch: 'arm64' + tox_env: 'py314-cover' + cover: true + cibw_arch: 'arm64' + cibw_build: false + os: 'macos-latest' + - name: 'py314-nocov (ubuntu/x86_64/manylinux)' + artifact: 'py314-ubuntu-x86_64-manylinux' + python: '3.14-dev' + toxpython: 'python3.14' + python_arch: 'x64' + tox_env: 'py314-nocov' + cibw_arch: 'x86_64' + cibw_build: 'cp314-*manylinux*' + cibw_ft: 'false' + os: 'ubuntu-latest' + - name: 'py314-nocov (ubuntu/x86_64/musllinux)' + artifact: 'py314-ubuntu-x86_64-musllinux' + python: '3.14-dev' + toxpython: 'python3.14' + python_arch: 'x64' + tox_env: 'py314-nocov' + cibw_arch: 'x86_64' + cibw_build: 'cp314-*musllinux*' + cibw_ft: 'false' + os: 'ubuntu-latest' + - name: 'py314-nocov (ubuntu/aarch64/manylinux)' + artifact: 'py314-ubuntu-aarch64-manylinux' + python: '3.14-dev' + toxpython: 'python3.14' + python_arch: 'x64' + tox_env: 'py314-nocov' + cibw_arch: 'aarch64' + cibw_build: 'cp314-*manylinux*' + cibw_ft: 'false' + os: 'ubuntu-latest' + - name: 'py314-nocov (ubuntu/aarch64/musllinux)' + artifact: 'py314-ubuntu-aarch64-musllinux' + python: '3.14-dev' + toxpython: 'python3.14' + python_arch: 'x64' + tox_env: 'py314-nocov' + cibw_arch: 'aarch64' + cibw_build: 'cp314-*musllinux*' + cibw_ft: 'false' + os: 'ubuntu-latest' + - name: 'py314-nocov (windows/AMD64)' + artifact: 'py314-windows-AMD64' + python: '3.14-dev' + toxpython: 'python3.14' + python_arch: 'x64' + tox_env: 'py314-nocov' + cibw_arch: 'AMD64' + cibw_build: 'cp314-*' + cibw_ft: 'false' + os: 'windows-latest' + - name: 'py314-nocov (macos/arm64)' + artifact: 'py314-macos-arm64' + python: '3.14-dev' + toxpython: 'python3.14' + python_arch: 'arm64' + tox_env: 'py314-nocov' + cibw_arch: 'arm64' + cibw_build: 'cp314-*' + cibw_ft: 'false' + os: 'macos-latest' + - name: 'py314-ft-cover (ubuntu/x86_64)' + artifact: 'py314-ft-ubuntu-x86_64' + python: '3.14-dev' + toxpython: 'python3.14t' + python_arch: 'x64-freethreaded' + tox_env: 'py314-ft-cover' + cover: true + cibw_arch: 'x86_64' + cibw_build: false + os: 'ubuntu-latest' + - name: 'py314-ft-cover (windows/AMD64)' + artifact: 'py314-ft-windows-AMD64' + python: '3.14-dev' + toxpython: 'python3.14t' + python_arch: 'x64-freethreaded' + tox_env: 'py314-ft-cover' + cover: true + cibw_arch: 'AMD64' + cibw_build: false + os: 'windows-latest' + - name: 'py314-ft-cover (macos/arm64)' + artifact: 'py314-ft-macos-arm64' + python: '3.14-dev' + toxpython: 'python3.14t' + python_arch: 'arm64-freethreaded' + tox_env: 'py314-ft-cover' + cover: true + cibw_arch: 'arm64' + cibw_build: false + os: 'macos-latest' + - name: 'py314-ft-nocov (ubuntu/x86_64/manylinux)' + artifact: 'py314-ft-ubuntu-x86_64-manylinux' + python: '3.14-dev' + toxpython: 'python3.14t' + python_arch: 'x64-freethreaded' + tox_env: 'py314-ft-nocov' + cibw_arch: 'x86_64' + cibw_build: 'cp314t-*manylinux*' + cibw_ft: 'true' + os: 'ubuntu-latest' + - name: 'py314-ft-nocov (ubuntu/x86_64/musllinux)' + artifact: 'py314-ft-ubuntu-x86_64-musllinux' + python: '3.14-dev' + toxpython: 'python3.14t' + python_arch: 'x64-freethreaded' + tox_env: 'py314-ft-nocov' + cibw_arch: 'x86_64' + cibw_build: 'cp314t-*musllinux*' + cibw_ft: 'true' + os: 'ubuntu-latest' + - name: 'py314-ft-nocov (ubuntu/aarch64/manylinux)' + artifact: 'py314-ft-ubuntu-aarch64-manylinux' + python: '3.14-dev' + toxpython: 'python3.14t' + python_arch: 'x64-freethreaded' + tox_env: 'py314-ft-nocov' + cibw_arch: 'aarch64' + cibw_build: 'cp314t-*manylinux*' + cibw_ft: 'true' + os: 'ubuntu-latest' + - name: 'py314-ft-nocov (ubuntu/aarch64/musllinux)' + artifact: 'py314-ft-ubuntu-aarch64-musllinux' + python: '3.14-dev' + toxpython: 'python3.14t' + python_arch: 'x64-freethreaded' + tox_env: 'py314-ft-nocov' + cibw_arch: 'aarch64' + cibw_build: 'cp314t-*musllinux*' + cibw_ft: 'true' + os: 'ubuntu-latest' + - name: 'py314-ft-nocov (windows/AMD64)' + artifact: 'py314-ft-windows-AMD64' + python: '3.14-dev' + toxpython: 'python3.14t' + python_arch: 'x64-freethreaded' + tox_env: 'py314-ft-nocov' + cibw_arch: 'AMD64' + cibw_build: 'cp314t-*' + cibw_ft: 'true' + os: 'windows-latest' + - name: 'py314-ft-nocov (macos/arm64)' + artifact: 'py314-ft-macos-arm64' + python: '3.14-dev' + toxpython: 'python3.14t' + python_arch: 'arm64-freethreaded' + tox_env: 'py314-ft-nocov' + cibw_arch: 'arm64' + cibw_build: 'cp314t-*' + cibw_ft: 'true' + os: 'macos-latest' - name: 'pypy39-cover (ubuntu/x86_64)' artifact: 'pypy39-ubuntu-x86_64' python: 'pypy-3.9' diff --git a/setup.py b/setup.py index 2cd958f..284834c 100755 --- a/setup.py +++ b/setup.py @@ -111,6 +111,7 @@ def read(*names, **kwargs): 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Programming Language :: Python :: 3.13', + 'Programming Language :: Python :: 3.14', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', # uncomment if you test on these interpreters: diff --git a/tests/test_async_py3.py b/tests/test_async_py3.py index 0d9450b..86f5f9c 100644 --- a/tests/test_async_py3.py +++ b/tests/test_async_py3.py @@ -498,7 +498,7 @@ def test_await_1(lop): async def foo(): await 1 - with pytest.raises(TypeError, match='object int can.t.*await'): + with pytest.raises(TypeError, match='int.*can.t.*await'): run_async(lop.Proxy(foo)) @@ -506,7 +506,7 @@ def test_await_2(lop): async def foo(): await [] - with pytest.raises(TypeError, match='object list can.t.*await'): + with pytest.raises(TypeError, match='list.*can.t.*await'): run_async(lop.Proxy(foo)) @@ -1733,6 +1733,8 @@ async def f(): pass finally: loop.close() - asyncio.set_event_loop_policy(None) + with warnings.catch_warnings(): + warnings.simplefilter('ignore', DeprecationWarning) + asyncio.set_event_loop_policy(None) assert buffer == [1, 2, 'MyException'] diff --git a/tox.ini b/tox.ini index dbe24b9..f62f01f 100644 --- a/tox.ini +++ b/tox.ini @@ -14,7 +14,7 @@ envlist = clean, check, docs, - {py39,py310,py311,py312,py313,py313-ft,pypy39,pypy310}-{cover,nocov}, + {py39,py310,py311,py312,py313,py313-ft,py314,py314-ft,pypy39,pypy310}-{cover,nocov}, report ignore_basepython_conflict = true @@ -28,6 +28,8 @@ basepython = py312: {env:TOXPYTHON:python3.12} py313: {env:TOXPYTHON:python3.13} py313ft: {env:TOXPYTHON:python3.13t} + py314: {env:TOXPYTHON:python3.14} + py314ft: {env:TOXPYTHON:python3.14t} {bootstrap,clean,check,report,docs,codecov,coveralls,extension-coveralls}: {env:TOXPYTHON:python3} setenv = PYTHONPATH={toxinidir}/tests