mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Use importlib_metadata for Python 3.8, refs #2057
This commit is contained in:
parent
b7cf0200e2
commit
2da1a6acec
2 changed files with 7 additions and 4 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
import importlib.metadata
|
import importlib
|
||||||
import os
|
import os
|
||||||
import pluggy
|
import pluggy
|
||||||
import sys
|
import sys
|
||||||
|
|
@ -6,8 +6,10 @@ from . import hookspecs
|
||||||
|
|
||||||
if sys.version_info >= (3, 9):
|
if sys.version_info >= (3, 9):
|
||||||
import importlib.resources as importlib_resources
|
import importlib.resources as importlib_resources
|
||||||
|
import importlib.metadata as importlib_metadata
|
||||||
else:
|
else:
|
||||||
import importlib_resources
|
import importlib_resources
|
||||||
|
import importlib_metadata
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_PLUGINS = (
|
DEFAULT_PLUGINS = (
|
||||||
|
|
@ -40,7 +42,7 @@ if DATASETTE_LOAD_PLUGINS is not None:
|
||||||
name for name in DATASETTE_LOAD_PLUGINS.split(",") if name.strip()
|
name for name in DATASETTE_LOAD_PLUGINS.split(",") if name.strip()
|
||||||
]:
|
]:
|
||||||
try:
|
try:
|
||||||
distribution = importlib.metadata.distribution(package_name)
|
distribution = importlib_metadata.distribution(package_name)
|
||||||
entry_points = distribution.entry_points
|
entry_points = distribution.entry_points
|
||||||
for entry_point in entry_points:
|
for entry_point in entry_points:
|
||||||
if entry_point.group == "datasette":
|
if entry_point.group == "datasette":
|
||||||
|
|
@ -48,7 +50,7 @@ if DATASETTE_LOAD_PLUGINS is not None:
|
||||||
pm.register(mod, name=entry_point.name)
|
pm.register(mod, name=entry_point.name)
|
||||||
# Ensure name can be found in plugin_to_distinfo later:
|
# Ensure name can be found in plugin_to_distinfo later:
|
||||||
pm._plugin_distinfo.append((mod, distribution))
|
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))
|
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)
|
distinfo = plugin_to_distinfo.get(plugin)
|
||||||
if distinfo:
|
if distinfo:
|
||||||
plugin_info["version"] = distinfo.version
|
plugin_info["version"] = distinfo.version
|
||||||
plugin_info["name"] = distinfo.name
|
plugin_info["name"] = distinfo.name or distinfo.project_name
|
||||||
plugins.append(plugin_info)
|
plugins.append(plugin_info)
|
||||||
return plugins
|
return plugins
|
||||||
|
|
|
||||||
1
setup.py
1
setup.py
|
|
@ -49,6 +49,7 @@ setup(
|
||||||
"hupper>=1.9",
|
"hupper>=1.9",
|
||||||
"httpx>=0.20",
|
"httpx>=0.20",
|
||||||
'importlib_resources>=1.3.1; python_version < "3.9"',
|
'importlib_resources>=1.3.1; python_version < "3.9"',
|
||||||
|
'importlib_metadata>=4.6; python_version < "3.9"',
|
||||||
"pint>=0.9",
|
"pint>=0.9",
|
||||||
"pluggy>=1.0",
|
"pluggy>=1.0",
|
||||||
"uvicorn>=0.11",
|
"uvicorn>=0.11",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue