diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e296951c7c4..713da24f577 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -47,7 +47,7 @@ jobs: matrix: os: ["ubuntu-latest", "macos-latest", "windows-latest"] # Bookend python versions - python-version: ["3.10", "3.12"] + python-version: ["3.10", "3.13"] env: [""] include: # Minimum python version: @@ -59,14 +59,13 @@ jobs: os: ubuntu-latest # Latest python version: - env: "all-but-numba" - python-version: "3.12" + python-version: "3.13" os: ubuntu-latest - env: "all-but-dask" - # Not 3.12 because of pint - python-version: "3.11" + python-version: "3.12" os: ubuntu-latest - env: "flaky" - python-version: "3.12" + python-version: "3.13" os: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -78,10 +77,10 @@ jobs: if [[ ${{ matrix.os }} == windows* ]] ; then - if [[ ${{ matrix.python-version }} != "3.13" ]]; then + if [[ ${{ matrix.python-version }} != "3.14" ]]; then echo "CONDA_ENV_FILE=ci/requirements/environment-windows.yml" >> $GITHUB_ENV else - echo "CONDA_ENV_FILE=ci/requirements/environment-windows-3.13.yml" >> $GITHUB_ENV + echo "CONDA_ENV_FILE=ci/requirements/environment-windows-3.14.yml" >> $GITHUB_ENV fi elif [[ "${{ matrix.env }}" != "" ]] ; then @@ -98,10 +97,10 @@ jobs: echo "PYTEST_ADDOPTS=-W default" >> $GITHUB_ENV fi else - if [[ ${{ matrix.python-version }} != "3.13" ]]; then + if [[ ${{ matrix.python-version }} != "3.14" ]]; then echo "CONDA_ENV_FILE=ci/requirements/environment.yml" >> $GITHUB_ENV else - echo "CONDA_ENV_FILE=ci/requirements/environment-3.13.yml" >> $GITHUB_ENV + echo "CONDA_ENV_FILE=ci/requirements/environment-3.14.yml" >> $GITHUB_ENV fi fi diff --git a/ci/requirements/environment-3.13.yml b/ci/requirements/environment-3.14.yml similarity index 90% rename from ci/requirements/environment-3.13.yml rename to ci/requirements/environment-3.14.yml index 55ece0d6aea..cca3a7a746b 100644 --- a/ci/requirements/environment-3.13.yml +++ b/ci/requirements/environment-3.14.yml @@ -33,6 +33,7 @@ dependencies: - pip - pooch - pre-commit + - pyarrow # pandas raises a deprecation warning without this, breaking doctests - pydap - pytest - pytest-cov diff --git a/ci/requirements/environment-windows-3.13.yml b/ci/requirements/environment-windows-3.14.yml similarity index 100% rename from ci/requirements/environment-windows-3.13.yml rename to ci/requirements/environment-windows-3.14.yml diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 50b59bda88a..6a3666d58ac 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -23,6 +23,8 @@ New Features ~~~~~~~~~~~~ - Allow kwargs in :py:meth:`DataTree.map_over_datasets` and :py:func:`map_over_datasets` (:issue:`10009`, :pull:`10012`). By `Kai Mühlbauer `_. +- support python 3.13 (no free-threading) (:issue:`9664`, :pull:`9681`) + By `Justus Magin `_. Breaking changes ~~~~~~~~~~~~~~~~ diff --git a/pyproject.toml b/pyproject.toml index fd4a4293882..afb0f9a0a51 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,6 +12,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering", ] description = "N-D labeled arrays and datasets in Python"