diff options
author | Dan Willemsen <dwillemsen@google.com> | 2022-03-25 17:22:05 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@google.com> | 2022-03-25 17:27:50 -0700 |
commit | adad21eb0615bb68c47628dcd4d638137c3d1a01 (patch) | |
tree | 690b5fb2994f47324dd4298e676335d4555ee267 /setuptools/_distutils/tests/py35compat.py | |
parent | 38928912f8393727122418ebb7b2b8b19f710b36 (diff) | |
download | setuptools-adad21eb0615bb68c47628dcd4d638137c3d1a01.tar.gz |
Upgrade to setuptools 61.1.0
This fixes Python 3.10 compat, but does remove Python2 compat.
Test: treehugger
Change-Id: I8e19ad8dec6b34482bfbe996413d3f793ada276c
Diffstat (limited to 'setuptools/_distutils/tests/py35compat.py')
-rw-r--r-- | setuptools/_distutils/tests/py35compat.py | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/setuptools/_distutils/tests/py35compat.py b/setuptools/_distutils/tests/py35compat.py new file mode 100644 index 0000000..0c75526 --- /dev/null +++ b/setuptools/_distutils/tests/py35compat.py @@ -0,0 +1,77 @@ +""" +Backward compatibility support for Python 3.5 +""" + +import sys +import test.support +import subprocess + + +# copied from Python 3.9 test.support module +def _missing_compiler_executable(cmd_names=[]): + """Check if the compiler components used to build the interpreter exist. + + Check for the existence of the compiler executables whose names are listed + in 'cmd_names' or all the compiler executables when 'cmd_names' is empty + and return the first missing executable or None when none is found + missing. + + """ + from distutils import ccompiler, sysconfig, spawn + compiler = ccompiler.new_compiler() + sysconfig.customize_compiler(compiler) + for name in compiler.executables: + if cmd_names and name not in cmd_names: + continue + cmd = getattr(compiler, name) + if cmd_names: + assert cmd is not None, \ + "the '%s' executable is not configured" % name + elif not cmd: + continue + if spawn.find_executable(cmd[0]) is None: + return cmd[0] + + +missing_compiler_executable = vars(test.support).setdefault( + 'missing_compiler_executable', + _missing_compiler_executable, +) + + +try: + from test.support import unix_shell +except ImportError: + # Adapted from Python 3.9 test.support module + is_android = hasattr(sys, 'getandroidapilevel') + unix_shell = ( + None if sys.platform == 'win32' else + '/system/bin/sh' if is_android else + '/bin/sh' + ) + + +# copied from Python 3.9 subprocess module +def _optim_args_from_interpreter_flags(): + """Return a list of command-line arguments reproducing the current + optimization settings in sys.flags.""" + args = [] + value = sys.flags.optimize + if value > 0: + args.append('-' + 'O' * value) + return args + + +vars(subprocess).setdefault( + '_optim_args_from_interpreter_flags', + _optim_args_from_interpreter_flags, +) + + +def adapt_glob(regex): + """ + Supply legacy expectation on Python 3.5 + """ + if sys.version_info > (3, 6): + return regex + return regex.replace('(?s:', '').replace(r')\Z', r'\Z(?ms)') |