diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1bf478f..8f50166 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,7 +29,7 @@ jobs: - name: Install requirements run: | python -m pip install --upgrade pip - pip install --upgrade setuptools wheel setuptools-scm[toml] importlib-metadata + pip install --upgrade setuptools wheel setuptools-scm[toml] pip install flake8 pytest pytest-cov pytz if [ -f requirements.txt ]; then pip install -r requirements.txt; fi pip install . diff --git a/CHANGELOG.rst b/CHANGELOG.rst index bf3f764..b89c5a7 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -38,6 +38,25 @@ Security ^^^^^^^^ +[Unreleased] +------------ + + +Added +^^^^^ + +- Test with Python 3.14 in CI workflow + + +Removed +^^^^^^^ + +- Dropped support for Python 3.7 and 3.8 in CI workflow. ``importlib.metadata`` + (used for storage broker entry-point discovery) is only available in the + standard library from Python 3.8 onwards, and ``actions/setup-python`` no + longer provides 3.7/3.8 builds on ``ubuntu-latest`` + + [3.19.0] - 2024-12-16 --------------------- diff --git a/dtoolcore/__init__.py b/dtoolcore/__init__.py index 0451c06..69b1e94 100644 --- a/dtoolcore/__init__.py +++ b/dtoolcore/__init__.py @@ -3,7 +3,6 @@ """ import os -import sys import datetime import logging @@ -62,9 +61,11 @@ def _generate_storage_broker_lookup(): from importlib.metadata import entry_points eps = entry_points() - if sys.version_info >= (3, 10): + if hasattr(eps, 'select'): + # Python 3.10+ / importlib_metadata >= 3.6 entrypoints = eps.select(group="dtool.storage_brokers") else: + # Python 3.9 and earlier - eps is a dict entrypoints = eps.get("dtool.storage_brokers", []) for entrypoint in entrypoints: