diff --git a/.circleci/config.yml b/.circleci/config.yml index 7b3376afc7..c0b76b26c4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -209,7 +209,7 @@ jobs: # Install prerequisites mkdir /logs # Create and activate conda environment - mamba create -y --name esmvaltool 'python=3.11' + mamba create -y --name esmvaltool 'python=3.12' set +x; conda activate esmvaltool; set -x # Install mamba install -y esmvalcore diff --git a/.github/workflows/install-from-conda.yml b/.github/workflows/install-from-conda.yml index 4f860365f9..85ab40e3f8 100644 --- a/.github/workflows/install-from-conda.yml +++ b/.github/workflows/install-from-conda.yml @@ -40,7 +40,7 @@ jobs: if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks strategy: matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13"] # fail-fast set to False allows all other tests # in the workflow to run regardless of any fail fail-fast: false @@ -76,7 +76,7 @@ jobs: if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks strategy: matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13"] architecture: ["x64"] # need to force Intel, arm64 builds have issues fail-fast: false name: OSX Python ${{ matrix.python-version }} diff --git a/.github/workflows/install-from-condalock-file.yml b/.github/workflows/install-from-condalock-file.yml index 98df15c49e..2ecda585f3 100644 --- a/.github/workflows/install-from-condalock-file.yml +++ b/.github/workflows/install-from-condalock-file.yml @@ -30,7 +30,7 @@ jobs: if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks strategy: matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13"] fail-fast: false name: Linux Python ${{ matrix.python-version }} steps: diff --git a/.github/workflows/install-from-pypi.yml b/.github/workflows/install-from-pypi.yml index 378fa8ecb5..9649423ee1 100644 --- a/.github/workflows/install-from-pypi.yml +++ b/.github/workflows/install-from-pypi.yml @@ -40,7 +40,7 @@ jobs: if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks strategy: matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13"] # fail-fast set to False allows all other tests # in the workflow to run regardless of any fail fail-fast: false @@ -79,7 +79,7 @@ jobs: if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks strategy: matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13"] architecture: ["x64"] # need to force Intel, arm64 builds have issues fail-fast: false name: OSX Python ${{ matrix.python-version }} diff --git a/.github/workflows/install-from-source.yml b/.github/workflows/install-from-source.yml index 028068acc9..bf6133a40a 100644 --- a/.github/workflows/install-from-source.yml +++ b/.github/workflows/install-from-source.yml @@ -38,7 +38,7 @@ jobs: if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks strategy: matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13"] fail-fast: false name: Linux Python ${{ matrix.python-version }} steps: @@ -76,7 +76,7 @@ jobs: if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks strategy: matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13"] architecture: ["x64"] # need to force Intel, arm64 builds have issues fail-fast: false name: OSX Python ${{ matrix.python-version }} diff --git a/.github/workflows/run-tests-monitor.yml b/.github/workflows/run-tests-monitor.yml index 281a8f58ae..a71967b311 100644 --- a/.github/workflows/run-tests-monitor.yml +++ b/.github/workflows/run-tests-monitor.yml @@ -23,7 +23,7 @@ jobs: if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks strategy: matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13"] fail-fast: false name: Linux Python ${{ matrix.python-version }} steps: @@ -56,7 +56,7 @@ jobs: if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks strategy: matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13"] architecture: ["x64"] # need to force Intel, arm64 builds have issues fail-fast: false name: OSX Python ${{ matrix.python-version }} diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 625e3b9c95..39c1e0ac50 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -40,7 +40,7 @@ jobs: if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks strategy: matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13"] fail-fast: false name: Linux Python ${{ matrix.python-version }} steps: @@ -77,7 +77,7 @@ jobs: if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks strategy: matrix: - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.12", "3.13"] architecture: ["x64"] # need to force Intel, arm64 builds have issues fail-fast: false name: OSX Python ${{ matrix.python-version }} diff --git a/environment.yml b/environment.yml index 78102cc380..ab1acac982 100644 --- a/environment.yml +++ b/environment.yml @@ -40,7 +40,7 @@ dependencies: - psutil - py-cordex - pybtex - - python >=3.11 + - python >=3.12 - python-stratify >=0.3 - pyyaml - requests diff --git a/esmvalcore/preprocessor/__init__.py b/esmvalcore/preprocessor/__init__.py index de4337f948..8b48058d64 100644 --- a/esmvalcore/preprocessor/__init__.py +++ b/esmvalcore/preprocessor/__init__.py @@ -6,7 +6,7 @@ import inspect import logging from pprint import pformat -from typing import TYPE_CHECKING, Any, TypeAlias +from typing import TYPE_CHECKING, Any from iris.cube import Cube, CubeList @@ -672,7 +672,7 @@ def group(self, keys: list) -> str: return "_".join(identifier) -PreprocessorItem: TypeAlias = PreprocessorFile | Cube | DataElement +type PreprocessorItem = PreprocessorFile | Cube | DataElement def _apply_multimodel( diff --git a/pyproject.toml b/pyproject.toml index 22721ed465..302cbcee31 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,6 @@ classifiers = [ "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering", @@ -75,7 +74,7 @@ dependencies = [ description = "A community tool for pre-processing data from Earth system models in CMIP and running analysis scripts" license = {text = "Apache License, Version 2.0"} name = "ESMValCore" -requires-python = ">=3.11" +requires-python = ">=3.12" [project.optional-dependencies] test = [