https://github.com/python/cpython/commit/3cc9e867eba1ed139cf28c74b4a788bcc4801394
commit: 3cc9e867eba1ed139cf28c74b4a788bcc4801394
branch: main
author: Adam Turner <[email protected]>
committer: AA-Turner <[email protected]>
date: 2025-02-22T17:52:47Z
summary:
Docs: Test presence of optional extensions with importlib (#130445)
files:
M Doc/conf.py
diff --git a/Doc/conf.py b/Doc/conf.py
index 56594f32c6d02d..64d627bc41e6af 100644
--- a/Doc/conf.py
+++ b/Doc/conf.py
@@ -6,9 +6,10 @@
# The contents of this file are pickled, so don't put values in the namespace
# that aren't pickleable (module imports are okay, they're removed
automatically).
-import importlib
import os
import sys
+from importlib import import_module
+from importlib.util import find_spec
# Make our custom extensions available to Sphinx
sys.path.append(os.path.abspath('tools/extensions'))
@@ -39,19 +40,17 @@
]
# Skip if downstream redistributors haven't installed them
-try:
- import notfound.extension # noqa: F401
-except ImportError:
- pass
-else:
- extensions.append('notfound.extension')
-try:
- import sphinxext.opengraph # noqa: F401
-except ImportError:
- pass
-else:
- extensions.append('sphinxext.opengraph')
-
+_OPTIONAL_EXTENSIONS = (
+ 'notfound.extension',
+ 'sphinxext.opengraph',
+)
+for optional_ext in _OPTIONAL_EXTENSIONS:
+ try:
+ if find_spec(optional_ext) is not None:
+ extensions.append(optional_ext)
+ except (ImportError, ValueError):
+ pass
+del _OPTIONAL_EXTENSIONS
doctest_global_setup = '''
try:
@@ -74,7 +73,7 @@
# We look for the Include/patchlevel.h file in the current Python source tree
# and replace the values accordingly.
# See Doc/tools/extensions/patchlevel.py
-version, release = importlib.import_module('patchlevel').get_version_info()
+version, release = import_module('patchlevel').get_version_info()
rst_epilog = f"""
.. |python_version_literal| replace:: ``Python {version}``
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]