From 353bb99e2c592c414474c02928f0d21a03e9ed98 Mon Sep 17 00:00:00 2001 From: Ariana-B <40238244+Ariana-B@users.noreply.github.com> Date: Mon, 3 Jul 2023 15:16:40 +1000 Subject: [PATCH] Use entry_points selection interface for <3.10 compatibility (#1469) * use entry_points selection interface for <3.10 compatibility * use importlib_metadata if python<3.10 --------- Co-authored-by: Ariana Barzinpour --- datacube/drivers/driver_cache.py | 5 ++++- docs/click_utils.py | 5 ++++- docs/requirements.txt | 8 +++++--- setup.py | 1 + 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/datacube/drivers/driver_cache.py b/datacube/drivers/driver_cache.py index 0e026a9664..6c40a94622 100644 --- a/datacube/drivers/driver_cache.py +++ b/datacube/drivers/driver_cache.py @@ -46,7 +46,10 @@ def safe_load(ep): return driver def resolve_all(group: str) -> Iterable[Tuple[str, Any]]: - from importlib.metadata import entry_points + try: + from importlib_metadata import entry_points + except ModuleNotFoundError: + from importlib.metadata import entry_points for ep in entry_points(group=group): driver = safe_load(ep) if driver is not None: diff --git a/docs/click_utils.py b/docs/click_utils.py index 434af6e0e7..fca8435cea 100644 --- a/docs/click_utils.py +++ b/docs/click_utils.py @@ -2,7 +2,6 @@ # # Copyright (c) 2015-2023 ODC Contributors # SPDX-License-Identifier: Apache-2.0 -from importlib.metadata import entry_points from docutils.nodes import literal_block, section, title, make_id from sphinx.domains import Domain from docutils.parsers.rst import Directive @@ -34,6 +33,10 @@ def find_script_callable_from_env(name, env): def find_script_callable(name): + try: + from importlib_metadata import entry_points + except ModuleNotFoundError: + from importlib.metadata import entry_points return list(entry_points( group='console_scripts', name=name))[0].load() diff --git a/docs/requirements.txt b/docs/requirements.txt index ce8a5dcc8d..49ca72d6d6 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # pip-compile --extra=doc,s3 --output-file=docs/requirements.txt @@ -70,6 +70,8 @@ dask[array]==2023.1.1 # distributed defusedxml==0.7.1 # via nbconvert +deprecat==2.1.1 + # via datacube (setup.py) distributed==2023.1.1 # via datacube (setup.py) docutils==0.17.1 @@ -216,8 +218,6 @@ requests==2.28.2 # via sphinx ruamel-yaml==0.17.21 # via datacube (setup.py) -ruamel-yaml-clib==0.2.7 - # via ruamel-yaml s3transfer==0.6.0 # via boto3 shapely==2.0.1 @@ -294,6 +294,8 @@ webencodings==0.5.1 # via # bleach # tinycss2 +wrapt==1.15.0 + # via deprecat xarray==2023.1.0 # via datacube (setup.py) zict==2.2.0 diff --git a/setup.py b/setup.py index 4593a905be..87115bad49 100755 --- a/setup.py +++ b/setup.py @@ -112,6 +112,7 @@ 'xarray>=0.9', # >0.9 fixes most problems with `crs` attributes being lost 'packaging', 'deprecat', + 'importlib_metadata>3.5;python_version<"3.10"', ], extras_require=extras_require, tests_require=tests_require,