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

index 5615c98a86d1d7dde50cd2eba5e1931cf46a8fa3..98e5531585d3f65ed5bc8ca3298b05d63def2d99 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
 # ---------------------
@@ -77,7 +75,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 aa1eb5cff9ac122f50d565cd7060b8c390ced6e0..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/3.14/%s'
 
 class PyAwaitableMixin(object):
     def handle_signature(self, sig, signode):