From a477e237fbc38fac862c8ada81db7ba48a7d0818 Mon Sep 17 00:00:00 2001 From: Brigitta Sipocz Date: Sun, 30 Jul 2017 00:57:12 +0100 Subject: [PATCH] Updated astropy-helpers to v2.0.1 --- ah_bootstrap.py | 57 ++++++++++++------------------------------------- astropy_helpers | 2 +- ez_setup.py | 36 ++++++------------------------- 3 files changed, 22 insertions(+), 73 deletions(-) diff --git a/ah_bootstrap.py b/ah_bootstrap.py index 0dc50071..786b8b14 100644 --- a/ah_bootstrap.py +++ b/ah_bootstrap.py @@ -91,13 +91,24 @@ use_setuptools() +# typing as a dependency for 1.6.1+ Sphinx causes issues when imported after +# initializing submodule with ah_boostrap.py +# See discussion and references in +# https://github.com/astropy/astropy-helpers/issues/302 + +try: + import typing # noqa +except ImportError: + pass + + # Note: The following import is required as a workaround to # https://github.com/astropy/astropy-helpers/issues/89; if we don't import this # module now, it will get cleaned up after `run_setup` is called, but that will # later cause the TemporaryDirectory class defined in it to stop working when # used later on by setuptools try: - import setuptools.py31compat + import setuptools.py31compat # noqa except ImportError: pass @@ -702,7 +713,7 @@ def _update_submodule(self, submodule, status): if self.offline: cmd.append('--no-fetch') elif status == 'U': - raise _AHBoostrapSystemExit( + raise _AHBootstrapSystemExit( 'Error: Submodule {0} contains unresolved merge conflicts. ' 'Please complete or abandon any changes in the submodule so that ' 'it is in a usable state, then try again.'.format(submodule)) @@ -763,7 +774,7 @@ def run_cmd(cmd): msg = 'Command not found: `{0}`'.format(' '.join(cmd)) raise _CommandNotFound(msg, cmd) else: - raise _AHBoostrapSystemExit( + raise _AHBootstrapSystemExit( 'An unexpected error occurred when running the ' '`{0}` command:\n{1}'.format(' '.join(cmd), str(e))) @@ -878,46 +889,6 @@ def __init__(self, *args): super(_AHBootstrapSystemExit, self).__init__(msg, *args[1:]) -if sys.version_info[:2] < (2, 7): - # In Python 2.6 the distutils log does not log warnings, errors, etc. to - # stderr so we have to wrap it to ensure consistency at least in this - # module - import distutils - - class log(object): - def __getattr__(self, attr): - return getattr(distutils.log, attr) - - def warn(self, msg, *args): - self._log_to_stderr(distutils.log.WARN, msg, *args) - - def error(self, msg): - self._log_to_stderr(distutils.log.ERROR, msg, *args) - - def fatal(self, msg): - self._log_to_stderr(distutils.log.FATAL, msg, *args) - - def log(self, level, msg, *args): - if level in (distutils.log.WARN, distutils.log.ERROR, - distutils.log.FATAL): - self._log_to_stderr(level, msg, *args) - else: - distutils.log.log(level, msg, *args) - - def _log_to_stderr(self, level, msg, *args): - # This is the only truly 'public' way to get the current threshold - # of the log - current_threshold = distutils.log.set_threshold(distutils.log.WARN) - distutils.log.set_threshold(current_threshold) - if level >= current_threshold: - if args: - msg = msg % args - sys.stderr.write('%s\n' % msg) - sys.stderr.flush() - - log = log() - - BOOTSTRAPPER = _Bootstrapper.main() diff --git a/astropy_helpers b/astropy_helpers index 70b09af7..14ca346b 160000 --- a/astropy_helpers +++ b/astropy_helpers @@ -1 +1 @@ -Subproject commit 70b09af7e4f6b8a4e409412a913ff2adb05c12b7 +Subproject commit 14ca346b0da3e92e65bdc398cc8f726cbd7be57d diff --git a/ez_setup.py b/ez_setup.py index 950e120d..800c31ef 100644 --- a/ez_setup.py +++ b/ez_setup.py @@ -6,6 +6,8 @@ Maintained at https://github.com/pypa/setuptools/tree/bootstrap. Run this script to install or upgrade setuptools. + +This method is DEPRECATED. Check https://github.com/pypa/setuptools/issues/581 for more details. """ import os @@ -18,30 +20,29 @@ import platform import textwrap import contextlib -import json -import codecs from distutils import log try: from urllib.request import urlopen - from urllib.parse import urljoin except ImportError: from urllib2 import urlopen - from urlparse import urljoin try: from site import USER_SITE except ImportError: USER_SITE = None -LATEST = object() -DEFAULT_VERSION = LATEST +# 33.1.1 is the last version that supports setuptools self upgrade/installation. +DEFAULT_VERSION = "33.1.1" DEFAULT_URL = "https://pypi.io/packages/source/s/setuptools/" DEFAULT_SAVE_DIR = os.curdir +DEFAULT_DEPRECATION_MESSAGE = "ez_setup.py is deprecated and when using it setuptools will be pinned to {0} since it's the last version that supports setuptools self upgrade/installation, check https://github.com/pypa/setuptools/issues/581 for more info; use pip to install setuptools" MEANINGFUL_INVALID_ZIP_ERR_MSG = 'Maybe {0} is corrupted, delete it and try again.' +log.warn(DEFAULT_DEPRECATION_MESSAGE.format(DEFAULT_VERSION)) + def _python_cmd(*args): """ @@ -157,7 +158,6 @@ def use_setuptools( Return None. Raise SystemExit if the requested version or later cannot be installed. """ - version = _resolve_version(version) to_dir = os.path.abspath(to_dir) # prior to importing, capture the module state for @@ -344,7 +344,6 @@ def download_setuptools( ``downloader_factory`` should be a function taking no arguments and returning a function for downloading a URL to a target. """ - version = _resolve_version(version) # making sure we use the absolute path to_dir = os.path.abspath(to_dir) zip_name = "setuptools-%s.zip" % version @@ -357,27 +356,6 @@ def download_setuptools( return os.path.realpath(saveto) -def _resolve_version(version): - """ - Resolve LATEST version - """ - if version is not LATEST: - return version - - meta_url = urljoin(DEFAULT_URL, '/pypi/setuptools/json') - resp = urlopen(meta_url) - with contextlib.closing(resp): - try: - charset = resp.info().get_content_charset() - except Exception: - # Python 2 compat; assume UTF-8 - charset = 'UTF-8' - reader = codecs.getreader(charset) - doc = json.load(reader(resp)) - - return str(doc['info']['version']) - - def _build_install_args(options): """ Build the arguments to 'python setup.py install' on the setuptools package.