diff --git a/.github/workflows/all-checks.yml b/.github/workflows/all-checks.yml index 4c981d6c8..694097a9e 100644 --- a/.github/workflows/all-checks.yml +++ b/.github/workflows/all-checks.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: os: [ windows-latest, ubuntu-latest ] - python-version: [ "3.9", "3.10", "3.11" ] + python-version: [ "3.9", "3.10", "3.11", "3.12" ] uses: ./.github/workflows/e2e-tests.yml with: os: ${{ matrix.os }} @@ -24,7 +24,7 @@ jobs: strategy: matrix: os: [ windows-latest, ubuntu-latest ] - python-version: [ "3.9", "3.10", "3.11" ] + python-version: [ "3.9", "3.10", "3.11", "3.12" ] uses: ./.github/workflows/unit-tests.yml with: os: ${{ matrix.os }} @@ -34,7 +34,7 @@ jobs: strategy: matrix: os: [ ubuntu-latest ] - python-version: [ "3.9", "3.10", "3.11" ] + python-version: [ "3.9", "3.10", "3.11", "3.12" ] uses: ./.github/workflows/lint.yml with: os: ${{ matrix.os }} diff --git a/.github/workflows/build-backend.yml b/.github/workflows/build-backend.yml index 70a869185..970d574c4 100644 --- a/.github/workflows/build-backend.yml +++ b/.github/workflows/build-backend.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: os: [ windows-latest, ubuntu-latest ] - python-version: [ "3.9", "3.10", "3.11" ] + python-version: [ "3.9", "3.10", "3.11", "3.12" ] uses: ./.github/workflows/e2e-tests.yml with: os: ${{ matrix.os }} @@ -27,7 +27,7 @@ jobs: strategy: matrix: os: [ windows-latest, ubuntu-latest ] - python-version: [ "3.9", "3.10", "3.11" ] + python-version: [ "3.9", "3.10", "3.11", "3.12" ] uses: ./.github/workflows/unit-tests.yml with: os: ${{ matrix.os }} @@ -37,7 +37,7 @@ jobs: strategy: matrix: os: [ ubuntu-latest ] - python-version: [ "3.9", "3.10", "3.11" ] + python-version: [ "3.9", "3.10", "3.11", "3.12" ] uses: ./.github/workflows/lint.yml with: os: ${{ matrix.os }} diff --git a/.github/workflows/docs-only-checks.yml b/.github/workflows/docs-only-checks.yml index bd09e387e..361df04c3 100644 --- a/.github/workflows/docs-only-checks.yml +++ b/.github/workflows/docs-only-checks.yml @@ -19,7 +19,7 @@ jobs: strategy: matrix: os: [ ubuntu-latest ] - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.9", "3.10", "3.11", "3.12" ] uses: ./.github/workflows/lint.yml with: os: ${{ matrix.os }} diff --git a/RELEASE.md b/RELEASE.md index 0a15a496f..a1dd9159f 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -10,6 +10,7 @@ Please follow the established format: ## Major features and improvements +- Add support for Python 3.12 - Update Kedro-Viz telemetry for opt-out model (#2022) - Introduce `behaviour` prop object with `reFocus` prop (#2161) diff --git a/package/features/environment.py b/package/features/environment.py index 38fb8e0e6..73c75f26b 100644 --- a/package/features/environment.py +++ b/package/features/environment.py @@ -41,7 +41,7 @@ def before_scenario(context, scenario): if ( kedro_version - and kedro_version <= parse("0.18.12") + and kedro_version < parse("0.18.12") and sys.version_info >= (3, 11) ): print( diff --git a/package/features/steps/lower_requirements.txt b/package/features/steps/lower_requirements.txt index ab38585ac..ff9bce834 100644 --- a/package/features/steps/lower_requirements.txt +++ b/package/features/steps/lower_requirements.txt @@ -1,13 +1,15 @@ ipython==7.0.0 fastapi==0.100.0 -fsspec==2021.4 +fsspec==2021.4; python_version < '3.12' +fsspec==2021.06.01; python_version >= '3.12' aiofiles==22.1.0 uvicorn[standard]==0.22.0 watchfiles==0.24.0 plotly==4.8 packaging==23.0 pandas==1.3; python_version < '3.10' -pandas==1.5; python_version >= '3.10' +pandas==1.5; python_version >= '3.10' and python_version < '3.12' +pandas==2.1.1; python_version >= '3.12' sqlalchemy==1.4 strawberry-graphql==0.192.0 networkx==2.5 diff --git a/package/kedro_viz/__init__.py b/package/kedro_viz/__init__.py index 806f783d9..d19e2fb8e 100644 --- a/package/kedro_viz/__init__.py +++ b/package/kedro_viz/__init__.py @@ -10,7 +10,7 @@ class KedroVizPythonVersionWarning(UserWarning): """Custom class for warnings about incompatibilities with Python versions.""" -if sys.version_info >= (3, 12): +if sys.version_info >= (3, 13): warnings.warn( """Please be advised that Kedro Viz is not yet fully compatible with the Python version you are currently using.""", diff --git a/package/tests/test_import.py b/package/tests/test_import.py index e9e918c6c..2198ccdcc 100644 --- a/package/tests/test_import.py +++ b/package/tests/test_import.py @@ -4,8 +4,8 @@ def test_import_kedro_viz_with_no_official_support_emits_warning(mocker): - """Test importing kedro Viz with python>=3.12 and controlled warnings should work""" - mocker.patch("kedro_viz.sys.version_info", (3, 12)) + """Test importing kedro Viz with python>=3.13 and controlled warnings should work""" + mocker.patch("kedro_viz.sys.version_info", (3, 13)) # We use the parent class to avoid issues with `exec_module` with pytest.warns(UserWarning) as record: