summaryrefslogtreecommitdiff
path: root/scripts/sphinx-pre-install.py
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>2025-08-12 17:52:21 +0200
committerJonathan Corbet <corbet@lwn.net>2025-08-13 10:19:16 -0600
commit56a8767751c4bd2b93ba8840a78eccae7018d57c (patch)
treee2986798458092380f7a9c82fb24061fe7a2fd93 /scripts/sphinx-pre-install.py
parentca9087f50772aa5794dd655ff5a0719dd4b83b1f (diff)
scripts: sphinx-pre-install: Make it compatible with Python 3.6
The minimal version requirements we have is 3.9. Yet, the script which detects it is this one. So, let's try supporting an old version here, as we may want to suggest to upgrade Python version to build the docs. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Link: https://lore.kernel.org/r/39d6e27a047bc3cc8208ac5e11fe6ba44faff9c4.1754992972.git.mchehab+huawei@kernel.org
Diffstat (limited to 'scripts/sphinx-pre-install.py')
-rwxr-xr-xscripts/sphinx-pre-install.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/scripts/sphinx-pre-install.py b/scripts/sphinx-pre-install.py
index dcee2181b72f..71d86b230b22 100755
--- a/scripts/sphinx-pre-install.py
+++ b/scripts/sphinx-pre-install.py
@@ -115,7 +115,8 @@ class SphinxDependencyChecker:
def find_python_no_venv():
# FIXME: does it makes sense now that this script is in Python?
- result = subprocess.run(["pwd"], capture_output=True, text=True)
+ result = SphinxDependencyChecker.run(["pwd"], capture_output=True,
+ text=True)
cur_dir = result.stdout.strip()
python_names = ["python3", "python"]
@@ -135,12 +136,23 @@ class SphinxDependencyChecker:
def run(*args, **kwargs):
"""Excecute a command, hiding its output by default"""
- if not kwargs.get('capture_output', False):
+ capture_output = kwargs.pop('capture_output', False)
+
+ if capture_output:
+ if 'stdout' not in kwargs:
+ kwargs['stdout'] = subprocess.PIPE
+ if 'stderr' not in kwargs:
+ kwargs['stderr'] = subprocess.PIPE
+ else:
if 'stdout' not in kwargs:
kwargs['stdout'] = subprocess.DEVNULL
if 'stderr' not in kwargs:
kwargs['stderr'] = subprocess.DEVNULL
+ # Don't break with older Python versions
+ if 'text' in kwargs and sys.version_info < (3, 7):
+ kwargs['universal_newlines'] = kwargs.pop('text')
+
return subprocess.run(*args, **kwargs)
#