From 823d9c0d483868413a786b9e444fb785d4d432e0 Mon Sep 17 00:00:00 2001 From: Wei Ji <23487320+weiji14@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:02:48 +1300 Subject: [PATCH] Add support for Python 3.13 (#3490) Python 3.13 has been released on 7 Oct 2024, changelog is at https://docs.python.org/3.13/whatsnew/3.13.html --------- Co-authored-by: Dongdong Tian --- .github/workflows/benchmarks.yml | 2 +- .github/workflows/cache_data.yaml | 2 +- .github/workflows/ci_docs.yml | 4 ++-- .github/workflows/ci_doctests.yaml | 2 +- .github/workflows/ci_tests.yaml | 6 +++--- .github/workflows/ci_tests_dev.yaml | 2 +- .github/workflows/format-command.yml | 2 +- .github/workflows/publish-to-pypi.yml | 2 +- .github/workflows/style_checks.yaml | 2 +- .github/workflows/type_checks.yml | 2 +- ci/requirements/docs.yml | 2 +- doc/install.md | 4 ++-- environment.yml | 2 +- pyproject.toml | 1 + 14 files changed, 18 insertions(+), 17 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 047c43c264d..7d643ed1429 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -58,7 +58,7 @@ jobs: cache-environment-key: micromamba-environment-${{ steps.date.outputs.date }} create-args: >- gmt=6.5.0 - python=3.12 + python=3.13 numpy pandas xarray diff --git a/.github/workflows/cache_data.yaml b/.github/workflows/cache_data.yaml index 95fc9992dd5..7e12513b0e9 100644 --- a/.github/workflows/cache_data.yaml +++ b/.github/workflows/cache_data.yaml @@ -51,7 +51,7 @@ jobs: - conda-forge - nodefaults create-args: >- - python=3.12 + python=3.13 gmt=6.5.0 numpy pandas diff --git a/.github/workflows/ci_docs.yml b/.github/workflows/ci_docs.yml index 681867f84e2..eb5497143bc 100644 --- a/.github/workflows/ci_docs.yml +++ b/.github/workflows/ci_docs.yml @@ -55,7 +55,7 @@ jobs: # Is it a draft Pull Request (true or false)? isDraft: - ${{ github.event.pull_request.draft }} - # Only run one job (Ubuntu + Python 3.12) for draft PRs + # Only run jobs on Ubuntu for draft PRs exclude: - os: macos-latest isDraft: true @@ -92,7 +92,7 @@ jobs: # environment cache is persistent for one week. cache-environment-key: micromamba-environment-${{ steps.date.outputs.date }} create-args: >- - python=3.12 + python=3.13 gmt=6.5.0 ghostscript=10.04.0 numpy diff --git a/.github/workflows/ci_doctests.yaml b/.github/workflows/ci_doctests.yaml index 1b594f194d9..e3a9f2e6d98 100644 --- a/.github/workflows/ci_doctests.yaml +++ b/.github/workflows/ci_doctests.yaml @@ -50,7 +50,7 @@ jobs: - conda-forge - nodefaults create-args: >- - python=3.12 + python=3.13 gmt=6.5.0 numpy pandas diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index fe31e6b2ec2..351f918620d 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -56,7 +56,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.10', '3.12'] + python-version: ['3.10', '3.13'] os: [ubuntu-latest, macos-latest, windows-latest] # Is it a draft Pull Request (true or false)? isDraft: @@ -74,8 +74,8 @@ jobs: pandas-version: '=2.0' xarray-version: '=2023.04' optional-packages: ' contextily geopandas<1 ipython pyarrow rioxarray sphinx-gallery' - # Python 3.12 + core packages (latest versions) + optional packages - - python-version: '3.12' + # Python 3.13 + core packages (latest versions) + optional packages + - python-version: '3.13' numpy-version: '2.2' pandas-version: '' xarray-version: '' diff --git a/.github/workflows/ci_tests_dev.yaml b/.github/workflows/ci_tests_dev.yaml index e96ee8ef689..a806c6ec41d 100644 --- a/.github/workflows/ci_tests_dev.yaml +++ b/.github/workflows/ci_tests_dev.yaml @@ -69,7 +69,7 @@ jobs: # environment cache is persistent for one week. cache-environment-key: micromamba-environment-${{ steps.date.outputs.date }} create-args: >- - python=3.12 + python=3.13 cmake make ninja diff --git a/.github/workflows/format-command.yml b/.github/workflows/format-command.yml index 9d43e0ae286..ceb2604ba2b 100644 --- a/.github/workflows/format-command.yml +++ b/.github/workflows/format-command.yml @@ -27,7 +27,7 @@ jobs: # Setup Python environment - uses: actions/setup-python@v5.3.0 with: - python-version: '3.12' + python-version: '3.13' # Install formatting tools - name: Install formatting tools diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 9be13e55254..2dbc12cbef1 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -53,7 +53,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5.3.0 with: - python-version: '3.12' + python-version: '3.13' - name: Install dependencies run: python -m pip install build diff --git a/.github/workflows/style_checks.yaml b/.github/workflows/style_checks.yaml index 4c5b4947c85..f15bcde0012 100644 --- a/.github/workflows/style_checks.yaml +++ b/.github/workflows/style_checks.yaml @@ -30,7 +30,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5.3.0 with: - python-version: '3.12' + python-version: '3.13' - name: Install packages run: | diff --git a/.github/workflows/type_checks.yml b/.github/workflows/type_checks.yml index 525735d72b1..dd5c49c5c31 100644 --- a/.github/workflows/type_checks.yml +++ b/.github/workflows/type_checks.yml @@ -39,7 +39,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5.3.0 with: - python-version: '3.12' + python-version: '3.13' - name: Install packages run: | diff --git a/ci/requirements/docs.yml b/ci/requirements/docs.yml index b47a7a86b37..29109bd9309 100644 --- a/ci/requirements/docs.yml +++ b/ci/requirements/docs.yml @@ -4,7 +4,7 @@ channels: - nodefaults dependencies: # Required dependencies - - python=3.12 + - python=3.13 - gmt=6.5.0 - ghostscript=10.04.0 - numpy diff --git a/doc/install.md b/doc/install.md index fc9251d5a1e..0323d4c021b 100644 --- a/doc/install.md +++ b/doc/install.md @@ -128,14 +128,14 @@ installed (we'll call it `pygmt` but feel free to change it to whatever you want ::: {tab-item} mamba :sync: mamba ``` -mamba create --name pygmt python=3.12 numpy pandas xarray netcdf4 packaging gmt +mamba create --name pygmt python=3.13 numpy pandas xarray netcdf4 packaging gmt ``` ::: ::: {tab-item} conda :sync: conda ``` -conda create --name pygmt python=3.12 numpy pandas xarray netcdf4 packaging gmt +conda create --name pygmt python=3.13 numpy pandas xarray netcdf4 packaging gmt ``` ::: :::: diff --git a/environment.yml b/environment.yml index 1684a4af2d6..3b1bcd6a5e3 100644 --- a/environment.yml +++ b/environment.yml @@ -3,7 +3,7 @@ channels: - conda-forge - nodefaults dependencies: - - python=3.12 + - python>=3.10 # Required dependencies - gmt=6.5.0 - ghostscript=10.04.0 diff --git a/pyproject.toml b/pyproject.toml index 81a9618f959..0f871dbcfd2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "License :: OSI Approved :: BSD License", ] dependencies = [