feat: python 3.13 support (#291)

This commit is contained in:
J. Nick Koston
2024-08-21 07:19:07 -05:00
committed by GitHub
parent 705ad28ce7
commit 45c0e7491d
7 changed files with 25 additions and 12 deletions

View File

@@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/setup-python@v3 - uses: actions/setup-python@v5
with: with:
python-version: "3.9" python-version: "3.9"
- uses: pre-commit/action@v2.0.3 - uses: pre-commit/action@v2.0.3
@@ -41,6 +41,7 @@ jobs:
- "3.10" - "3.10"
- "3.11" - "3.11"
- "3.12" - "3.12"
- "3.13"
os: os:
- ubuntu-latest - ubuntu-latest
extension: extension:
@@ -56,10 +57,11 @@ jobs:
- name: Install poetry - name: Install poetry
run: pipx install poetry run: pipx install poetry
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v5
with: with:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}
cache: "poetry" cache: "poetry"
allow-prereleases: true
- name: Install Dependencies - name: Install Dependencies
run: | run: |
if [ "${{ matrix.extension }}" = "skip_cython" ]; then if [ "${{ matrix.extension }}" = "skip_cython" ]; then
@@ -107,7 +109,7 @@ jobs:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
os: [ubuntu-20.04] os: [ubuntu-latest]
arch: arch:
- "x86_64" - "x86_64"
- "aarch64" - "aarch64"
@@ -126,7 +128,7 @@ jobs:
# Used to host cibuildwheel # Used to host cibuildwheel
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v5
- name: Install python-semantic-release - name: Install python-semantic-release
run: python -m pip install python-semantic-release==7.34.6 run: python -m pip install python-semantic-release==7.34.6
@@ -143,7 +145,7 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- name: Install cibuildwheel - name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.19.1 run: python -m pip install cibuildwheel==2.20.0
- name: Build wheels - name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse run: python -m cibuildwheel --output-dir wheelhouse

View File

@@ -13,6 +13,11 @@ classifiers = [
"Natural Language :: English", "Natural Language :: English",
"Operating System :: OS Independent", "Operating System :: OS Independent",
"Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
] ]
packages = [ packages = [
{ include = "dbus_fast", from = "src" }, { include = "dbus_fast", from = "src" },

View File

@@ -126,7 +126,7 @@ async def test_aio_proxy_object():
@pytest.mark.skipif( @pytest.mark.skipif(
sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10/py3.11" sys.version_info[:3][1] in (10, 11, 12, 13), reason="segfaults on py3.10/py3.11"
) )
@pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi)
def test_glib_proxy_object(): def test_glib_proxy_object():

View File

@@ -97,7 +97,8 @@ async def test_aio_properties():
@pytest.mark.skipif( @pytest.mark.skipif(
sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10,py3.11,py3.12" sys.version_info[:3][1] in (10, 11, 12, 13),
reason="segfaults on py3.10,py3.11,py3.12,py3.13",
) )
@pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi)
def test_glib_properties(): def test_glib_properties():

View File

@@ -47,7 +47,8 @@ async def test_aio_big_message():
@pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi)
@pytest.mark.skipif( @pytest.mark.skipif(
sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10,py3.11,py3.12" sys.version_info[:3][1] in (10, 11, 12, 13),
reason="segfaults on py3.10,py3.11,py3.12,py3.13",
) )
def test_glib_big_message(): def test_glib_big_message():
"this tests that nonblocking reads and writes actually work for glib" "this tests that nonblocking reads and writes actually work for glib"

View File

@@ -14,7 +14,8 @@ if has_gi:
@pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi)
@pytest.mark.skipif( @pytest.mark.skipif(
sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10,py3.11,py3.12" sys.version_info[:3][1] in (10, 11, 12, 13),
reason="segfaults on py3.10,py3.11,py3.12,py3.13",
) )
def test_standard_interfaces(): def test_standard_interfaces():
bus = MessageBus().connect_sync() bus = MessageBus().connect_sync()
@@ -57,7 +58,8 @@ def test_standard_interfaces():
@pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi)
@pytest.mark.skipif( @pytest.mark.skipif(
sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10,py3.11,py3.12" sys.version_info[:3][1] in (10, 11, 12, 13),
reason="segfaults on py3.10,py3.11,py3.12,py3.13",
) )
def test_sending_messages_between_buses(): def test_sending_messages_between_buses():
bus1 = MessageBus().connect_sync() bus1 = MessageBus().connect_sync()
@@ -127,7 +129,8 @@ def test_sending_messages_between_buses():
@pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi)
@pytest.mark.skipif( @pytest.mark.skipif(
sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10,py3.11,py3.12" sys.version_info[:3][1] in (10, 11, 12, 13),
reason="segfaults on py3.10,py3.11,py3.12,py3.13",
) )
def test_sending_signals_between_buses(): def test_sending_signals_between_buses():
bus1 = MessageBus().connect_sync() bus1 = MessageBus().connect_sync()

View File

@@ -71,7 +71,8 @@ async def test_name_requests():
@pytest.mark.skipif( @pytest.mark.skipif(
sys.version_info[:3][1] in (10, 11, 12), reason="segfaults on py3.10,py3.11,py3.12" sys.version_info[:3][1] in (10, 11, 12, 13),
reason="segfaults on py3.10,py3.11,py3.12,py3.13",
) )
@pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi) @pytest.mark.skipif(not has_gi, reason=skip_reason_no_gi)
def test_request_name_glib(): def test_request_name_glib():