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
This commit is contained in:
Mauro Carvalho Chehab 2025-08-12 17:52:21 +02:00 committed by Jonathan Corbet
parent ca9087f507
commit 56a8767751

View File

@ -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)
#