https://github.com/python/cpython/commit/2412c914efa220e4a9cfe79d71cdd2c417807c07 commit: 2412c914efa220e4a9cfe79d71cdd2c417807c07 branch: 3.13 author: Miss Islington (bot) <[email protected]> committer: AA-Turner <[email protected]> date: 2025-02-22T18:00:15Z summary:
[3.13] Docs: Test presence of optional extensions with importlib (GH-130445) (#130464) (cherry picked from commit 3cc9e867eba1ed139cf28c74b4a788bcc4801394) Co-authored-by: Adam Turner <[email protected]> files: M Doc/conf.py diff --git a/Doc/conf.py b/Doc/conf.py index 6f85e92550f3f3..40e436a27c7f22 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')) @@ -37,19 +38,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: @@ -72,7 +71,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]
