Use importlib_metadata for Python 3.8, refs #2057

pull/2200/head
Simon Willison 2023-09-21 13:26:13 -07:00
rodzic b7cf0200e2
commit 2da1a6acec
2 zmienionych plików z 7 dodań i 4 usunięć

Wyświetl plik

@ -1,4 +1,4 @@
import importlib.metadata
import importlib
import os
import pluggy
import sys
@ -6,8 +6,10 @@ from . import hookspecs
if sys.version_info >= (3, 9):
import importlib.resources as importlib_resources
import importlib.metadata as importlib_metadata
else:
import importlib_resources
import importlib_metadata
DEFAULT_PLUGINS = (
@ -40,7 +42,7 @@ if DATASETTE_LOAD_PLUGINS is not None:
name for name in DATASETTE_LOAD_PLUGINS.split(",") if name.strip()
]:
try:
distribution = importlib.metadata.distribution(package_name)
distribution = importlib_metadata.distribution(package_name)
entry_points = distribution.entry_points
for entry_point in entry_points:
if entry_point.group == "datasette":
@ -48,7 +50,7 @@ if DATASETTE_LOAD_PLUGINS is not None:
pm.register(mod, name=entry_point.name)
# Ensure name can be found in plugin_to_distinfo later:
pm._plugin_distinfo.append((mod, distribution))
except importlib.metadata.PackageNotFoundError:
except importlib_metadata.PackageNotFoundError:
sys.stderr.write("Plugin {} could not be found\n".format(package_name))
@ -86,6 +88,6 @@ def get_plugins():
distinfo = plugin_to_distinfo.get(plugin)
if distinfo:
plugin_info["version"] = distinfo.version
plugin_info["name"] = distinfo.name
plugin_info["name"] = distinfo.name or distinfo.project_name
plugins.append(plugin_info)
return plugins

Wyświetl plik

@ -49,6 +49,7 @@ setup(
"hupper>=1.9",
"httpx>=0.20",
'importlib_resources>=1.3.1; python_version < "3.9"',
'importlib_metadata>=4.6; python_version < "3.9"',
"pint>=0.9",
"pluggy>=1.0",
"uvicorn>=0.11",