From 297f96847bf744f0a8e55e3d6f881ac9843566b6 Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Wed, 30 Dec 2020 07:08:27 +0900 Subject: [PATCH] Imported Upstream version 50.0.1 --- .bumpversion.cfg | 2 +- CHANGES.rst | 10 ++++++++++ _distutils_hack/__init__.py | 3 ++- setup.cfg | 2 +- setuptools/_distutils/py35compat.py | 19 +++++++++++++++++++ setuptools/_distutils/py38compat.py | 7 +++++++ setuptools/_distutils/tests/py38compat.py | 3 +++ setuptools/_distutils/util.py | 8 +++++--- tox.ini | 3 +++ 9 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 setuptools/_distutils/py35compat.py create mode 100644 setuptools/_distutils/py38compat.py diff --git a/.bumpversion.cfg b/.bumpversion.cfg index a50c3ba..ebb58d3 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 50.0.0 +current_version = 50.0.1 commit = True tag = True diff --git a/CHANGES.rst b/CHANGES.rst index 9dd77e1..0082b7f 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,13 @@ +v50.0.1 +------- + +* #2357: Restored Python 3.5 support in distutils.util for missing `subprocess._optim_args_from_interpreter_flags`. +* #2358: Restored AIX support on Python 3.8 and earlier. +* #2361: Add Python 3.10 support to _distutils_hack. Get the 'Loader' abstract class + from importlib.abc rather than importlib.util.abc (alias removed in Python + 3.10). + + v50.0.0 ------- diff --git a/_distutils_hack/__init__.py b/_distutils_hack/__init__.py index 074bd5e..b8410e1 100644 --- a/_distutils_hack/__init__.py +++ b/_distutils_hack/__init__.py @@ -74,9 +74,10 @@ class DistutilsMetaFinder: return method() def spec_for_distutils(self): + import importlib.abc import importlib.util - class DistutilsLoader(importlib.util.abc.Loader): + class DistutilsLoader(importlib.abc.Loader): def create_module(self, spec): return importlib.import_module('._distutils', 'setuptools') diff --git a/setup.cfg b/setup.cfg index 577e23c..71839ef 100644 --- a/setup.cfg +++ b/setup.cfg @@ -16,7 +16,7 @@ formats = zip [metadata] name = setuptools -version = 50.0.0 +version = 50.0.1 description = Easily download, build, install, upgrade, and uninstall Python packages author = Python Packaging Authority author_email = distutils-sig@python.org diff --git a/setuptools/_distutils/py35compat.py b/setuptools/_distutils/py35compat.py new file mode 100644 index 0000000..79b2e7f --- /dev/null +++ b/setuptools/_distutils/py35compat.py @@ -0,0 +1,19 @@ +import sys +import subprocess + + +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 + + +_optim_args_from_interpreter_flags = getattr( + subprocess, + "_optim_args_from_interpreter_flags", + __optim_args_from_interpreter_flags, +) diff --git a/setuptools/_distutils/py38compat.py b/setuptools/_distutils/py38compat.py new file mode 100644 index 0000000..7dbe8ce --- /dev/null +++ b/setuptools/_distutils/py38compat.py @@ -0,0 +1,7 @@ +def aix_platform(osname, version, release): + try: + import _aix_support + return _aix_support.aix_platform() + except ImportError: + pass + return "%s-%s.%s" % (osname, version, release) diff --git a/setuptools/_distutils/tests/py38compat.py b/setuptools/_distutils/tests/py38compat.py index 46ff575..32269c7 100644 --- a/setuptools/_distutils/tests/py38compat.py +++ b/setuptools/_distutils/tests/py38compat.py @@ -1,6 +1,9 @@ # flake8: noqa import contextlib +import builtins + +ModuleNotFoundError = getattr(builtins, 'ModuleNotFoundError', ImportError) try: from test.support.warnings_helper import check_warnings diff --git a/setuptools/_distutils/util.py b/setuptools/_distutils/util.py index 4b002ec..f5aca79 100644 --- a/setuptools/_distutils/util.py +++ b/setuptools/_distutils/util.py @@ -14,6 +14,8 @@ from distutils.dep_util import newer from distutils.spawn import spawn from distutils import log from distutils.errors import DistutilsByteCompileError +from .py35compat import _optim_args_from_interpreter_flags + def get_host_platform(): """Return a string that identifies the current platform. This is used mainly to @@ -79,8 +81,8 @@ def get_host_platform(): machine += ".%s" % bitness[sys.maxsize] # fall through to standard osname-release-machine representation elif osname[:3] == "aix": - from _aix_support import aix_platform - return aix_platform() + from .py38compat import aix_platform + return aix_platform(osname, version, release) elif osname[:6] == "cygwin": osname = "cygwin" rel_re = re.compile (r'[\d.]+', re.ASCII) @@ -420,7 +422,7 @@ byte_compile(files, optimize=%r, force=%r, """ % (optimize, force, prefix, base_dir, verbose)) cmd = [sys.executable] - cmd.extend(subprocess._optim_args_from_interpreter_flags()) + cmd.extend(_optim_args_from_interpreter_flags()) cmd.append(script_name) spawn(cmd, dry_run=dry_run) execute(os.remove, (script_name,), "removing %s" % script_name, diff --git a/tox.ini b/tox.ini index 557c8d5..535b67d 100644 --- a/tox.ini +++ b/tox.ini @@ -66,9 +66,11 @@ deps = wheel twine[keyring]>=1.13 path + jaraco.develop>=7.1 jaraco.tidelift passenv = TWINE_PASSWORD + GITHUB_TOKEN TIDELIFT_TOKEN setenv = TWINE_USERNAME = {env:TWINE_USERNAME:__token__} @@ -77,4 +79,5 @@ commands = python -c "import path; path.Path('dist').rmtree_p()" python setup.py release python -m twine upload dist/* + python -m jaraco.develop.create-github-release python -m jaraco.tidelift.publish-release-notes -- 2.34.1