mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Replace pkg_resources with importlib.metadata
This commit is contained in:
3
setup.py
3
setup.py
@@ -29,8 +29,8 @@ install_requires = [
|
||||
'alabaster>=0.7,<0.8',
|
||||
'imagesize',
|
||||
'requests>=2.5.0',
|
||||
'setuptools',
|
||||
'packaging',
|
||||
"importlib-metadata>=4.4; python_version < '3.10'",
|
||||
]
|
||||
|
||||
extras_require = {
|
||||
@@ -47,7 +47,6 @@ extras_require = {
|
||||
'mypy>=0.920',
|
||||
'docutils-stubs',
|
||||
"types-typed-ast",
|
||||
"types-pkg_resources",
|
||||
"types-requests",
|
||||
],
|
||||
'test': [
|
||||
|
||||
@@ -21,7 +21,10 @@ from docutils.nodes import Element, Node, TextElement
|
||||
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
|
||||
@@ -143,14 +146,14 @@ class SphinxComponentRegistry:
|
||||
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:
|
||||
|
||||
@@ -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]:
|
||||
|
||||
Reference in New Issue
Block a user