Skip to content

Commit

Permalink
Replace pkg_resources with importlib.metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
takluyver committed Dec 22, 2021
1 parent 40db569 commit 6c5c66b
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 12 deletions.
3 changes: 1 addition & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
'alabaster>=0.7,<0.8',
'imagesize',
'requests>=2.5.0',
'setuptools',
'packaging',
"importlib-metadata>=4.4; python_version < '3.10'",
]

extras_require = {
Expand All @@ -47,7 +47,6 @@
'mypy>=0.920',
'docutils-stubs',
"types-typed-ast",
"types-pkg_resources",
"types-requests",
],
'test': [
Expand Down
13 changes: 8 additions & 5 deletions sphinx/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@
from docutils.parsers import Parser
from docutils.parsers.rst import Directive
from docutils.transforms import Transform
from pkg_resources import iter_entry_points
try:
from importlib_metadata import entry_points
except ImportError:
from importlib.metadata import entry_points

from sphinx.builders import Builder
from sphinx.config import Config
Expand Down Expand Up @@ -143,14 +146,14 @@ def preload_builder(self, app: "Sphinx", name: str) -> None:
return

if name not in self.builders:
entry_points = iter_entry_points('sphinx.builders', name)
builder_eps = entry_points(group='sphinx.builders')
try:
entry_point = next(entry_points)
except StopIteration as exc:
entry_point = builder_eps[name]
except KeyError as exc:
raise SphinxError(__('Builder name %s not registered or available'
' through entry point') % name) from exc

self.load_extension(app, entry_point.module_name)
self.load_extension(app, entry_point.module)

def create_builder(self, app: "Sphinx", name: str) -> Builder:
if name not in self.builders:
Expand Down
13 changes: 8 additions & 5 deletions sphinx/theming.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@
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
Expand Down Expand Up @@ -201,12 +204,12 @@ def load_external_theme(self, name: str) -> None:
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]:
Expand Down

0 comments on commit 6c5c66b

Please sign in to comment.