]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Docs: Replace hardcoded `SOURCE_URI` with `patchlevel` check (#150850)
authorHugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Wed, 3 Jun 2026 13:37:09 +0000 (16:37 +0300)
committerGitHub <noreply@github.com>
Wed, 3 Jun 2026 13:37:09 +0000 (16:37 +0300)
Doc/conf.py
Doc/tools/extensions/pyspecific.py

index 3856f4fe9b375c42b7fb01a0dd62073ee97faf20..9b103a594b235cf968e22f2fd0ae8de9c737f26c 100644 (file)
@@ -8,15 +8,13 @@
 
 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'))
 sys.path.append(os.path.abspath('includes'))
 
-# Python specific content from Doc/Tools/extensions/pyspecific.py
-from pyspecific import SOURCE_URI
+from patchlevel import get_header_version_info, get_version_info
 
 # General configuration
 # ---------------------
@@ -78,7 +76,7 @@ _doc_authors = 'Python documentation authors'
 # 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 = import_module('patchlevel').get_version_info()
+version, release = get_version_info()
 
 rst_epilog = f"""
 .. |python_version_literal| replace:: ``Python {version}``
@@ -555,16 +553,20 @@ linkcheck_ignore = [
     r'https://unix.org/version2/whatsnew/lp64_wp.html',
 ]
 
+
 # Options for sphinx.ext.extlinks
 # -------------------------------
 
+v = get_header_version_info()
+branch = "main" if v.releaselevel == "alpha" else f"{v.major}.{v.minor}"
+
 # This config is a dictionary of external sites,
 # mapping unique short aliases to a base URL and a prefix.
 # https://www.sphinx-doc.org/en/master/usage/extensions/extlinks.html
 extlinks = {
     "oss-fuzz": ("https://issues.oss-fuzz.com/issues/%s", "#%s"),
     "pypi": ("https://pypi.org/project/%s/", "%s"),
-    "source": (SOURCE_URI, "%s"),
+    "source": (f"https://github.com/python/cpython/tree/{branch}/%s", "%s"),
 }
 extlinks_detect_hardcoded_links = True
 
index f9bf273e7624a0421174bb56bbb22db7e9d4b590..9b335f2976a2fa3f1987e0ea5e252e8e5bda69c7 100644 (file)
 """
 
 import re
-import io
-from os import getenv, path
 
-from docutils import nodes
-from docutils.parsers.rst import directives
-from docutils.utils import unescape
 from sphinx import addnodes
-from sphinx.domains.python import PyFunction, PyMethod, PyModule
-from sphinx.locale import _ as sphinx_gettext
-from sphinx.util.docutils import SphinxDirective
+from sphinx.domains.python import PyFunction, PyMethod
 
-# Used in conf.py and updated here by python/release-tools/run_release.py
-SOURCE_URI = 'https://github.com/python/cpython/tree/main/%s'
 
 class PyAwaitableMixin(object):
     def handle_signature(self, sig, signode):