diff --git a/.github/workflows/_checks.yaml b/.github/workflows/_checks.yaml index f55bbc3c..7a72a6c4 100644 --- a/.github/workflows/_checks.yaml +++ b/.github/workflows/_checks.yaml @@ -42,13 +42,13 @@ jobs: name: Lint check uses: apify/workflows/.github/workflows/python_lint_check.yaml@main with: - python_versions: '["3.11", "3.12", "3.13", "3.14"]' + python_versions: '["3.11", "3.12", "3.13", "3.14", "3.15"]' type_check: name: Type check uses: apify/workflows/.github/workflows/python_type_check.yaml@main with: - python_versions: '["3.11", "3.12", "3.13", "3.14"]' + python_versions: '["3.11", "3.12", "3.13", "3.14", "3.15"]' docstrings_check: name: Docstrings check @@ -159,9 +159,9 @@ jobs: uses: apify/workflows/.github/workflows/python_unit_tests.yaml@main secrets: inherit with: - python_versions: '["3.11", "3.12", "3.13", "3.14"]' + python_versions: '["3.11", "3.12", "3.13", "3.14", "3.15"]' operating_systems: '["ubuntu-latest", "windows-latest"]' - python_version_for_codecov: "3.14" + python_version_for_codecov: "3.15" operating_system_for_codecov: ubuntu-latest tests_concurrency: "16" @@ -181,7 +181,7 @@ jobs: strategy: matrix: os: ["ubuntu-latest"] - python-version: ["3.11", "3.14"] + python-version: ["3.11", "3.15"] runs-on: ${{ matrix.os }} @@ -216,7 +216,7 @@ jobs: if: >- ${{ matrix.os == 'ubuntu-latest' && - matrix.python-version == '3.14' && + matrix.python-version == '3.15' && env.CODECOV_TOKEN != '' }} uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1 diff --git a/pyproject.toml b/pyproject.toml index 2eae4d99..607d487a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,6 +20,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "Topic :: Software Development :: Libraries", ] keywords = ["apify", "api", "client", "automation", "crawling", "scraping"] diff --git a/tests/unit/test_model_generation.py b/tests/unit/test_model_generation.py index 29db8ff8..54a5ac32 100644 --- a/tests/unit/test_model_generation.py +++ b/tests/unit/test_model_generation.py @@ -5,6 +5,8 @@ import sys from typing import TYPE_CHECKING +import pytest + from scripts.postprocess_generated_models import ( REPO_ROOT, RESOURCE_INPUT_TYPEDDICTS, @@ -56,6 +58,10 @@ def run_datamodel_codegen(*args: str) -> None: ) +@pytest.mark.skipif( + sys.version_info >= (3, 15), + reason='datamodel-code-generator fails to import on Python 3.15 (koxudaxi/datamodel-code-generator#4609)', +) def test_model_generation_pipeline(tmp_path: Path) -> None: """The `generate-models` pipeline (both codegen passes and post-processing) runs on a minimal spec.""" # PR CI never runs `poe generate-models`, so this catches a dependency update that breaks the generator.