summaryrefslogtreecommitdiff
path: root/sphinx/theming.py
diff options
context:
space:
mode:
authorThomas Kluyver <thomas@kluyver.me.uk>2021-12-22 18:13:19 +0000
committerThomas Kluyver <thomas@kluyver.me.uk>2021-12-22 18:13:19 +0000
commit6c5c66bbb19cb2dcfdc25da97d4d839eec139db7 (patch)
tree5d1e92fe9efeb3ac536d2e6ddb9bf386c5b3714c /sphinx/theming.py
parent40db5694faf8d74d34675a686960ca76d984042b (diff)
downloadsphinx-git-6c5c66bbb19cb2dcfdc25da97d4d839eec139db7.tar.gz
Replace pkg_resources with importlib.metadata
Diffstat (limited to 'sphinx/theming.py')
-rw-r--r--sphinx/theming.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/sphinx/theming.py b/sphinx/theming.py
index f5004022d..763a657fb 100644
--- a/sphinx/theming.py
+++ b/sphinx/theming.py
@@ -16,7 +16,10 @@ from os import path
from typing import TYPE_CHECKING, Any, Dict, List
from zipfile import ZipFile
-import pkg_resources
+try: # Python < 3.10 (backport)
+ from importlib_metadata import entry_points
+except ImportError:
+ from importlib.metadata import entry_points
from sphinx import package_dir
from sphinx.errors import ThemeError
@@ -201,12 +204,12 @@ class HTMLThemeFactory:
Sphinx refers to ``sphinx_themes`` entry_points.
"""
# look up for new styled entry_points at first
- entry_points = pkg_resources.iter_entry_points('sphinx.html_themes', name)
+ theme_eps = entry_points(group='sphinx.html_themes')
try:
- entry_point = next(entry_points)
- self.app.registry.load_extension(self.app, entry_point.module_name)
+ entry_point = theme_eps[name]
+ self.app.registry.load_extension(self.app, entry_point.module)
return
- except StopIteration:
+ except KeyError:
pass
def find_themes(self, theme_path: str) -> Dict[str, str]: