From b7bd35838d6eeae93b0fedfee9acd6549a7664b9 Mon Sep 17 00:00:00 2001 From: ajohns Date: Fri, 12 Jul 2019 08:51:32 +1000 Subject: [PATCH 1/9] -removed patched distlib in build_utils -using vendor.distlib instead - new version now incorporates patch previously relied on -see https://bitbucket.org/pypa/distlib/commits/bff28df --- install.py | 3 +- src/build_utils/distlib/__init__.py | 23 - src/build_utils/distlib/_backport/__init__.py | 6 - src/build_utils/distlib/_backport/misc.py | 41 - src/build_utils/distlib/_backport/shutil.py | 761 ----- .../distlib/_backport/sysconfig.cfg | 84 - .../distlib/_backport/sysconfig.py | 788 ----- src/build_utils/distlib/_backport/tarfile.py | 2607 ----------------- src/build_utils/distlib/compat.py | 1102 ------- src/build_utils/distlib/database.py | 1301 -------- src/build_utils/distlib/index.py | 513 ---- src/build_utils/distlib/locators.py | 1195 -------- src/build_utils/distlib/manifest.py | 364 --- src/build_utils/distlib/markers.py | 190 -- src/build_utils/distlib/metadata.py | 1058 ------- src/build_utils/distlib/resources.py | 323 -- src/build_utils/distlib/scripts.py | 335 --- src/build_utils/distlib/t32.exe | Bin 91648 -> 0 bytes src/build_utils/distlib/t64.exe | Bin 95232 -> 0 bytes src/build_utils/distlib/util.py | 1575 ---------- src/build_utils/distlib/version.py | 721 ----- src/build_utils/distlib/w32.exe | Bin 88576 -> 0 bytes src/build_utils/distlib/w64.exe | Bin 92160 -> 0 bytes src/build_utils/distlib/wheel.py | 976 ------ src/rez/utils/_version.py | 2 +- 25 files changed, 3 insertions(+), 13965 deletions(-) delete mode 100644 src/build_utils/distlib/__init__.py delete mode 100644 src/build_utils/distlib/_backport/__init__.py delete mode 100644 src/build_utils/distlib/_backport/misc.py delete mode 100644 src/build_utils/distlib/_backport/shutil.py delete mode 100644 src/build_utils/distlib/_backport/sysconfig.cfg delete mode 100644 src/build_utils/distlib/_backport/sysconfig.py delete mode 100644 src/build_utils/distlib/_backport/tarfile.py delete mode 100644 src/build_utils/distlib/compat.py delete mode 100644 src/build_utils/distlib/database.py delete mode 100644 src/build_utils/distlib/index.py delete mode 100644 src/build_utils/distlib/locators.py delete mode 100644 src/build_utils/distlib/manifest.py delete mode 100644 src/build_utils/distlib/markers.py delete mode 100644 src/build_utils/distlib/metadata.py delete mode 100644 src/build_utils/distlib/resources.py delete mode 100644 src/build_utils/distlib/scripts.py delete mode 100644 src/build_utils/distlib/t32.exe delete mode 100644 src/build_utils/distlib/t64.exe delete mode 100644 src/build_utils/distlib/util.py delete mode 100644 src/build_utils/distlib/version.py delete mode 100644 src/build_utils/distlib/w32.exe delete mode 100644 src/build_utils/distlib/w64.exe delete mode 100644 src/build_utils/distlib/wheel.py diff --git a/install.py b/install.py index 45839088b..bc566b5ed 100644 --- a/install.py +++ b/install.py @@ -21,7 +21,8 @@ from rez.backport.shutilwhich import which from build_utils.virtualenv.virtualenv import Logger, create_environment, \ path_locations -from build_utils.distlib.scripts import ScriptMaker +#from build_utils.distlib.scripts import ScriptMaker +from rez.vendor.distlib.scripts import ScriptMaker class fake_entry(object): diff --git a/src/build_utils/distlib/__init__.py b/src/build_utils/distlib/__init__.py deleted file mode 100644 index 2c9d3cc34..000000000 --- a/src/build_utils/distlib/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2014 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -import logging - -__version__ = '0.2.0.dev0' - -class DistlibException(Exception): - pass - -try: - from logging import NullHandler -except ImportError: # pragma: no cover - class NullHandler(logging.Handler): - def handle(self, record): pass - def emit(self, record): pass - def createLock(self): self.lock = None - -logger = logging.getLogger(__name__) -logger.addHandler(NullHandler()) diff --git a/src/build_utils/distlib/_backport/__init__.py b/src/build_utils/distlib/_backport/__init__.py deleted file mode 100644 index f7dbf4c9a..000000000 --- a/src/build_utils/distlib/_backport/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -"""Modules copied from Python 3 standard libraries, for internal use only. - -Individual classes and functions are found in d2._backport.misc. Intended -usage is to always import things missing from 3.1 from that module: the -built-in/stdlib objects will be used if found. -""" diff --git a/src/build_utils/distlib/_backport/misc.py b/src/build_utils/distlib/_backport/misc.py deleted file mode 100644 index cfb318d34..000000000 --- a/src/build_utils/distlib/_backport/misc.py +++ /dev/null @@ -1,41 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Backports for individual classes and functions.""" - -import os -import sys - -__all__ = ['cache_from_source', 'callable', 'fsencode'] - - -try: - from imp import cache_from_source -except ImportError: - def cache_from_source(py_file, debug=__debug__): - ext = debug and 'c' or 'o' - return py_file + ext - - -try: - callable = callable -except NameError: - from collections import Callable - - def callable(obj): - return isinstance(obj, Callable) - - -try: - fsencode = os.fsencode -except AttributeError: - def fsencode(filename): - if isinstance(filename, bytes): - return filename - elif isinstance(filename, str): - return filename.encode(sys.getfilesystemencoding()) - else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) diff --git a/src/build_utils/distlib/_backport/shutil.py b/src/build_utils/distlib/_backport/shutil.py deleted file mode 100644 index 49ca85260..000000000 --- a/src/build_utils/distlib/_backport/shutil.py +++ /dev/null @@ -1,761 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Utility functions for copying and archiving files and directory trees. - -XXX The functions here don't copy the resource fork or other metadata on Mac. - -""" - -import os -import sys -import stat -from os.path import abspath -import fnmatch -import collections -import errno -from . import tarfile - -try: - import bz2 - _BZ2_SUPPORTED = True -except ImportError: - _BZ2_SUPPORTED = False - -try: - from pwd import getpwnam -except ImportError: - getpwnam = None - -try: - from grp import getgrnam -except ImportError: - getgrnam = None - -__all__ = ["copyfileobj", "copyfile", "copymode", "copystat", "copy", "copy2", - "copytree", "move", "rmtree", "Error", "SpecialFileError", - "ExecError", "make_archive", "get_archive_formats", - "register_archive_format", "unregister_archive_format", - "get_unpack_formats", "register_unpack_format", - "unregister_unpack_format", "unpack_archive", "ignore_patterns"] - -class Error(EnvironmentError): - pass - -class SpecialFileError(EnvironmentError): - """Raised when trying to do a kind of operation (e.g. copying) which is - not supported on a special file (e.g. a named pipe)""" - -class ExecError(EnvironmentError): - """Raised when a command could not be executed""" - -class ReadError(EnvironmentError): - """Raised when an archive cannot be read""" - -class RegistryError(Exception): - """Raised when a registery operation with the archiving - and unpacking registeries fails""" - - -try: - WindowsError -except NameError: - WindowsError = None - -def copyfileobj(fsrc, fdst, length=16*1024): - """copy data from file-like object fsrc to file-like object fdst""" - while 1: - buf = fsrc.read(length) - if not buf: - break - fdst.write(buf) - -def _samefile(src, dst): - # Macintosh, Unix. - if hasattr(os.path, 'samefile'): - try: - return os.path.samefile(src, dst) - except OSError: - return False - - # All other platforms: check for same pathname. - return (os.path.normcase(os.path.abspath(src)) == - os.path.normcase(os.path.abspath(dst))) - -def copyfile(src, dst): - """Copy data from src to dst""" - if _samefile(src, dst): - raise Error("`%s` and `%s` are the same file" % (src, dst)) - - for fn in [src, dst]: - try: - st = os.stat(fn) - except OSError: - # File most likely does not exist - pass - else: - # XXX What about other special files? (sockets, devices...) - if stat.S_ISFIFO(st.st_mode): - raise SpecialFileError("`%s` is a named pipe" % fn) - - with open(src, 'rb') as fsrc: - with open(dst, 'wb') as fdst: - copyfileobj(fsrc, fdst) - -def copymode(src, dst): - """Copy mode bits from src to dst""" - if hasattr(os, 'chmod'): - st = os.stat(src) - mode = stat.S_IMODE(st.st_mode) - os.chmod(dst, mode) - -def copystat(src, dst): - """Copy all stat info (mode bits, atime, mtime, flags) from src to dst""" - st = os.stat(src) - mode = stat.S_IMODE(st.st_mode) - if hasattr(os, 'utime'): - os.utime(dst, (st.st_atime, st.st_mtime)) - if hasattr(os, 'chmod'): - os.chmod(dst, mode) - if hasattr(os, 'chflags') and hasattr(st, 'st_flags'): - try: - os.chflags(dst, st.st_flags) - except OSError as why: - if (not hasattr(errno, 'EOPNOTSUPP') or - why.errno != errno.EOPNOTSUPP): - raise - -def copy(src, dst): - """Copy data and mode bits ("cp src dst"). - - The destination may be a directory. - - """ - if os.path.isdir(dst): - dst = os.path.join(dst, os.path.basename(src)) - copyfile(src, dst) - copymode(src, dst) - -def copy2(src, dst): - """Copy data and all stat info ("cp -p src dst"). - - The destination may be a directory. - - """ - if os.path.isdir(dst): - dst = os.path.join(dst, os.path.basename(src)) - copyfile(src, dst) - copystat(src, dst) - -def ignore_patterns(*patterns): - """Function that can be used as copytree() ignore parameter. - - Patterns is a sequence of glob-style patterns - that are used to exclude files""" - def _ignore_patterns(path, names): - ignored_names = [] - for pattern in patterns: - ignored_names.extend(fnmatch.filter(names, pattern)) - return set(ignored_names) - return _ignore_patterns - -def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, - ignore_dangling_symlinks=False): - """Recursively copy a directory tree. - - The destination directory must not already exist. - If exception(s) occur, an Error is raised with a list of reasons. - - If the optional symlinks flag is true, symbolic links in the - source tree result in symbolic links in the destination tree; if - it is false, the contents of the files pointed to by symbolic - links are copied. If the file pointed by the symlink doesn't - exist, an exception will be added in the list of errors raised in - an Error exception at the end of the copy process. - - You can set the optional ignore_dangling_symlinks flag to true if you - want to silence this exception. Notice that this has no effect on - platforms that don't support os.symlink. - - The optional ignore argument is a callable. If given, it - is called with the `src` parameter, which is the directory - being visited by copytree(), and `names` which is the list of - `src` contents, as returned by os.listdir(): - - callable(src, names) -> ignored_names - - Since copytree() is called recursively, the callable will be - called once for each directory that is copied. It returns a - list of names relative to the `src` directory that should - not be copied. - - The optional copy_function argument is a callable that will be used - to copy each file. It will be called with the source path and the - destination path as arguments. By default, copy2() is used, but any - function that supports the same signature (like copy()) can be used. - - """ - names = os.listdir(src) - if ignore is not None: - ignored_names = ignore(src, names) - else: - ignored_names = set() - - os.makedirs(dst) - errors = [] - for name in names: - if name in ignored_names: - continue - srcname = os.path.join(src, name) - dstname = os.path.join(dst, name) - try: - if os.path.islink(srcname): - linkto = os.readlink(srcname) - if symlinks: - os.symlink(linkto, dstname) - else: - # ignore dangling symlink if the flag is on - if not os.path.exists(linkto) and ignore_dangling_symlinks: - continue - # otherwise let the copy occurs. copy2 will raise an error - copy_function(srcname, dstname) - elif os.path.isdir(srcname): - copytree(srcname, dstname, symlinks, ignore, copy_function) - else: - # Will raise a SpecialFileError for unsupported file types - copy_function(srcname, dstname) - # catch the Error from the recursive copytree so that we can - # continue with other files - except Error as err: - errors.extend(err.args[0]) - except EnvironmentError as why: - errors.append((srcname, dstname, str(why))) - try: - copystat(src, dst) - except OSError as why: - if WindowsError is not None and isinstance(why, WindowsError): - # Copying file access times may fail on Windows - pass - else: - errors.extend((src, dst, str(why))) - if errors: - raise Error(errors) - -def rmtree(path, ignore_errors=False, onerror=None): - """Recursively delete a directory tree. - - If ignore_errors is set, errors are ignored; otherwise, if onerror - is set, it is called to handle the error with arguments (func, - path, exc_info) where func is os.listdir, os.remove, or os.rmdir; - path is the argument to that function that caused it to fail; and - exc_info is a tuple returned by sys.exc_info(). If ignore_errors - is false and onerror is None, an exception is raised. - - """ - if ignore_errors: - def onerror(*args): - pass - elif onerror is None: - def onerror(*args): - raise - try: - if os.path.islink(path): - # symlinks to directories are forbidden, see bug #1669 - raise OSError("Cannot call rmtree on a symbolic link") - except OSError: - onerror(os.path.islink, path, sys.exc_info()) - # can't continue even if onerror hook returns - return - names = [] - try: - names = os.listdir(path) - except os.error: - onerror(os.listdir, path, sys.exc_info()) - for name in names: - fullname = os.path.join(path, name) - try: - mode = os.lstat(fullname).st_mode - except os.error: - mode = 0 - if stat.S_ISDIR(mode): - rmtree(fullname, ignore_errors, onerror) - else: - try: - os.remove(fullname) - except os.error: - onerror(os.remove, fullname, sys.exc_info()) - try: - os.rmdir(path) - except os.error: - onerror(os.rmdir, path, sys.exc_info()) - - -def _basename(path): - # A basename() variant which first strips the trailing slash, if present. - # Thus we always get the last component of the path, even for directories. - return os.path.basename(path.rstrip(os.path.sep)) - -def move(src, dst): - """Recursively move a file or directory to another location. This is - similar to the Unix "mv" command. - - If the destination is a directory or a symlink to a directory, the source - is moved inside the directory. The destination path must not already - exist. - - If the destination already exists but is not a directory, it may be - overwritten depending on os.rename() semantics. - - If the destination is on our current filesystem, then rename() is used. - Otherwise, src is copied to the destination and then removed. - A lot more could be done here... A look at a mv.c shows a lot of - the issues this implementation glosses over. - - """ - real_dst = dst - if os.path.isdir(dst): - if _samefile(src, dst): - # We might be on a case insensitive filesystem, - # perform the rename anyway. - os.rename(src, dst) - return - - real_dst = os.path.join(dst, _basename(src)) - if os.path.exists(real_dst): - raise Error("Destination path '%s' already exists" % real_dst) - try: - os.rename(src, real_dst) - except OSError: - if os.path.isdir(src): - if _destinsrc(src, dst): - raise Error("Cannot move a directory '%s' into itself '%s'." % (src, dst)) - copytree(src, real_dst, symlinks=True) - rmtree(src) - else: - copy2(src, real_dst) - os.unlink(src) - -def _destinsrc(src, dst): - src = abspath(src) - dst = abspath(dst) - if not src.endswith(os.path.sep): - src += os.path.sep - if not dst.endswith(os.path.sep): - dst += os.path.sep - return dst.startswith(src) - -def _get_gid(name): - """Returns a gid, given a group name.""" - if getgrnam is None or name is None: - return None - try: - result = getgrnam(name) - except KeyError: - result = None - if result is not None: - return result[2] - return None - -def _get_uid(name): - """Returns an uid, given a user name.""" - if getpwnam is None or name is None: - return None - try: - result = getpwnam(name) - except KeyError: - result = None - if result is not None: - return result[2] - return None - -def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0, - owner=None, group=None, logger=None): - """Create a (possibly compressed) tar file from all the files under - 'base_dir'. - - 'compress' must be "gzip" (the default), "bzip2", or None. - - 'owner' and 'group' can be used to define an owner and a group for the - archive that is being built. If not provided, the current owner and group - will be used. - - The output tar file will be named 'base_name' + ".tar", possibly plus - the appropriate compression extension (".gz", or ".bz2"). - - Returns the output filename. - """ - tar_compression = {'gzip': 'gz', None: ''} - compress_ext = {'gzip': '.gz'} - - if _BZ2_SUPPORTED: - tar_compression['bzip2'] = 'bz2' - compress_ext['bzip2'] = '.bz2' - - # flags for compression program, each element of list will be an argument - if compress is not None and compress not in compress_ext: - raise ValueError("bad value for 'compress', or compression format not " - "supported : {0}".format(compress)) - - archive_name = base_name + '.tar' + compress_ext.get(compress, '') - archive_dir = os.path.dirname(archive_name) - - if not os.path.exists(archive_dir): - if logger is not None: - logger.info("creating %s", archive_dir) - if not dry_run: - os.makedirs(archive_dir) - - # creating the tarball - if logger is not None: - logger.info('Creating tar archive') - - uid = _get_uid(owner) - gid = _get_gid(group) - - def _set_uid_gid(tarinfo): - if gid is not None: - tarinfo.gid = gid - tarinfo.gname = group - if uid is not None: - tarinfo.uid = uid - tarinfo.uname = owner - return tarinfo - - if not dry_run: - tar = tarfile.open(archive_name, 'w|%s' % tar_compression[compress]) - try: - tar.add(base_dir, filter=_set_uid_gid) - finally: - tar.close() - - return archive_name - -def _call_external_zip(base_dir, zip_filename, verbose=False, dry_run=False): - # XXX see if we want to keep an external call here - if verbose: - zipoptions = "-r" - else: - zipoptions = "-rq" - from distutils.errors import DistutilsExecError - from distutils.spawn import spawn - try: - spawn(["zip", zipoptions, zip_filename, base_dir], dry_run=dry_run) - except DistutilsExecError: - # XXX really should distinguish between "couldn't find - # external 'zip' command" and "zip failed". - raise ExecError("unable to create zip file '%s': " - "could neither import the 'zipfile' module nor " - "find a standalone zip utility") % zip_filename - -def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): - """Create a zip file from all the files under 'base_dir'. - - The output zip file will be named 'base_name' + ".zip". Uses either the - "zipfile" Python module (if available) or the InfoZIP "zip" utility - (if installed and found on the default search path). If neither tool is - available, raises ExecError. Returns the name of the output zip - file. - """ - zip_filename = base_name + ".zip" - archive_dir = os.path.dirname(base_name) - - if not os.path.exists(archive_dir): - if logger is not None: - logger.info("creating %s", archive_dir) - if not dry_run: - os.makedirs(archive_dir) - - # If zipfile module is not available, try spawning an external 'zip' - # command. - try: - import zipfile - except ImportError: - zipfile = None - - if zipfile is None: - _call_external_zip(base_dir, zip_filename, verbose, dry_run) - else: - if logger is not None: - logger.info("creating '%s' and adding '%s' to it", - zip_filename, base_dir) - - if not dry_run: - zip = zipfile.ZipFile(zip_filename, "w", - compression=zipfile.ZIP_DEFLATED) - - for dirpath, dirnames, filenames in os.walk(base_dir): - for name in filenames: - path = os.path.normpath(os.path.join(dirpath, name)) - if os.path.isfile(path): - zip.write(path, path) - if logger is not None: - logger.info("adding '%s'", path) - zip.close() - - return zip_filename - -_ARCHIVE_FORMATS = { - 'gztar': (_make_tarball, [('compress', 'gzip')], "gzip'ed tar-file"), - 'bztar': (_make_tarball, [('compress', 'bzip2')], "bzip2'ed tar-file"), - 'tar': (_make_tarball, [('compress', None)], "uncompressed tar file"), - 'zip': (_make_zipfile, [], "ZIP file"), - } - -if _BZ2_SUPPORTED: - _ARCHIVE_FORMATS['bztar'] = (_make_tarball, [('compress', 'bzip2')], - "bzip2'ed tar-file") - -def get_archive_formats(): - """Returns a list of supported formats for archiving and unarchiving. - - Each element of the returned sequence is a tuple (name, description) - """ - formats = [(name, registry[2]) for name, registry in - _ARCHIVE_FORMATS.items()] - formats.sort() - return formats - -def register_archive_format(name, function, extra_args=None, description=''): - """Registers an archive format. - - name is the name of the format. function is the callable that will be - used to create archives. If provided, extra_args is a sequence of - (name, value) tuples that will be passed as arguments to the callable. - description can be provided to describe the format, and will be returned - by the get_archive_formats() function. - """ - if extra_args is None: - extra_args = [] - if not isinstance(function, collections.Callable): - raise TypeError('The %s object is not callable' % function) - if not isinstance(extra_args, (tuple, list)): - raise TypeError('extra_args needs to be a sequence') - for element in extra_args: - if not isinstance(element, (tuple, list)) or len(element) !=2: - raise TypeError('extra_args elements are : (arg_name, value)') - - _ARCHIVE_FORMATS[name] = (function, extra_args, description) - -def unregister_archive_format(name): - del _ARCHIVE_FORMATS[name] - -def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, - dry_run=0, owner=None, group=None, logger=None): - """Create an archive file (eg. zip or tar). - - 'base_name' is the name of the file to create, minus any format-specific - extension; 'format' is the archive format: one of "zip", "tar", "bztar" - or "gztar". - - 'root_dir' is a directory that will be the root directory of the - archive; ie. we typically chdir into 'root_dir' before creating the - archive. 'base_dir' is the directory where we start archiving from; - ie. 'base_dir' will be the common prefix of all files and - directories in the archive. 'root_dir' and 'base_dir' both default - to the current directory. Returns the name of the archive file. - - 'owner' and 'group' are used when creating a tar archive. By default, - uses the current owner and group. - """ - save_cwd = os.getcwd() - try: - if root_dir is not None: - if logger is not None: - logger.debug("changing into '%s'", root_dir) - base_name = os.path.abspath(base_name) - if not dry_run: - os.chdir(root_dir) - - if base_dir is None: - base_dir = os.curdir - - kwargs = {'dry_run': dry_run, 'logger': logger} - - try: - format_info = _ARCHIVE_FORMATS[format] - except KeyError: - raise ValueError("unknown archive format '%s'" % format) - - func = format_info[0] - for arg, val in format_info[1]: - kwargs[arg] = val - - if format != 'zip': - kwargs['owner'] = owner - kwargs['group'] = group - - filename = func(base_name, base_dir, **kwargs) - finally: - if root_dir is not None: - if logger is not None: - logger.debug("changing back to '%s'", save_cwd) - os.chdir(save_cwd) - - return filename - - -def get_unpack_formats(): - """Returns a list of supported formats for unpacking. - - Each element of the returned sequence is a tuple - (name, extensions, description) - """ - formats = [(name, info[0], info[3]) for name, info in - _UNPACK_FORMATS.items()] - formats.sort() - return formats - -def _check_unpack_options(extensions, function, extra_args): - """Checks what gets registered as an unpacker.""" - # first make sure no other unpacker is registered for this extension - existing_extensions = {} - for name, info in _UNPACK_FORMATS.items(): - for ext in info[0]: - existing_extensions[ext] = name - - for extension in extensions: - if extension in existing_extensions: - msg = '%s is already registered for "%s"' - raise RegistryError(msg % (extension, - existing_extensions[extension])) - - if not isinstance(function, collections.Callable): - raise TypeError('The registered function must be a callable') - - -def register_unpack_format(name, extensions, function, extra_args=None, - description=''): - """Registers an unpack format. - - `name` is the name of the format. `extensions` is a list of extensions - corresponding to the format. - - `function` is the callable that will be - used to unpack archives. The callable will receive archives to unpack. - If it's unable to handle an archive, it needs to raise a ReadError - exception. - - If provided, `extra_args` is a sequence of - (name, value) tuples that will be passed as arguments to the callable. - description can be provided to describe the format, and will be returned - by the get_unpack_formats() function. - """ - if extra_args is None: - extra_args = [] - _check_unpack_options(extensions, function, extra_args) - _UNPACK_FORMATS[name] = extensions, function, extra_args, description - -def unregister_unpack_format(name): - """Removes the pack format from the registery.""" - del _UNPACK_FORMATS[name] - -def _ensure_directory(path): - """Ensure that the parent directory of `path` exists""" - dirname = os.path.dirname(path) - if not os.path.isdir(dirname): - os.makedirs(dirname) - -def _unpack_zipfile(filename, extract_dir): - """Unpack zip `filename` to `extract_dir` - """ - try: - import zipfile - except ImportError: - raise ReadError('zlib not supported, cannot unpack this archive.') - - if not zipfile.is_zipfile(filename): - raise ReadError("%s is not a zip file" % filename) - - zip = zipfile.ZipFile(filename) - try: - for info in zip.infolist(): - name = info.filename - - # don't extract absolute paths or ones with .. in them - if name.startswith('/') or '..' in name: - continue - - target = os.path.join(extract_dir, *name.split('/')) - if not target: - continue - - _ensure_directory(target) - if not name.endswith('/'): - # file - data = zip.read(info.filename) - f = open(target, 'wb') - try: - f.write(data) - finally: - f.close() - del data - finally: - zip.close() - -def _unpack_tarfile(filename, extract_dir): - """Unpack tar/tar.gz/tar.bz2 `filename` to `extract_dir` - """ - try: - tarobj = tarfile.open(filename) - except tarfile.TarError: - raise ReadError( - "%s is not a compressed or uncompressed tar file" % filename) - try: - tarobj.extractall(extract_dir) - finally: - tarobj.close() - -_UNPACK_FORMATS = { - 'gztar': (['.tar.gz', '.tgz'], _unpack_tarfile, [], "gzip'ed tar-file"), - 'tar': (['.tar'], _unpack_tarfile, [], "uncompressed tar file"), - 'zip': (['.zip'], _unpack_zipfile, [], "ZIP file") - } - -if _BZ2_SUPPORTED: - _UNPACK_FORMATS['bztar'] = (['.bz2'], _unpack_tarfile, [], - "bzip2'ed tar-file") - -def _find_unpack_format(filename): - for name, info in _UNPACK_FORMATS.items(): - for extension in info[0]: - if filename.endswith(extension): - return name - return None - -def unpack_archive(filename, extract_dir=None, format=None): - """Unpack an archive. - - `filename` is the name of the archive. - - `extract_dir` is the name of the target directory, where the archive - is unpacked. If not provided, the current working directory is used. - - `format` is the archive format: one of "zip", "tar", or "gztar". Or any - other registered format. If not provided, unpack_archive will use the - filename extension and see if an unpacker was registered for that - extension. - - In case none is found, a ValueError is raised. - """ - if extract_dir is None: - extract_dir = os.getcwd() - - if format is not None: - try: - format_info = _UNPACK_FORMATS[format] - except KeyError: - raise ValueError("Unknown unpack format '{0}'".format(format)) - - func = format_info[1] - func(filename, extract_dir, **dict(format_info[2])) - else: - # we need to look at the registered unpackers supported extensions - format = _find_unpack_format(filename) - if format is None: - raise ReadError("Unknown archive format '{0}'".format(filename)) - - func = _UNPACK_FORMATS[format][1] - kwargs = dict(_UNPACK_FORMATS[format][2]) - func(filename, extract_dir, **kwargs) diff --git a/src/build_utils/distlib/_backport/sysconfig.cfg b/src/build_utils/distlib/_backport/sysconfig.cfg deleted file mode 100644 index 1746bd01c..000000000 --- a/src/build_utils/distlib/_backport/sysconfig.cfg +++ /dev/null @@ -1,84 +0,0 @@ -[posix_prefix] -# Configuration directories. Some of these come straight out of the -# configure script. They are for implementing the other variables, not to -# be used directly in [resource_locations]. -confdir = /etc -datadir = /usr/share -libdir = /usr/lib -statedir = /var -# User resource directory -local = ~/.local/{distribution.name} - -stdlib = {base}/lib/python{py_version_short} -platstdlib = {platbase}/lib/python{py_version_short} -purelib = {base}/lib/python{py_version_short}/site-packages -platlib = {platbase}/lib/python{py_version_short}/site-packages -include = {base}/include/python{py_version_short}{abiflags} -platinclude = {platbase}/include/python{py_version_short}{abiflags} -data = {base} - -[posix_home] -stdlib = {base}/lib/python -platstdlib = {base}/lib/python -purelib = {base}/lib/python -platlib = {base}/lib/python -include = {base}/include/python -platinclude = {base}/include/python -scripts = {base}/bin -data = {base} - -[nt] -stdlib = {base}/Lib -platstdlib = {base}/Lib -purelib = {base}/Lib/site-packages -platlib = {base}/Lib/site-packages -include = {base}/Include -platinclude = {base}/Include -scripts = {base}/Scripts -data = {base} - -[os2] -stdlib = {base}/Lib -platstdlib = {base}/Lib -purelib = {base}/Lib/site-packages -platlib = {base}/Lib/site-packages -include = {base}/Include -platinclude = {base}/Include -scripts = {base}/Scripts -data = {base} - -[os2_home] -stdlib = {userbase}/lib/python{py_version_short} -platstdlib = {userbase}/lib/python{py_version_short} -purelib = {userbase}/lib/python{py_version_short}/site-packages -platlib = {userbase}/lib/python{py_version_short}/site-packages -include = {userbase}/include/python{py_version_short} -scripts = {userbase}/bin -data = {userbase} - -[nt_user] -stdlib = {userbase}/Python{py_version_nodot} -platstdlib = {userbase}/Python{py_version_nodot} -purelib = {userbase}/Python{py_version_nodot}/site-packages -platlib = {userbase}/Python{py_version_nodot}/site-packages -include = {userbase}/Python{py_version_nodot}/Include -scripts = {userbase}/Scripts -data = {userbase} - -[posix_user] -stdlib = {userbase}/lib/python{py_version_short} -platstdlib = {userbase}/lib/python{py_version_short} -purelib = {userbase}/lib/python{py_version_short}/site-packages -platlib = {userbase}/lib/python{py_version_short}/site-packages -include = {userbase}/include/python{py_version_short} -scripts = {userbase}/bin -data = {userbase} - -[osx_framework_user] -stdlib = {userbase}/lib/python -platstdlib = {userbase}/lib/python -purelib = {userbase}/lib/python/site-packages -platlib = {userbase}/lib/python/site-packages -include = {userbase}/include -scripts = {userbase}/bin -data = {userbase} diff --git a/src/build_utils/distlib/_backport/sysconfig.py b/src/build_utils/distlib/_backport/sysconfig.py deleted file mode 100644 index 1d3132679..000000000 --- a/src/build_utils/distlib/_backport/sysconfig.py +++ /dev/null @@ -1,788 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Access to Python's configuration information.""" - -import codecs -import os -import re -import sys -from os.path import pardir, realpath -try: - import configparser -except ImportError: - import ConfigParser as configparser - - -__all__ = [ - 'get_config_h_filename', - 'get_config_var', - 'get_config_vars', - 'get_makefile_filename', - 'get_path', - 'get_path_names', - 'get_paths', - 'get_platform', - 'get_python_version', - 'get_scheme_names', - 'parse_config_h', -] - - -def _safe_realpath(path): - try: - return realpath(path) - except OSError: - return path - - -if sys.executable: - _PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable)) -else: - # sys.executable can be empty if argv[0] has been changed and Python is - # unable to retrieve the real program name - _PROJECT_BASE = _safe_realpath(os.getcwd()) - -if os.name == "nt" and "pcbuild" in _PROJECT_BASE[-8:].lower(): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir)) -# PC/VS7.1 -if os.name == "nt" and "\\pc\\v" in _PROJECT_BASE[-10:].lower(): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) -# PC/AMD64 -if os.name == "nt" and "\\pcbuild\\amd64" in _PROJECT_BASE[-14:].lower(): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) - - -def is_python_build(): - for fn in ("Setup.dist", "Setup.local"): - if os.path.isfile(os.path.join(_PROJECT_BASE, "Modules", fn)): - return True - return False - -_PYTHON_BUILD = is_python_build() - -_cfg_read = False - -def _ensure_cfg_read(): - global _cfg_read - if not _cfg_read: - from ..resources import finder - backport_package = __name__.rsplit('.', 1)[0] - _finder = finder(backport_package) - _cfgfile = _finder.find('sysconfig.cfg') - assert _cfgfile, 'sysconfig.cfg exists' - with _cfgfile.as_stream() as s: - _SCHEMES.readfp(s) - if _PYTHON_BUILD: - for scheme in ('posix_prefix', 'posix_home'): - _SCHEMES.set(scheme, 'include', '{srcdir}/Include') - _SCHEMES.set(scheme, 'platinclude', '{projectbase}/.') - - _cfg_read = True - - -_SCHEMES = configparser.RawConfigParser() -_VAR_REPL = re.compile(r'\{([^{]*?)\}') - -def _expand_globals(config): - _ensure_cfg_read() - if config.has_section('globals'): - globals = config.items('globals') - else: - globals = tuple() - - sections = config.sections() - for section in sections: - if section == 'globals': - continue - for option, value in globals: - if config.has_option(section, option): - continue - config.set(section, option, value) - config.remove_section('globals') - - # now expanding local variables defined in the cfg file - # - for section in config.sections(): - variables = dict(config.items(section)) - - def _replacer(matchobj): - name = matchobj.group(1) - if name in variables: - return variables[name] - return matchobj.group(0) - - for option, value in config.items(section): - config.set(section, option, _VAR_REPL.sub(_replacer, value)) - -#_expand_globals(_SCHEMES) - - # FIXME don't rely on sys.version here, its format is an implementation detail - # of CPython, use sys.version_info or sys.hexversion -_PY_VERSION = sys.version.split()[0] -_PY_VERSION_SHORT = sys.version[:3] -_PY_VERSION_SHORT_NO_DOT = _PY_VERSION[0] + _PY_VERSION[2] -_PREFIX = os.path.normpath(sys.prefix) -_EXEC_PREFIX = os.path.normpath(sys.exec_prefix) -_CONFIG_VARS = None -_USER_BASE = None - - -def _subst_vars(path, local_vars): - """In the string `path`, replace tokens like {some.thing} with the - corresponding value from the map `local_vars`. - - If there is no corresponding value, leave the token unchanged. - """ - def _replacer(matchobj): - name = matchobj.group(1) - if name in local_vars: - return local_vars[name] - elif name in os.environ: - return os.environ[name] - return matchobj.group(0) - return _VAR_REPL.sub(_replacer, path) - - -def _extend_dict(target_dict, other_dict): - target_keys = target_dict.keys() - for key, value in other_dict.items(): - if key in target_keys: - continue - target_dict[key] = value - - -def _expand_vars(scheme, vars): - res = {} - if vars is None: - vars = {} - _extend_dict(vars, get_config_vars()) - - for key, value in _SCHEMES.items(scheme): - if os.name in ('posix', 'nt'): - value = os.path.expanduser(value) - res[key] = os.path.normpath(_subst_vars(value, vars)) - return res - - -def format_value(value, vars): - def _replacer(matchobj): - name = matchobj.group(1) - if name in vars: - return vars[name] - return matchobj.group(0) - return _VAR_REPL.sub(_replacer, value) - - -def _get_default_scheme(): - if os.name == 'posix': - # the default scheme for posix is posix_prefix - return 'posix_prefix' - return os.name - - -def _getuserbase(): - env_base = os.environ.get("PYTHONUSERBASE", None) - - def joinuser(*args): - return os.path.expanduser(os.path.join(*args)) - - # what about 'os2emx', 'riscos' ? - if os.name == "nt": - base = os.environ.get("APPDATA") or "~" - if env_base: - return env_base - else: - return joinuser(base, "Python") - - if sys.platform == "darwin": - framework = get_config_var("PYTHONFRAMEWORK") - if framework: - if env_base: - return env_base - else: - return joinuser("~", "Library", framework, "%d.%d" % - sys.version_info[:2]) - - if env_base: - return env_base - else: - return joinuser("~", ".local") - - -def _parse_makefile(filename, vars=None): - """Parse a Makefile-style file. - - A dictionary containing name/value pairs is returned. If an - optional dictionary is passed in as the second argument, it is - used instead of a new dictionary. - """ - # Regexes needed for parsing Makefile (and similar syntaxes, - # like old-style Setup files). - _variable_rx = re.compile("([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)") - _findvar1_rx = re.compile(r"\$\(([A-Za-z][A-Za-z0-9_]*)\)") - _findvar2_rx = re.compile(r"\${([A-Za-z][A-Za-z0-9_]*)}") - - if vars is None: - vars = {} - done = {} - notdone = {} - - with codecs.open(filename, encoding='utf-8', errors="surrogateescape") as f: - lines = f.readlines() - - for line in lines: - if line.startswith('#') or line.strip() == '': - continue - m = _variable_rx.match(line) - if m: - n, v = m.group(1, 2) - v = v.strip() - # `$$' is a literal `$' in make - tmpv = v.replace('$$', '') - - if "$" in tmpv: - notdone[n] = v - else: - try: - v = int(v) - except ValueError: - # insert literal `$' - done[n] = v.replace('$$', '$') - else: - done[n] = v - - # do variable interpolation here - variables = list(notdone.keys()) - - # Variables with a 'PY_' prefix in the makefile. These need to - # be made available without that prefix through sysconfig. - # Special care is needed to ensure that variable expansion works, even - # if the expansion uses the name without a prefix. - renamed_variables = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS') - - while len(variables) > 0: - for name in tuple(variables): - value = notdone[name] - m = _findvar1_rx.search(value) or _findvar2_rx.search(value) - if m is not None: - n = m.group(1) - found = True - if n in done: - item = str(done[n]) - elif n in notdone: - # get it on a subsequent round - found = False - elif n in os.environ: - # do it like make: fall back to environment - item = os.environ[n] - - elif n in renamed_variables: - if (name.startswith('PY_') and - name[3:] in renamed_variables): - item = "" - - elif 'PY_' + n in notdone: - found = False - - else: - item = str(done['PY_' + n]) - - else: - done[n] = item = "" - - if found: - after = value[m.end():] - value = value[:m.start()] + item + after - if "$" in after: - notdone[name] = value - else: - try: - value = int(value) - except ValueError: - done[name] = value.strip() - else: - done[name] = value - variables.remove(name) - - if (name.startswith('PY_') and - name[3:] in renamed_variables): - - name = name[3:] - if name not in done: - done[name] = value - - else: - # bogus variable reference (e.g. "prefix=$/opt/python"); - # just drop it since we can't deal - done[name] = value - variables.remove(name) - - # strip spurious spaces - for k, v in done.items(): - if isinstance(v, str): - done[k] = v.strip() - - # save the results in the global dictionary - vars.update(done) - return vars - - -def get_makefile_filename(): - """Return the path of the Makefile.""" - if _PYTHON_BUILD: - return os.path.join(_PROJECT_BASE, "Makefile") - if hasattr(sys, 'abiflags'): - config_dir_name = 'config-%s%s' % (_PY_VERSION_SHORT, sys.abiflags) - else: - config_dir_name = 'config' - return os.path.join(get_path('stdlib'), config_dir_name, 'Makefile') - - -def _init_posix(vars): - """Initialize the module as appropriate for POSIX systems.""" - # load the installed Makefile: - makefile = get_makefile_filename() - try: - _parse_makefile(makefile, vars) - except IOError as e: - msg = "invalid Python installation: unable to open %s" % makefile - if hasattr(e, "strerror"): - msg = msg + " (%s)" % e.strerror - raise IOError(msg) - # load the installed pyconfig.h: - config_h = get_config_h_filename() - try: - with open(config_h) as f: - parse_config_h(f, vars) - except IOError as e: - msg = "invalid Python installation: unable to open %s" % config_h - if hasattr(e, "strerror"): - msg = msg + " (%s)" % e.strerror - raise IOError(msg) - # On AIX, there are wrong paths to the linker scripts in the Makefile - # -- these paths are relative to the Python source, but when installed - # the scripts are in another directory. - if _PYTHON_BUILD: - vars['LDSHARED'] = vars['BLDSHARED'] - - -def _init_non_posix(vars): - """Initialize the module as appropriate for NT""" - # set basic install directories - vars['LIBDEST'] = get_path('stdlib') - vars['BINLIBDEST'] = get_path('platstdlib') - vars['INCLUDEPY'] = get_path('include') - vars['SO'] = '.pyd' - vars['EXE'] = '.exe' - vars['VERSION'] = _PY_VERSION_SHORT_NO_DOT - vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable)) - -# -# public APIs -# - - -def parse_config_h(fp, vars=None): - """Parse a config.h-style file. - - A dictionary containing name/value pairs is returned. If an - optional dictionary is passed in as the second argument, it is - used instead of a new dictionary. - """ - if vars is None: - vars = {} - define_rx = re.compile("#define ([A-Z][A-Za-z0-9_]+) (.*)\n") - undef_rx = re.compile("/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n") - - while True: - line = fp.readline() - if not line: - break - m = define_rx.match(line) - if m: - n, v = m.group(1, 2) - try: - v = int(v) - except ValueError: - pass - vars[n] = v - else: - m = undef_rx.match(line) - if m: - vars[m.group(1)] = 0 - return vars - - -def get_config_h_filename(): - """Return the path of pyconfig.h.""" - if _PYTHON_BUILD: - if os.name == "nt": - inc_dir = os.path.join(_PROJECT_BASE, "PC") - else: - inc_dir = _PROJECT_BASE - else: - inc_dir = get_path('platinclude') - return os.path.join(inc_dir, 'pyconfig.h') - - -def get_scheme_names(): - """Return a tuple containing the schemes names.""" - return tuple(sorted(_SCHEMES.sections())) - - -def get_path_names(): - """Return a tuple containing the paths names.""" - # xxx see if we want a static list - return _SCHEMES.options('posix_prefix') - - -def get_paths(scheme=_get_default_scheme(), vars=None, expand=True): - """Return a mapping containing an install scheme. - - ``scheme`` is the install scheme name. If not provided, it will - return the default scheme for the current platform. - """ - _ensure_cfg_read() - if expand: - return _expand_vars(scheme, vars) - else: - return dict(_SCHEMES.items(scheme)) - - -def get_path(name, scheme=_get_default_scheme(), vars=None, expand=True): - """Return a path corresponding to the scheme. - - ``scheme`` is the install scheme name. - """ - return get_paths(scheme, vars, expand)[name] - - -def get_config_vars(*args): - """With no arguments, return a dictionary of all configuration - variables relevant for the current platform. - - On Unix, this means every variable defined in Python's installed Makefile; - On Windows and Mac OS it's a much smaller set. - - With arguments, return a list of values that result from looking up - each argument in the configuration variable dictionary. - """ - global _CONFIG_VARS - if _CONFIG_VARS is None: - _CONFIG_VARS = {} - # Normalized versions of prefix and exec_prefix are handy to have; - # in fact, these are the standard versions used most places in the - # distutils2 module. - _CONFIG_VARS['prefix'] = _PREFIX - _CONFIG_VARS['exec_prefix'] = _EXEC_PREFIX - _CONFIG_VARS['py_version'] = _PY_VERSION - _CONFIG_VARS['py_version_short'] = _PY_VERSION_SHORT - _CONFIG_VARS['py_version_nodot'] = _PY_VERSION[0] + _PY_VERSION[2] - _CONFIG_VARS['base'] = _PREFIX - _CONFIG_VARS['platbase'] = _EXEC_PREFIX - _CONFIG_VARS['projectbase'] = _PROJECT_BASE - try: - _CONFIG_VARS['abiflags'] = sys.abiflags - except AttributeError: - # sys.abiflags may not be defined on all platforms. - _CONFIG_VARS['abiflags'] = '' - - if os.name in ('nt', 'os2'): - _init_non_posix(_CONFIG_VARS) - if os.name == 'posix': - _init_posix(_CONFIG_VARS) - # Setting 'userbase' is done below the call to the - # init function to enable using 'get_config_var' in - # the init-function. - if sys.version >= '2.6': - _CONFIG_VARS['userbase'] = _getuserbase() - - if 'srcdir' not in _CONFIG_VARS: - _CONFIG_VARS['srcdir'] = _PROJECT_BASE - else: - _CONFIG_VARS['srcdir'] = _safe_realpath(_CONFIG_VARS['srcdir']) - - # Convert srcdir into an absolute path if it appears necessary. - # Normally it is relative to the build directory. However, during - # testing, for example, we might be running a non-installed python - # from a different directory. - if _PYTHON_BUILD and os.name == "posix": - base = _PROJECT_BASE - try: - cwd = os.getcwd() - except OSError: - cwd = None - if (not os.path.isabs(_CONFIG_VARS['srcdir']) and - base != cwd): - # srcdir is relative and we are not in the same directory - # as the executable. Assume executable is in the build - # directory and make srcdir absolute. - srcdir = os.path.join(base, _CONFIG_VARS['srcdir']) - _CONFIG_VARS['srcdir'] = os.path.normpath(srcdir) - - if sys.platform == 'darwin': - kernel_version = os.uname()[2] # Kernel version (8.4.3) - major_version = int(kernel_version.split('.')[0]) - - if major_version < 8: - # On Mac OS X before 10.4, check if -arch and -isysroot - # are in CFLAGS or LDFLAGS and remove them if they are. - # This is needed when building extensions on a 10.3 system - # using a universal build of python. - for key in ('LDFLAGS', 'BASECFLAGS', - # a number of derived variables. These need to be - # patched up as well. - 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - flags = _CONFIG_VARS[key] - flags = re.sub('-arch\s+\w+\s', ' ', flags) - flags = re.sub('-isysroot [^ \t]*', ' ', flags) - _CONFIG_VARS[key] = flags - else: - # Allow the user to override the architecture flags using - # an environment variable. - # NOTE: This name was introduced by Apple in OSX 10.5 and - # is used by several scripting languages distributed with - # that OS release. - if 'ARCHFLAGS' in os.environ: - arch = os.environ['ARCHFLAGS'] - for key in ('LDFLAGS', 'BASECFLAGS', - # a number of derived variables. These need to be - # patched up as well. - 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - - flags = _CONFIG_VARS[key] - flags = re.sub('-arch\s+\w+\s', ' ', flags) - flags = flags + ' ' + arch - _CONFIG_VARS[key] = flags - - # If we're on OSX 10.5 or later and the user tries to - # compiles an extension using an SDK that is not present - # on the current machine it is better to not use an SDK - # than to fail. - # - # The major usecase for this is users using a Python.org - # binary installer on OSX 10.6: that installer uses - # the 10.4u SDK, but that SDK is not installed by default - # when you install Xcode. - # - CFLAGS = _CONFIG_VARS.get('CFLAGS', '') - m = re.search('-isysroot\s+(\S+)', CFLAGS) - if m is not None: - sdk = m.group(1) - if not os.path.exists(sdk): - for key in ('LDFLAGS', 'BASECFLAGS', - # a number of derived variables. These need to be - # patched up as well. - 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - - flags = _CONFIG_VARS[key] - flags = re.sub('-isysroot\s+\S+(\s|$)', ' ', flags) - _CONFIG_VARS[key] = flags - - if args: - vals = [] - for name in args: - vals.append(_CONFIG_VARS.get(name)) - return vals - else: - return _CONFIG_VARS - - -def get_config_var(name): - """Return the value of a single variable using the dictionary returned by - 'get_config_vars()'. - - Equivalent to get_config_vars().get(name) - """ - return get_config_vars().get(name) - - -def get_platform(): - """Return a string that identifies the current platform. - - This is used mainly to distinguish platform-specific build directories and - platform-specific built distributions. Typically includes the OS name - and version and the architecture (as supplied by 'os.uname()'), - although the exact information included depends on the OS; eg. for IRIX - the architecture isn't particularly important (IRIX only runs on SGI - hardware), but for Linux the kernel version isn't particularly - important. - - Examples of returned values: - linux-i586 - linux-alpha (?) - solaris-2.6-sun4u - irix-5.3 - irix64-6.2 - - Windows will return one of: - win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) - win-ia64 (64bit Windows on Itanium) - win32 (all others - specifically, sys.platform is returned) - - For other non-POSIX platforms, currently just returns 'sys.platform'. - """ - if os.name == 'nt': - # sniff sys.version for architecture. - prefix = " bit (" - i = sys.version.find(prefix) - if i == -1: - return sys.platform - j = sys.version.find(")", i) - look = sys.version[i+len(prefix):j].lower() - if look == 'amd64': - return 'win-amd64' - if look == 'itanium': - return 'win-ia64' - return sys.platform - - if os.name != "posix" or not hasattr(os, 'uname'): - # XXX what about the architecture? NT is Intel or Alpha, - # Mac OS is M68k or PPC, etc. - return sys.platform - - # Try to distinguish various flavours of Unix - osname, host, release, version, machine = os.uname() - - # Convert the OS name to lowercase, remove '/' characters - # (to accommodate BSD/OS), and translate spaces (for "Power Macintosh") - osname = osname.lower().replace('/', '') - machine = machine.replace(' ', '_') - machine = machine.replace('/', '-') - - if osname[:5] == "linux": - # At least on Linux/Intel, 'machine' is the processor -- - # i386, etc. - # XXX what about Alpha, SPARC, etc? - return "%s-%s" % (osname, machine) - elif osname[:5] == "sunos": - if release[0] >= "5": # SunOS 5 == Solaris 2 - osname = "solaris" - release = "%d.%s" % (int(release[0]) - 3, release[2:]) - # fall through to standard osname-release-machine representation - elif osname[:4] == "irix": # could be "irix64"! - return "%s-%s" % (osname, release) - elif osname[:3] == "aix": - return "%s-%s.%s" % (osname, version, release) - elif osname[:6] == "cygwin": - osname = "cygwin" - rel_re = re.compile(r'[\d.]+') - m = rel_re.match(release) - if m: - release = m.group() - elif osname[:6] == "darwin": - # - # For our purposes, we'll assume that the system version from - # distutils' perspective is what MACOSX_DEPLOYMENT_TARGET is set - # to. This makes the compatibility story a bit more sane because the - # machine is going to compile and link as if it were - # MACOSX_DEPLOYMENT_TARGET. - cfgvars = get_config_vars() - macver = cfgvars.get('MACOSX_DEPLOYMENT_TARGET') - - if True: - # Always calculate the release of the running machine, - # needed to determine if we can build fat binaries or not. - - macrelease = macver - # Get the system version. Reading this plist is a documented - # way to get the system version (see the documentation for - # the Gestalt Manager) - try: - f = open('/System/Library/CoreServices/SystemVersion.plist') - except IOError: - # We're on a plain darwin box, fall back to the default - # behaviour. - pass - else: - try: - m = re.search(r'ProductUserVisibleVersion\s*' - r'(.*?)', f.read()) - finally: - f.close() - if m is not None: - macrelease = '.'.join(m.group(1).split('.')[:2]) - # else: fall back to the default behaviour - - if not macver: - macver = macrelease - - if macver: - release = macver - osname = "macosx" - - if ((macrelease + '.') >= '10.4.' and - '-arch' in get_config_vars().get('CFLAGS', '').strip()): - # The universal build will build fat binaries, but not on - # systems before 10.4 - # - # Try to detect 4-way universal builds, those have machine-type - # 'universal' instead of 'fat'. - - machine = 'fat' - cflags = get_config_vars().get('CFLAGS') - - archs = re.findall('-arch\s+(\S+)', cflags) - archs = tuple(sorted(set(archs))) - - if len(archs) == 1: - machine = archs[0] - elif archs == ('i386', 'ppc'): - machine = 'fat' - elif archs == ('i386', 'x86_64'): - machine = 'intel' - elif archs == ('i386', 'ppc', 'x86_64'): - machine = 'fat3' - elif archs == ('ppc64', 'x86_64'): - machine = 'fat64' - elif archs == ('i386', 'ppc', 'ppc64', 'x86_64'): - machine = 'universal' - else: - raise ValueError( - "Don't know machine value for archs=%r" % (archs,)) - - elif machine == 'i386': - # On OSX the machine type returned by uname is always the - # 32-bit variant, even if the executable architecture is - # the 64-bit variant - if sys.maxsize >= 2**32: - machine = 'x86_64' - - elif machine in ('PowerPC', 'Power_Macintosh'): - # Pick a sane name for the PPC architecture. - # See 'i386' case - if sys.maxsize >= 2**32: - machine = 'ppc64' - else: - machine = 'ppc' - - return "%s-%s-%s" % (osname, release, machine) - - -def get_python_version(): - return _PY_VERSION_SHORT - - -def _print_dict(title, data): - for index, (key, value) in enumerate(sorted(data.items())): - if index == 0: - print('%s: ' % (title)) - print('\t%s = "%s"' % (key, value)) - - -def _main(): - """Display all information sysconfig detains.""" - print('Platform: "%s"' % get_platform()) - print('Python version: "%s"' % get_python_version()) - print('Current installation scheme: "%s"' % _get_default_scheme()) - print() - _print_dict('Paths', get_paths()) - print() - _print_dict('Variables', get_config_vars()) - - -if __name__ == '__main__': - _main() diff --git a/src/build_utils/distlib/_backport/tarfile.py b/src/build_utils/distlib/_backport/tarfile.py deleted file mode 100644 index 0580fb795..000000000 --- a/src/build_utils/distlib/_backport/tarfile.py +++ /dev/null @@ -1,2607 +0,0 @@ -#------------------------------------------------------------------- -# tarfile.py -#------------------------------------------------------------------- -# Copyright (C) 2002 Lars Gustaebel -# All rights reserved. -# -# Permission is hereby granted, free of charge, to any person -# obtaining a copy of this software and associated documentation -# files (the "Software"), to deal in the Software without -# restriction, including without limitation the rights to use, -# copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following -# conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -from __future__ import print_function - -"""Read from and write to tar format archives. -""" - -__version__ = "$Revision$" - -version = "0.9.0" -__author__ = "Lars Gust\u00e4bel (lars@gustaebel.de)" -__date__ = "$Date: 2011-02-25 17:42:01 +0200 (Fri, 25 Feb 2011) $" -__cvsid__ = "$Id: tarfile.py 88586 2011-02-25 15:42:01Z marc-andre.lemburg $" -__credits__ = "Gustavo Niemeyer, Niels Gust\u00e4bel, Richard Townsend." - -#--------- -# Imports -#--------- -import sys -import os -import stat -import errno -import time -import struct -import copy -import re - -try: - import grp, pwd -except ImportError: - grp = pwd = None - -# os.symlink on Windows prior to 6.0 raises NotImplementedError -symlink_exception = (AttributeError, NotImplementedError) -try: - # WindowsError (1314) will be raised if the caller does not hold the - # SeCreateSymbolicLinkPrivilege privilege - symlink_exception += (WindowsError,) -except NameError: - pass - -# from tarfile import * -__all__ = ["TarFile", "TarInfo", "is_tarfile", "TarError"] - -if sys.version_info[0] < 3: - import __builtin__ as builtins -else: - import builtins - -_open = builtins.open # Since 'open' is TarFile.open - -#--------------------------------------------------------- -# tar constants -#--------------------------------------------------------- -NUL = b"\0" # the null character -BLOCKSIZE = 512 # length of processing blocks -RECORDSIZE = BLOCKSIZE * 20 # length of records -GNU_MAGIC = b"ustar \0" # magic gnu tar string -POSIX_MAGIC = b"ustar\x0000" # magic posix tar string - -LENGTH_NAME = 100 # maximum length of a filename -LENGTH_LINK = 100 # maximum length of a linkname -LENGTH_PREFIX = 155 # maximum length of the prefix field - -REGTYPE = b"0" # regular file -AREGTYPE = b"\0" # regular file -LNKTYPE = b"1" # link (inside tarfile) -SYMTYPE = b"2" # symbolic link -CHRTYPE = b"3" # character special device -BLKTYPE = b"4" # block special device -DIRTYPE = b"5" # directory -FIFOTYPE = b"6" # fifo special device -CONTTYPE = b"7" # contiguous file - -GNUTYPE_LONGNAME = b"L" # GNU tar longname -GNUTYPE_LONGLINK = b"K" # GNU tar longlink -GNUTYPE_SPARSE = b"S" # GNU tar sparse file - -XHDTYPE = b"x" # POSIX.1-2001 extended header -XGLTYPE = b"g" # POSIX.1-2001 global header -SOLARIS_XHDTYPE = b"X" # Solaris extended header - -USTAR_FORMAT = 0 # POSIX.1-1988 (ustar) format -GNU_FORMAT = 1 # GNU tar format -PAX_FORMAT = 2 # POSIX.1-2001 (pax) format -DEFAULT_FORMAT = GNU_FORMAT - -#--------------------------------------------------------- -# tarfile constants -#--------------------------------------------------------- -# File types that tarfile supports: -SUPPORTED_TYPES = (REGTYPE, AREGTYPE, LNKTYPE, - SYMTYPE, DIRTYPE, FIFOTYPE, - CONTTYPE, CHRTYPE, BLKTYPE, - GNUTYPE_LONGNAME, GNUTYPE_LONGLINK, - GNUTYPE_SPARSE) - -# File types that will be treated as a regular file. -REGULAR_TYPES = (REGTYPE, AREGTYPE, - CONTTYPE, GNUTYPE_SPARSE) - -# File types that are part of the GNU tar format. -GNU_TYPES = (GNUTYPE_LONGNAME, GNUTYPE_LONGLINK, - GNUTYPE_SPARSE) - -# Fields from a pax header that override a TarInfo attribute. -PAX_FIELDS = ("path", "linkpath", "size", "mtime", - "uid", "gid", "uname", "gname") - -# Fields from a pax header that are affected by hdrcharset. -PAX_NAME_FIELDS = set(("path", "linkpath", "uname", "gname")) - -# Fields in a pax header that are numbers, all other fields -# are treated as strings. -PAX_NUMBER_FIELDS = { - "atime": float, - "ctime": float, - "mtime": float, - "uid": int, - "gid": int, - "size": int -} - -#--------------------------------------------------------- -# Bits used in the mode field, values in octal. -#--------------------------------------------------------- -S_IFLNK = 0o120000 # symbolic link -S_IFREG = 0o100000 # regular file -S_IFBLK = 0o060000 # block device -S_IFDIR = 0o040000 # directory -S_IFCHR = 0o020000 # character device -S_IFIFO = 0o010000 # fifo - -TSUID = 0o4000 # set UID on execution -TSGID = 0o2000 # set GID on execution -TSVTX = 0o1000 # reserved - -TUREAD = 0o400 # read by owner -TUWRITE = 0o200 # write by owner -TUEXEC = 0o100 # execute/search by owner -TGREAD = 0o040 # read by group -TGWRITE = 0o020 # write by group -TGEXEC = 0o010 # execute/search by group -TOREAD = 0o004 # read by other -TOWRITE = 0o002 # write by other -TOEXEC = 0o001 # execute/search by other - -#--------------------------------------------------------- -# initialization -#--------------------------------------------------------- -if os.name in ("nt", "ce"): - ENCODING = "utf-8" -else: - ENCODING = sys.getfilesystemencoding() - -#--------------------------------------------------------- -# Some useful functions -#--------------------------------------------------------- - -def stn(s, length, encoding, errors): - """Convert a string to a null-terminated bytes object. - """ - s = s.encode(encoding, errors) - return s[:length] + (length - len(s)) * NUL - -def nts(s, encoding, errors): - """Convert a null-terminated bytes object to a string. - """ - p = s.find(b"\0") - if p != -1: - s = s[:p] - return s.decode(encoding, errors) - -def nti(s): - """Convert a number field to a python number. - """ - # There are two possible encodings for a number field, see - # itn() below. - if s[0] != chr(0o200): - try: - n = int(nts(s, "ascii", "strict") or "0", 8) - except ValueError: - raise InvalidHeaderError("invalid header") - else: - n = 0 - for i in range(len(s) - 1): - n <<= 8 - n += ord(s[i + 1]) - return n - -def itn(n, digits=8, format=DEFAULT_FORMAT): - """Convert a python number to a number field. - """ - # POSIX 1003.1-1988 requires numbers to be encoded as a string of - # octal digits followed by a null-byte, this allows values up to - # (8**(digits-1))-1. GNU tar allows storing numbers greater than - # that if necessary. A leading 0o200 byte indicates this particular - # encoding, the following digits-1 bytes are a big-endian - # representation. This allows values up to (256**(digits-1))-1. - if 0 <= n < 8 ** (digits - 1): - s = ("%0*o" % (digits - 1, n)).encode("ascii") + NUL - else: - if format != GNU_FORMAT or n >= 256 ** (digits - 1): - raise ValueError("overflow in number field") - - if n < 0: - # XXX We mimic GNU tar's behaviour with negative numbers, - # this could raise OverflowError. - n = struct.unpack("L", struct.pack("l", n))[0] - - s = bytearray() - for i in range(digits - 1): - s.insert(0, n & 0o377) - n >>= 8 - s.insert(0, 0o200) - return s - -def calc_chksums(buf): - """Calculate the checksum for a member's header by summing up all - characters except for the chksum field which is treated as if - it was filled with spaces. According to the GNU tar sources, - some tars (Sun and NeXT) calculate chksum with signed char, - which will be different if there are chars in the buffer with - the high bit set. So we calculate two checksums, unsigned and - signed. - """ - unsigned_chksum = 256 + sum(struct.unpack("148B", buf[:148]) + struct.unpack("356B", buf[156:512])) - signed_chksum = 256 + sum(struct.unpack("148b", buf[:148]) + struct.unpack("356b", buf[156:512])) - return unsigned_chksum, signed_chksum - -def copyfileobj(src, dst, length=None): - """Copy length bytes from fileobj src to fileobj dst. - If length is None, copy the entire content. - """ - if length == 0: - return - if length is None: - while True: - buf = src.read(16*1024) - if not buf: - break - dst.write(buf) - return - - BUFSIZE = 16 * 1024 - blocks, remainder = divmod(length, BUFSIZE) - for b in range(blocks): - buf = src.read(BUFSIZE) - if len(buf) < BUFSIZE: - raise IOError("end of file reached") - dst.write(buf) - - if remainder != 0: - buf = src.read(remainder) - if len(buf) < remainder: - raise IOError("end of file reached") - dst.write(buf) - return - -filemode_table = ( - ((S_IFLNK, "l"), - (S_IFREG, "-"), - (S_IFBLK, "b"), - (S_IFDIR, "d"), - (S_IFCHR, "c"), - (S_IFIFO, "p")), - - ((TUREAD, "r"),), - ((TUWRITE, "w"),), - ((TUEXEC|TSUID, "s"), - (TSUID, "S"), - (TUEXEC, "x")), - - ((TGREAD, "r"),), - ((TGWRITE, "w"),), - ((TGEXEC|TSGID, "s"), - (TSGID, "S"), - (TGEXEC, "x")), - - ((TOREAD, "r"),), - ((TOWRITE, "w"),), - ((TOEXEC|TSVTX, "t"), - (TSVTX, "T"), - (TOEXEC, "x")) -) - -def filemode(mode): - """Convert a file's mode to a string of the form - -rwxrwxrwx. - Used by TarFile.list() - """ - perm = [] - for table in filemode_table: - for bit, char in table: - if mode & bit == bit: - perm.append(char) - break - else: - perm.append("-") - return "".join(perm) - -class TarError(Exception): - """Base exception.""" - pass -class ExtractError(TarError): - """General exception for extract errors.""" - pass -class ReadError(TarError): - """Exception for unreadble tar archives.""" - pass -class CompressionError(TarError): - """Exception for unavailable compression methods.""" - pass -class StreamError(TarError): - """Exception for unsupported operations on stream-like TarFiles.""" - pass -class HeaderError(TarError): - """Base exception for header errors.""" - pass -class EmptyHeaderError(HeaderError): - """Exception for empty headers.""" - pass -class TruncatedHeaderError(HeaderError): - """Exception for truncated headers.""" - pass -class EOFHeaderError(HeaderError): - """Exception for end of file headers.""" - pass -class InvalidHeaderError(HeaderError): - """Exception for invalid headers.""" - pass -class SubsequentHeaderError(HeaderError): - """Exception for missing and invalid extended headers.""" - pass - -#--------------------------- -# internal stream interface -#--------------------------- -class _LowLevelFile(object): - """Low-level file object. Supports reading and writing. - It is used instead of a regular file object for streaming - access. - """ - - def __init__(self, name, mode): - mode = { - "r": os.O_RDONLY, - "w": os.O_WRONLY | os.O_CREAT | os.O_TRUNC, - }[mode] - if hasattr(os, "O_BINARY"): - mode |= os.O_BINARY - self.fd = os.open(name, mode, 0o666) - - def close(self): - os.close(self.fd) - - def read(self, size): - return os.read(self.fd, size) - - def write(self, s): - os.write(self.fd, s) - -class _Stream(object): - """Class that serves as an adapter between TarFile and - a stream-like object. The stream-like object only - needs to have a read() or write() method and is accessed - blockwise. Use of gzip or bzip2 compression is possible. - A stream-like object could be for example: sys.stdin, - sys.stdout, a socket, a tape device etc. - - _Stream is intended to be used only internally. - """ - - def __init__(self, name, mode, comptype, fileobj, bufsize): - """Construct a _Stream object. - """ - self._extfileobj = True - if fileobj is None: - fileobj = _LowLevelFile(name, mode) - self._extfileobj = False - - if comptype == '*': - # Enable transparent compression detection for the - # stream interface - fileobj = _StreamProxy(fileobj) - comptype = fileobj.getcomptype() - - self.name = name or "" - self.mode = mode - self.comptype = comptype - self.fileobj = fileobj - self.bufsize = bufsize - self.buf = b"" - self.pos = 0 - self.closed = False - - try: - if comptype == "gz": - try: - import zlib - except ImportError: - raise CompressionError("zlib module is not available") - self.zlib = zlib - self.crc = zlib.crc32(b"") - if mode == "r": - self._init_read_gz() - else: - self._init_write_gz() - - if comptype == "bz2": - try: - import bz2 - except ImportError: - raise CompressionError("bz2 module is not available") - if mode == "r": - self.dbuf = b"" - self.cmp = bz2.BZ2Decompressor() - else: - self.cmp = bz2.BZ2Compressor() - except: - if not self._extfileobj: - self.fileobj.close() - self.closed = True - raise - - def __del__(self): - if hasattr(self, "closed") and not self.closed: - self.close() - - def _init_write_gz(self): - """Initialize for writing with gzip compression. - """ - self.cmp = self.zlib.compressobj(9, self.zlib.DEFLATED, - -self.zlib.MAX_WBITS, - self.zlib.DEF_MEM_LEVEL, - 0) - timestamp = struct.pack(" self.bufsize: - self.fileobj.write(self.buf[:self.bufsize]) - self.buf = self.buf[self.bufsize:] - - def close(self): - """Close the _Stream object. No operation should be - done on it afterwards. - """ - if self.closed: - return - - if self.mode == "w" and self.comptype != "tar": - self.buf += self.cmp.flush() - - if self.mode == "w" and self.buf: - self.fileobj.write(self.buf) - self.buf = b"" - if self.comptype == "gz": - # The native zlib crc is an unsigned 32-bit integer, but - # the Python wrapper implicitly casts that to a signed C - # long. So, on a 32-bit box self.crc may "look negative", - # while the same crc on a 64-bit box may "look positive". - # To avoid irksome warnings from the `struct` module, force - # it to look positive on all boxes. - self.fileobj.write(struct.pack("= 0: - blocks, remainder = divmod(pos - self.pos, self.bufsize) - for i in range(blocks): - self.read(self.bufsize) - self.read(remainder) - else: - raise StreamError("seeking backwards is not allowed") - return self.pos - - def read(self, size=None): - """Return the next size number of bytes from the stream. - If size is not defined, return all bytes of the stream - up to EOF. - """ - if size is None: - t = [] - while True: - buf = self._read(self.bufsize) - if not buf: - break - t.append(buf) - buf = "".join(t) - else: - buf = self._read(size) - self.pos += len(buf) - return buf - - def _read(self, size): - """Return size bytes from the stream. - """ - if self.comptype == "tar": - return self.__read(size) - - c = len(self.dbuf) - while c < size: - buf = self.__read(self.bufsize) - if not buf: - break - try: - buf = self.cmp.decompress(buf) - except IOError: - raise ReadError("invalid compressed data") - self.dbuf += buf - c += len(buf) - buf = self.dbuf[:size] - self.dbuf = self.dbuf[size:] - return buf - - def __read(self, size): - """Return size bytes from stream. If internal buffer is empty, - read another block from the stream. - """ - c = len(self.buf) - while c < size: - buf = self.fileobj.read(self.bufsize) - if not buf: - break - self.buf += buf - c += len(buf) - buf = self.buf[:size] - self.buf = self.buf[size:] - return buf -# class _Stream - -class _StreamProxy(object): - """Small proxy class that enables transparent compression - detection for the Stream interface (mode 'r|*'). - """ - - def __init__(self, fileobj): - self.fileobj = fileobj - self.buf = self.fileobj.read(BLOCKSIZE) - - def read(self, size): - self.read = self.fileobj.read - return self.buf - - def getcomptype(self): - if self.buf.startswith(b"\037\213\010"): - return "gz" - if self.buf.startswith(b"BZh91"): - return "bz2" - return "tar" - - def close(self): - self.fileobj.close() -# class StreamProxy - -class _BZ2Proxy(object): - """Small proxy class that enables external file object - support for "r:bz2" and "w:bz2" modes. This is actually - a workaround for a limitation in bz2 module's BZ2File - class which (unlike gzip.GzipFile) has no support for - a file object argument. - """ - - blocksize = 16 * 1024 - - def __init__(self, fileobj, mode): - self.fileobj = fileobj - self.mode = mode - self.name = getattr(self.fileobj, "name", None) - self.init() - - def init(self): - import bz2 - self.pos = 0 - if self.mode == "r": - self.bz2obj = bz2.BZ2Decompressor() - self.fileobj.seek(0) - self.buf = b"" - else: - self.bz2obj = bz2.BZ2Compressor() - - def read(self, size): - x = len(self.buf) - while x < size: - raw = self.fileobj.read(self.blocksize) - if not raw: - break - data = self.bz2obj.decompress(raw) - self.buf += data - x += len(data) - - buf = self.buf[:size] - self.buf = self.buf[size:] - self.pos += len(buf) - return buf - - def seek(self, pos): - if pos < self.pos: - self.init() - self.read(pos - self.pos) - - def tell(self): - return self.pos - - def write(self, data): - self.pos += len(data) - raw = self.bz2obj.compress(data) - self.fileobj.write(raw) - - def close(self): - if self.mode == "w": - raw = self.bz2obj.flush() - self.fileobj.write(raw) -# class _BZ2Proxy - -#------------------------ -# Extraction file object -#------------------------ -class _FileInFile(object): - """A thin wrapper around an existing file object that - provides a part of its data as an individual file - object. - """ - - def __init__(self, fileobj, offset, size, blockinfo=None): - self.fileobj = fileobj - self.offset = offset - self.size = size - self.position = 0 - - if blockinfo is None: - blockinfo = [(0, size)] - - # Construct a map with data and zero blocks. - self.map_index = 0 - self.map = [] - lastpos = 0 - realpos = self.offset - for offset, size in blockinfo: - if offset > lastpos: - self.map.append((False, lastpos, offset, None)) - self.map.append((True, offset, offset + size, realpos)) - realpos += size - lastpos = offset + size - if lastpos < self.size: - self.map.append((False, lastpos, self.size, None)) - - def seekable(self): - if not hasattr(self.fileobj, "seekable"): - # XXX gzip.GzipFile and bz2.BZ2File - return True - return self.fileobj.seekable() - - def tell(self): - """Return the current file position. - """ - return self.position - - def seek(self, position): - """Seek to a position in the file. - """ - self.position = position - - def read(self, size=None): - """Read data from the file. - """ - if size is None: - size = self.size - self.position - else: - size = min(size, self.size - self.position) - - buf = b"" - while size > 0: - while True: - data, start, stop, offset = self.map[self.map_index] - if start <= self.position < stop: - break - else: - self.map_index += 1 - if self.map_index == len(self.map): - self.map_index = 0 - length = min(size, stop - self.position) - if data: - self.fileobj.seek(offset + (self.position - start)) - buf += self.fileobj.read(length) - else: - buf += NUL * length - size -= length - self.position += length - return buf -#class _FileInFile - - -class ExFileObject(object): - """File-like object for reading an archive member. - Is returned by TarFile.extractfile(). - """ - blocksize = 1024 - - def __init__(self, tarfile, tarinfo): - self.fileobj = _FileInFile(tarfile.fileobj, - tarinfo.offset_data, - tarinfo.size, - tarinfo.sparse) - self.name = tarinfo.name - self.mode = "r" - self.closed = False - self.size = tarinfo.size - - self.position = 0 - self.buffer = b"" - - def readable(self): - return True - - def writable(self): - return False - - def seekable(self): - return self.fileobj.seekable() - - def read(self, size=None): - """Read at most size bytes from the file. If size is not - present or None, read all data until EOF is reached. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - buf = b"" - if self.buffer: - if size is None: - buf = self.buffer - self.buffer = b"" - else: - buf = self.buffer[:size] - self.buffer = self.buffer[size:] - - if size is None: - buf += self.fileobj.read() - else: - buf += self.fileobj.read(size - len(buf)) - - self.position += len(buf) - return buf - - # XXX TextIOWrapper uses the read1() method. - read1 = read - - def readline(self, size=-1): - """Read one entire line from the file. If size is present - and non-negative, return a string with at most that - size, which may be an incomplete line. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - pos = self.buffer.find(b"\n") + 1 - if pos == 0: - # no newline found. - while True: - buf = self.fileobj.read(self.blocksize) - self.buffer += buf - if not buf or b"\n" in buf: - pos = self.buffer.find(b"\n") + 1 - if pos == 0: - # no newline found. - pos = len(self.buffer) - break - - if size != -1: - pos = min(size, pos) - - buf = self.buffer[:pos] - self.buffer = self.buffer[pos:] - self.position += len(buf) - return buf - - def readlines(self): - """Return a list with all remaining lines. - """ - result = [] - while True: - line = self.readline() - if not line: break - result.append(line) - return result - - def tell(self): - """Return the current file position. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - return self.position - - def seek(self, pos, whence=os.SEEK_SET): - """Seek to a position in the file. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - if whence == os.SEEK_SET: - self.position = min(max(pos, 0), self.size) - elif whence == os.SEEK_CUR: - if pos < 0: - self.position = max(self.position + pos, 0) - else: - self.position = min(self.position + pos, self.size) - elif whence == os.SEEK_END: - self.position = max(min(self.size + pos, self.size), 0) - else: - raise ValueError("Invalid argument") - - self.buffer = b"" - self.fileobj.seek(self.position) - - def close(self): - """Close the file object. - """ - self.closed = True - - def __iter__(self): - """Get an iterator over the file's lines. - """ - while True: - line = self.readline() - if not line: - break - yield line -#class ExFileObject - -#------------------ -# Exported Classes -#------------------ -class TarInfo(object): - """Informational class which holds the details about an - archive member given by a tar header block. - TarInfo objects are returned by TarFile.getmember(), - TarFile.getmembers() and TarFile.gettarinfo() and are - usually created internally. - """ - - __slots__ = ("name", "mode", "uid", "gid", "size", "mtime", - "chksum", "type", "linkname", "uname", "gname", - "devmajor", "devminor", - "offset", "offset_data", "pax_headers", "sparse", - "tarfile", "_sparse_structs", "_link_target") - - def __init__(self, name=""): - """Construct a TarInfo object. name is the optional name - of the member. - """ - self.name = name # member name - self.mode = 0o644 # file permissions - self.uid = 0 # user id - self.gid = 0 # group id - self.size = 0 # file size - self.mtime = 0 # modification time - self.chksum = 0 # header checksum - self.type = REGTYPE # member type - self.linkname = "" # link name - self.uname = "" # user name - self.gname = "" # group name - self.devmajor = 0 # device major number - self.devminor = 0 # device minor number - - self.offset = 0 # the tar header starts here - self.offset_data = 0 # the file's data starts here - - self.sparse = None # sparse member information - self.pax_headers = {} # pax header information - - # In pax headers the "name" and "linkname" field are called - # "path" and "linkpath". - def _getpath(self): - return self.name - def _setpath(self, name): - self.name = name - path = property(_getpath, _setpath) - - def _getlinkpath(self): - return self.linkname - def _setlinkpath(self, linkname): - self.linkname = linkname - linkpath = property(_getlinkpath, _setlinkpath) - - def __repr__(self): - return "<%s %r at %#x>" % (self.__class__.__name__,self.name,id(self)) - - def get_info(self): - """Return the TarInfo's attributes as a dictionary. - """ - info = { - "name": self.name, - "mode": self.mode & 0o7777, - "uid": self.uid, - "gid": self.gid, - "size": self.size, - "mtime": self.mtime, - "chksum": self.chksum, - "type": self.type, - "linkname": self.linkname, - "uname": self.uname, - "gname": self.gname, - "devmajor": self.devmajor, - "devminor": self.devminor - } - - if info["type"] == DIRTYPE and not info["name"].endswith("/"): - info["name"] += "/" - - return info - - def tobuf(self, format=DEFAULT_FORMAT, encoding=ENCODING, errors="surrogateescape"): - """Return a tar header as a string of 512 byte blocks. - """ - info = self.get_info() - - if format == USTAR_FORMAT: - return self.create_ustar_header(info, encoding, errors) - elif format == GNU_FORMAT: - return self.create_gnu_header(info, encoding, errors) - elif format == PAX_FORMAT: - return self.create_pax_header(info, encoding) - else: - raise ValueError("invalid format") - - def create_ustar_header(self, info, encoding, errors): - """Return the object as a ustar header block. - """ - info["magic"] = POSIX_MAGIC - - if len(info["linkname"]) > LENGTH_LINK: - raise ValueError("linkname is too long") - - if len(info["name"]) > LENGTH_NAME: - info["prefix"], info["name"] = self._posix_split_name(info["name"]) - - return self._create_header(info, USTAR_FORMAT, encoding, errors) - - def create_gnu_header(self, info, encoding, errors): - """Return the object as a GNU header block sequence. - """ - info["magic"] = GNU_MAGIC - - buf = b"" - if len(info["linkname"]) > LENGTH_LINK: - buf += self._create_gnu_long_header(info["linkname"], GNUTYPE_LONGLINK, encoding, errors) - - if len(info["name"]) > LENGTH_NAME: - buf += self._create_gnu_long_header(info["name"], GNUTYPE_LONGNAME, encoding, errors) - - return buf + self._create_header(info, GNU_FORMAT, encoding, errors) - - def create_pax_header(self, info, encoding): - """Return the object as a ustar header block. If it cannot be - represented this way, prepend a pax extended header sequence - with supplement information. - """ - info["magic"] = POSIX_MAGIC - pax_headers = self.pax_headers.copy() - - # Test string fields for values that exceed the field length or cannot - # be represented in ASCII encoding. - for name, hname, length in ( - ("name", "path", LENGTH_NAME), ("linkname", "linkpath", LENGTH_LINK), - ("uname", "uname", 32), ("gname", "gname", 32)): - - if hname in pax_headers: - # The pax header has priority. - continue - - # Try to encode the string as ASCII. - try: - info[name].encode("ascii", "strict") - except UnicodeEncodeError: - pax_headers[hname] = info[name] - continue - - if len(info[name]) > length: - pax_headers[hname] = info[name] - - # Test number fields for values that exceed the field limit or values - # that like to be stored as float. - for name, digits in (("uid", 8), ("gid", 8), ("size", 12), ("mtime", 12)): - if name in pax_headers: - # The pax header has priority. Avoid overflow. - info[name] = 0 - continue - - val = info[name] - if not 0 <= val < 8 ** (digits - 1) or isinstance(val, float): - pax_headers[name] = str(val) - info[name] = 0 - - # Create a pax extended header if necessary. - if pax_headers: - buf = self._create_pax_generic_header(pax_headers, XHDTYPE, encoding) - else: - buf = b"" - - return buf + self._create_header(info, USTAR_FORMAT, "ascii", "replace") - - @classmethod - def create_pax_global_header(cls, pax_headers): - """Return the object as a pax global header block sequence. - """ - return cls._create_pax_generic_header(pax_headers, XGLTYPE, "utf8") - - def _posix_split_name(self, name): - """Split a name longer than 100 chars into a prefix - and a name part. - """ - prefix = name[:LENGTH_PREFIX + 1] - while prefix and prefix[-1] != "/": - prefix = prefix[:-1] - - name = name[len(prefix):] - prefix = prefix[:-1] - - if not prefix or len(name) > LENGTH_NAME: - raise ValueError("name is too long") - return prefix, name - - @staticmethod - def _create_header(info, format, encoding, errors): - """Return a header block. info is a dictionary with file - information, format must be one of the *_FORMAT constants. - """ - parts = [ - stn(info.get("name", ""), 100, encoding, errors), - itn(info.get("mode", 0) & 0o7777, 8, format), - itn(info.get("uid", 0), 8, format), - itn(info.get("gid", 0), 8, format), - itn(info.get("size", 0), 12, format), - itn(info.get("mtime", 0), 12, format), - b" ", # checksum field - info.get("type", REGTYPE), - stn(info.get("linkname", ""), 100, encoding, errors), - info.get("magic", POSIX_MAGIC), - stn(info.get("uname", ""), 32, encoding, errors), - stn(info.get("gname", ""), 32, encoding, errors), - itn(info.get("devmajor", 0), 8, format), - itn(info.get("devminor", 0), 8, format), - stn(info.get("prefix", ""), 155, encoding, errors) - ] - - buf = struct.pack("%ds" % BLOCKSIZE, b"".join(parts)) - chksum = calc_chksums(buf[-BLOCKSIZE:])[0] - buf = buf[:-364] + ("%06o\0" % chksum).encode("ascii") + buf[-357:] - return buf - - @staticmethod - def _create_payload(payload): - """Return the string payload filled with zero bytes - up to the next 512 byte border. - """ - blocks, remainder = divmod(len(payload), BLOCKSIZE) - if remainder > 0: - payload += (BLOCKSIZE - remainder) * NUL - return payload - - @classmethod - def _create_gnu_long_header(cls, name, type, encoding, errors): - """Return a GNUTYPE_LONGNAME or GNUTYPE_LONGLINK sequence - for name. - """ - name = name.encode(encoding, errors) + NUL - - info = {} - info["name"] = "././@LongLink" - info["type"] = type - info["size"] = len(name) - info["magic"] = GNU_MAGIC - - # create extended header + name blocks. - return cls._create_header(info, USTAR_FORMAT, encoding, errors) + \ - cls._create_payload(name) - - @classmethod - def _create_pax_generic_header(cls, pax_headers, type, encoding): - """Return a POSIX.1-2008 extended or global header sequence - that contains a list of keyword, value pairs. The values - must be strings. - """ - # Check if one of the fields contains surrogate characters and thereby - # forces hdrcharset=BINARY, see _proc_pax() for more information. - binary = False - for keyword, value in pax_headers.items(): - try: - value.encode("utf8", "strict") - except UnicodeEncodeError: - binary = True - break - - records = b"" - if binary: - # Put the hdrcharset field at the beginning of the header. - records += b"21 hdrcharset=BINARY\n" - - for keyword, value in pax_headers.items(): - keyword = keyword.encode("utf8") - if binary: - # Try to restore the original byte representation of `value'. - # Needless to say, that the encoding must match the string. - value = value.encode(encoding, "surrogateescape") - else: - value = value.encode("utf8") - - l = len(keyword) + len(value) + 3 # ' ' + '=' + '\n' - n = p = 0 - while True: - n = l + len(str(p)) - if n == p: - break - p = n - records += bytes(str(p), "ascii") + b" " + keyword + b"=" + value + b"\n" - - # We use a hardcoded "././@PaxHeader" name like star does - # instead of the one that POSIX recommends. - info = {} - info["name"] = "././@PaxHeader" - info["type"] = type - info["size"] = len(records) - info["magic"] = POSIX_MAGIC - - # Create pax header + record blocks. - return cls._create_header(info, USTAR_FORMAT, "ascii", "replace") + \ - cls._create_payload(records) - - @classmethod - def frombuf(cls, buf, encoding, errors): - """Construct a TarInfo object from a 512 byte bytes object. - """ - if len(buf) == 0: - raise EmptyHeaderError("empty header") - if len(buf) != BLOCKSIZE: - raise TruncatedHeaderError("truncated header") - if buf.count(NUL) == BLOCKSIZE: - raise EOFHeaderError("end of file header") - - chksum = nti(buf[148:156]) - if chksum not in calc_chksums(buf): - raise InvalidHeaderError("bad checksum") - - obj = cls() - obj.name = nts(buf[0:100], encoding, errors) - obj.mode = nti(buf[100:108]) - obj.uid = nti(buf[108:116]) - obj.gid = nti(buf[116:124]) - obj.size = nti(buf[124:136]) - obj.mtime = nti(buf[136:148]) - obj.chksum = chksum - obj.type = buf[156:157] - obj.linkname = nts(buf[157:257], encoding, errors) - obj.uname = nts(buf[265:297], encoding, errors) - obj.gname = nts(buf[297:329], encoding, errors) - obj.devmajor = nti(buf[329:337]) - obj.devminor = nti(buf[337:345]) - prefix = nts(buf[345:500], encoding, errors) - - # Old V7 tar format represents a directory as a regular - # file with a trailing slash. - if obj.type == AREGTYPE and obj.name.endswith("/"): - obj.type = DIRTYPE - - # The old GNU sparse format occupies some of the unused - # space in the buffer for up to 4 sparse structures. - # Save the them for later processing in _proc_sparse(). - if obj.type == GNUTYPE_SPARSE: - pos = 386 - structs = [] - for i in range(4): - try: - offset = nti(buf[pos:pos + 12]) - numbytes = nti(buf[pos + 12:pos + 24]) - except ValueError: - break - structs.append((offset, numbytes)) - pos += 24 - isextended = bool(buf[482]) - origsize = nti(buf[483:495]) - obj._sparse_structs = (structs, isextended, origsize) - - # Remove redundant slashes from directories. - if obj.isdir(): - obj.name = obj.name.rstrip("/") - - # Reconstruct a ustar longname. - if prefix and obj.type not in GNU_TYPES: - obj.name = prefix + "/" + obj.name - return obj - - @classmethod - def fromtarfile(cls, tarfile): - """Return the next TarInfo object from TarFile object - tarfile. - """ - buf = tarfile.fileobj.read(BLOCKSIZE) - obj = cls.frombuf(buf, tarfile.encoding, tarfile.errors) - obj.offset = tarfile.fileobj.tell() - BLOCKSIZE - return obj._proc_member(tarfile) - - #-------------------------------------------------------------------------- - # The following are methods that are called depending on the type of a - # member. The entry point is _proc_member() which can be overridden in a - # subclass to add custom _proc_*() methods. A _proc_*() method MUST - # implement the following - # operations: - # 1. Set self.offset_data to the position where the data blocks begin, - # if there is data that follows. - # 2. Set tarfile.offset to the position where the next member's header will - # begin. - # 3. Return self or another valid TarInfo object. - def _proc_member(self, tarfile): - """Choose the right processing method depending on - the type and call it. - """ - if self.type in (GNUTYPE_LONGNAME, GNUTYPE_LONGLINK): - return self._proc_gnulong(tarfile) - elif self.type == GNUTYPE_SPARSE: - return self._proc_sparse(tarfile) - elif self.type in (XHDTYPE, XGLTYPE, SOLARIS_XHDTYPE): - return self._proc_pax(tarfile) - else: - return self._proc_builtin(tarfile) - - def _proc_builtin(self, tarfile): - """Process a builtin type or an unknown type which - will be treated as a regular file. - """ - self.offset_data = tarfile.fileobj.tell() - offset = self.offset_data - if self.isreg() or self.type not in SUPPORTED_TYPES: - # Skip the following data blocks. - offset += self._block(self.size) - tarfile.offset = offset - - # Patch the TarInfo object with saved global - # header information. - self._apply_pax_info(tarfile.pax_headers, tarfile.encoding, tarfile.errors) - - return self - - def _proc_gnulong(self, tarfile): - """Process the blocks that hold a GNU longname - or longlink member. - """ - buf = tarfile.fileobj.read(self._block(self.size)) - - # Fetch the next header and process it. - try: - next = self.fromtarfile(tarfile) - except HeaderError: - raise SubsequentHeaderError("missing or bad subsequent header") - - # Patch the TarInfo object from the next header with - # the longname information. - next.offset = self.offset - if self.type == GNUTYPE_LONGNAME: - next.name = nts(buf, tarfile.encoding, tarfile.errors) - elif self.type == GNUTYPE_LONGLINK: - next.linkname = nts(buf, tarfile.encoding, tarfile.errors) - - return next - - def _proc_sparse(self, tarfile): - """Process a GNU sparse header plus extra headers. - """ - # We already collected some sparse structures in frombuf(). - structs, isextended, origsize = self._sparse_structs - del self._sparse_structs - - # Collect sparse structures from extended header blocks. - while isextended: - buf = tarfile.fileobj.read(BLOCKSIZE) - pos = 0 - for i in range(21): - try: - offset = nti(buf[pos:pos + 12]) - numbytes = nti(buf[pos + 12:pos + 24]) - except ValueError: - break - if offset and numbytes: - structs.append((offset, numbytes)) - pos += 24 - isextended = bool(buf[504]) - self.sparse = structs - - self.offset_data = tarfile.fileobj.tell() - tarfile.offset = self.offset_data + self._block(self.size) - self.size = origsize - return self - - def _proc_pax(self, tarfile): - """Process an extended or global header as described in - POSIX.1-2008. - """ - # Read the header information. - buf = tarfile.fileobj.read(self._block(self.size)) - - # A pax header stores supplemental information for either - # the following file (extended) or all following files - # (global). - if self.type == XGLTYPE: - pax_headers = tarfile.pax_headers - else: - pax_headers = tarfile.pax_headers.copy() - - # Check if the pax header contains a hdrcharset field. This tells us - # the encoding of the path, linkpath, uname and gname fields. Normally, - # these fields are UTF-8 encoded but since POSIX.1-2008 tar - # implementations are allowed to store them as raw binary strings if - # the translation to UTF-8 fails. - match = re.search(br"\d+ hdrcharset=([^\n]+)\n", buf) - if match is not None: - pax_headers["hdrcharset"] = match.group(1).decode("utf8") - - # For the time being, we don't care about anything other than "BINARY". - # The only other value that is currently allowed by the standard is - # "ISO-IR 10646 2000 UTF-8" in other words UTF-8. - hdrcharset = pax_headers.get("hdrcharset") - if hdrcharset == "BINARY": - encoding = tarfile.encoding - else: - encoding = "utf8" - - # Parse pax header information. A record looks like that: - # "%d %s=%s\n" % (length, keyword, value). length is the size - # of the complete record including the length field itself and - # the newline. keyword and value are both UTF-8 encoded strings. - regex = re.compile(br"(\d+) ([^=]+)=") - pos = 0 - while True: - match = regex.match(buf, pos) - if not match: - break - - length, keyword = match.groups() - length = int(length) - value = buf[match.end(2) + 1:match.start(1) + length - 1] - - # Normally, we could just use "utf8" as the encoding and "strict" - # as the error handler, but we better not take the risk. For - # example, GNU tar <= 1.23 is known to store filenames it cannot - # translate to UTF-8 as raw strings (unfortunately without a - # hdrcharset=BINARY header). - # We first try the strict standard encoding, and if that fails we - # fall back on the user's encoding and error handler. - keyword = self._decode_pax_field(keyword, "utf8", "utf8", - tarfile.errors) - if keyword in PAX_NAME_FIELDS: - value = self._decode_pax_field(value, encoding, tarfile.encoding, - tarfile.errors) - else: - value = self._decode_pax_field(value, "utf8", "utf8", - tarfile.errors) - - pax_headers[keyword] = value - pos += length - - # Fetch the next header. - try: - next = self.fromtarfile(tarfile) - except HeaderError: - raise SubsequentHeaderError("missing or bad subsequent header") - - # Process GNU sparse information. - if "GNU.sparse.map" in pax_headers: - # GNU extended sparse format version 0.1. - self._proc_gnusparse_01(next, pax_headers) - - elif "GNU.sparse.size" in pax_headers: - # GNU extended sparse format version 0.0. - self._proc_gnusparse_00(next, pax_headers, buf) - - elif pax_headers.get("GNU.sparse.major") == "1" and pax_headers.get("GNU.sparse.minor") == "0": - # GNU extended sparse format version 1.0. - self._proc_gnusparse_10(next, pax_headers, tarfile) - - if self.type in (XHDTYPE, SOLARIS_XHDTYPE): - # Patch the TarInfo object with the extended header info. - next._apply_pax_info(pax_headers, tarfile.encoding, tarfile.errors) - next.offset = self.offset - - if "size" in pax_headers: - # If the extended header replaces the size field, - # we need to recalculate the offset where the next - # header starts. - offset = next.offset_data - if next.isreg() or next.type not in SUPPORTED_TYPES: - offset += next._block(next.size) - tarfile.offset = offset - - return next - - def _proc_gnusparse_00(self, next, pax_headers, buf): - """Process a GNU tar extended sparse header, version 0.0. - """ - offsets = [] - for match in re.finditer(br"\d+ GNU.sparse.offset=(\d+)\n", buf): - offsets.append(int(match.group(1))) - numbytes = [] - for match in re.finditer(br"\d+ GNU.sparse.numbytes=(\d+)\n", buf): - numbytes.append(int(match.group(1))) - next.sparse = list(zip(offsets, numbytes)) - - def _proc_gnusparse_01(self, next, pax_headers): - """Process a GNU tar extended sparse header, version 0.1. - """ - sparse = [int(x) for x in pax_headers["GNU.sparse.map"].split(",")] - next.sparse = list(zip(sparse[::2], sparse[1::2])) - - def _proc_gnusparse_10(self, next, pax_headers, tarfile): - """Process a GNU tar extended sparse header, version 1.0. - """ - fields = None - sparse = [] - buf = tarfile.fileobj.read(BLOCKSIZE) - fields, buf = buf.split(b"\n", 1) - fields = int(fields) - while len(sparse) < fields * 2: - if b"\n" not in buf: - buf += tarfile.fileobj.read(BLOCKSIZE) - number, buf = buf.split(b"\n", 1) - sparse.append(int(number)) - next.offset_data = tarfile.fileobj.tell() - next.sparse = list(zip(sparse[::2], sparse[1::2])) - - def _apply_pax_info(self, pax_headers, encoding, errors): - """Replace fields with supplemental information from a previous - pax extended or global header. - """ - for keyword, value in pax_headers.items(): - if keyword == "GNU.sparse.name": - setattr(self, "path", value) - elif keyword == "GNU.sparse.size": - setattr(self, "size", int(value)) - elif keyword == "GNU.sparse.realsize": - setattr(self, "size", int(value)) - elif keyword in PAX_FIELDS: - if keyword in PAX_NUMBER_FIELDS: - try: - value = PAX_NUMBER_FIELDS[keyword](value) - except ValueError: - value = 0 - if keyword == "path": - value = value.rstrip("/") - setattr(self, keyword, value) - - self.pax_headers = pax_headers.copy() - - def _decode_pax_field(self, value, encoding, fallback_encoding, fallback_errors): - """Decode a single field from a pax record. - """ - try: - return value.decode(encoding, "strict") - except UnicodeDecodeError: - return value.decode(fallback_encoding, fallback_errors) - - def _block(self, count): - """Round up a byte count by BLOCKSIZE and return it, - e.g. _block(834) => 1024. - """ - blocks, remainder = divmod(count, BLOCKSIZE) - if remainder: - blocks += 1 - return blocks * BLOCKSIZE - - def isreg(self): - return self.type in REGULAR_TYPES - def isfile(self): - return self.isreg() - def isdir(self): - return self.type == DIRTYPE - def issym(self): - return self.type == SYMTYPE - def islnk(self): - return self.type == LNKTYPE - def ischr(self): - return self.type == CHRTYPE - def isblk(self): - return self.type == BLKTYPE - def isfifo(self): - return self.type == FIFOTYPE - def issparse(self): - return self.sparse is not None - def isdev(self): - return self.type in (CHRTYPE, BLKTYPE, FIFOTYPE) -# class TarInfo - -class TarFile(object): - """The TarFile Class provides an interface to tar archives. - """ - - debug = 0 # May be set from 0 (no msgs) to 3 (all msgs) - - dereference = False # If true, add content of linked file to the - # tar file, else the link. - - ignore_zeros = False # If true, skips empty or invalid blocks and - # continues processing. - - errorlevel = 1 # If 0, fatal errors only appear in debug - # messages (if debug >= 0). If > 0, errors - # are passed to the caller as exceptions. - - format = DEFAULT_FORMAT # The format to use when creating an archive. - - encoding = ENCODING # Encoding for 8-bit character strings. - - errors = None # Error handler for unicode conversion. - - tarinfo = TarInfo # The default TarInfo class to use. - - fileobject = ExFileObject # The default ExFileObject class to use. - - def __init__(self, name=None, mode="r", fileobj=None, format=None, - tarinfo=None, dereference=None, ignore_zeros=None, encoding=None, - errors="surrogateescape", pax_headers=None, debug=None, errorlevel=None): - """Open an (uncompressed) tar archive `name'. `mode' is either 'r' to - read from an existing archive, 'a' to append data to an existing - file or 'w' to create a new file overwriting an existing one. `mode' - defaults to 'r'. - If `fileobj' is given, it is used for reading or writing data. If it - can be determined, `mode' is overridden by `fileobj's mode. - `fileobj' is not closed, when TarFile is closed. - """ - if len(mode) > 1 or mode not in "raw": - raise ValueError("mode must be 'r', 'a' or 'w'") - self.mode = mode - self._mode = {"r": "rb", "a": "r+b", "w": "wb"}[mode] - - if not fileobj: - if self.mode == "a" and not os.path.exists(name): - # Create nonexistent files in append mode. - self.mode = "w" - self._mode = "wb" - fileobj = bltn_open(name, self._mode) - self._extfileobj = False - else: - if name is None and hasattr(fileobj, "name"): - name = fileobj.name - if hasattr(fileobj, "mode"): - self._mode = fileobj.mode - self._extfileobj = True - self.name = os.path.abspath(name) if name else None - self.fileobj = fileobj - - # Init attributes. - if format is not None: - self.format = format - if tarinfo is not None: - self.tarinfo = tarinfo - if dereference is not None: - self.dereference = dereference - if ignore_zeros is not None: - self.ignore_zeros = ignore_zeros - if encoding is not None: - self.encoding = encoding - self.errors = errors - - if pax_headers is not None and self.format == PAX_FORMAT: - self.pax_headers = pax_headers - else: - self.pax_headers = {} - - if debug is not None: - self.debug = debug - if errorlevel is not None: - self.errorlevel = errorlevel - - # Init datastructures. - self.closed = False - self.members = [] # list of members as TarInfo objects - self._loaded = False # flag if all members have been read - self.offset = self.fileobj.tell() - # current position in the archive file - self.inodes = {} # dictionary caching the inodes of - # archive members already added - - try: - if self.mode == "r": - self.firstmember = None - self.firstmember = self.next() - - if self.mode == "a": - # Move to the end of the archive, - # before the first empty block. - while True: - self.fileobj.seek(self.offset) - try: - tarinfo = self.tarinfo.fromtarfile(self) - self.members.append(tarinfo) - except EOFHeaderError: - self.fileobj.seek(self.offset) - break - except HeaderError as e: - raise ReadError(str(e)) - - if self.mode in "aw": - self._loaded = True - - if self.pax_headers: - buf = self.tarinfo.create_pax_global_header(self.pax_headers.copy()) - self.fileobj.write(buf) - self.offset += len(buf) - except: - if not self._extfileobj: - self.fileobj.close() - self.closed = True - raise - - #-------------------------------------------------------------------------- - # Below are the classmethods which act as alternate constructors to the - # TarFile class. The open() method is the only one that is needed for - # public use; it is the "super"-constructor and is able to select an - # adequate "sub"-constructor for a particular compression using the mapping - # from OPEN_METH. - # - # This concept allows one to subclass TarFile without losing the comfort of - # the super-constructor. A sub-constructor is registered and made available - # by adding it to the mapping in OPEN_METH. - - @classmethod - def open(cls, name=None, mode="r", fileobj=None, bufsize=RECORDSIZE, **kwargs): - """Open a tar archive for reading, writing or appending. Return - an appropriate TarFile class. - - mode: - 'r' or 'r:*' open for reading with transparent compression - 'r:' open for reading exclusively uncompressed - 'r:gz' open for reading with gzip compression - 'r:bz2' open for reading with bzip2 compression - 'a' or 'a:' open for appending, creating the file if necessary - 'w' or 'w:' open for writing without compression - 'w:gz' open for writing with gzip compression - 'w:bz2' open for writing with bzip2 compression - - 'r|*' open a stream of tar blocks with transparent compression - 'r|' open an uncompressed stream of tar blocks for reading - 'r|gz' open a gzip compressed stream of tar blocks - 'r|bz2' open a bzip2 compressed stream of tar blocks - 'w|' open an uncompressed stream for writing - 'w|gz' open a gzip compressed stream for writing - 'w|bz2' open a bzip2 compressed stream for writing - """ - - if not name and not fileobj: - raise ValueError("nothing to open") - - if mode in ("r", "r:*"): - # Find out which *open() is appropriate for opening the file. - for comptype in cls.OPEN_METH: - func = getattr(cls, cls.OPEN_METH[comptype]) - if fileobj is not None: - saved_pos = fileobj.tell() - try: - return func(name, "r", fileobj, **kwargs) - except (ReadError, CompressionError) as e: - if fileobj is not None: - fileobj.seek(saved_pos) - continue - raise ReadError("file could not be opened successfully") - - elif ":" in mode: - filemode, comptype = mode.split(":", 1) - filemode = filemode or "r" - comptype = comptype or "tar" - - # Select the *open() function according to - # given compression. - if comptype in cls.OPEN_METH: - func = getattr(cls, cls.OPEN_METH[comptype]) - else: - raise CompressionError("unknown compression type %r" % comptype) - return func(name, filemode, fileobj, **kwargs) - - elif "|" in mode: - filemode, comptype = mode.split("|", 1) - filemode = filemode or "r" - comptype = comptype or "tar" - - if filemode not in "rw": - raise ValueError("mode must be 'r' or 'w'") - - stream = _Stream(name, filemode, comptype, fileobj, bufsize) - try: - t = cls(name, filemode, stream, **kwargs) - except: - stream.close() - raise - t._extfileobj = False - return t - - elif mode in "aw": - return cls.taropen(name, mode, fileobj, **kwargs) - - raise ValueError("undiscernible mode") - - @classmethod - def taropen(cls, name, mode="r", fileobj=None, **kwargs): - """Open uncompressed tar archive name for reading or writing. - """ - if len(mode) > 1 or mode not in "raw": - raise ValueError("mode must be 'r', 'a' or 'w'") - return cls(name, mode, fileobj, **kwargs) - - @classmethod - def gzopen(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs): - """Open gzip compressed tar archive name for reading or writing. - Appending is not allowed. - """ - if len(mode) > 1 or mode not in "rw": - raise ValueError("mode must be 'r' or 'w'") - - try: - import gzip - gzip.GzipFile - except (ImportError, AttributeError): - raise CompressionError("gzip module is not available") - - extfileobj = fileobj is not None - try: - fileobj = gzip.GzipFile(name, mode + "b", compresslevel, fileobj) - t = cls.taropen(name, mode, fileobj, **kwargs) - except IOError: - if not extfileobj and fileobj is not None: - fileobj.close() - if fileobj is None: - raise - raise ReadError("not a gzip file") - except: - if not extfileobj and fileobj is not None: - fileobj.close() - raise - t._extfileobj = extfileobj - return t - - @classmethod - def bz2open(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs): - """Open bzip2 compressed tar archive name for reading or writing. - Appending is not allowed. - """ - if len(mode) > 1 or mode not in "rw": - raise ValueError("mode must be 'r' or 'w'.") - - try: - import bz2 - except ImportError: - raise CompressionError("bz2 module is not available") - - if fileobj is not None: - fileobj = _BZ2Proxy(fileobj, mode) - else: - fileobj = bz2.BZ2File(name, mode, compresslevel=compresslevel) - - try: - t = cls.taropen(name, mode, fileobj, **kwargs) - except (IOError, EOFError): - fileobj.close() - raise ReadError("not a bzip2 file") - t._extfileobj = False - return t - - # All *open() methods are registered here. - OPEN_METH = { - "tar": "taropen", # uncompressed tar - "gz": "gzopen", # gzip compressed tar - "bz2": "bz2open" # bzip2 compressed tar - } - - #-------------------------------------------------------------------------- - # The public methods which TarFile provides: - - def close(self): - """Close the TarFile. In write-mode, two finishing zero blocks are - appended to the archive. - """ - if self.closed: - return - - if self.mode in "aw": - self.fileobj.write(NUL * (BLOCKSIZE * 2)) - self.offset += (BLOCKSIZE * 2) - # fill up the end with zero-blocks - # (like option -b20 for tar does) - blocks, remainder = divmod(self.offset, RECORDSIZE) - if remainder > 0: - self.fileobj.write(NUL * (RECORDSIZE - remainder)) - - if not self._extfileobj: - self.fileobj.close() - self.closed = True - - def getmember(self, name): - """Return a TarInfo object for member `name'. If `name' can not be - found in the archive, KeyError is raised. If a member occurs more - than once in the archive, its last occurrence is assumed to be the - most up-to-date version. - """ - tarinfo = self._getmember(name) - if tarinfo is None: - raise KeyError("filename %r not found" % name) - return tarinfo - - def getmembers(self): - """Return the members of the archive as a list of TarInfo objects. The - list has the same order as the members in the archive. - """ - self._check() - if not self._loaded: # if we want to obtain a list of - self._load() # all members, we first have to - # scan the whole archive. - return self.members - - def getnames(self): - """Return the members of the archive as a list of their names. It has - the same order as the list returned by getmembers(). - """ - return [tarinfo.name for tarinfo in self.getmembers()] - - def gettarinfo(self, name=None, arcname=None, fileobj=None): - """Create a TarInfo object for either the file `name' or the file - object `fileobj' (using os.fstat on its file descriptor). You can - modify some of the TarInfo's attributes before you add it using - addfile(). If given, `arcname' specifies an alternative name for the - file in the archive. - """ - self._check("aw") - - # When fileobj is given, replace name by - # fileobj's real name. - if fileobj is not None: - name = fileobj.name - - # Building the name of the member in the archive. - # Backward slashes are converted to forward slashes, - # Absolute paths are turned to relative paths. - if arcname is None: - arcname = name - drv, arcname = os.path.splitdrive(arcname) - arcname = arcname.replace(os.sep, "/") - arcname = arcname.lstrip("/") - - # Now, fill the TarInfo object with - # information specific for the file. - tarinfo = self.tarinfo() - tarinfo.tarfile = self - - # Use os.stat or os.lstat, depending on platform - # and if symlinks shall be resolved. - if fileobj is None: - if hasattr(os, "lstat") and not self.dereference: - statres = os.lstat(name) - else: - statres = os.stat(name) - else: - statres = os.fstat(fileobj.fileno()) - linkname = "" - - stmd = statres.st_mode - if stat.S_ISREG(stmd): - inode = (statres.st_ino, statres.st_dev) - if not self.dereference and statres.st_nlink > 1 and \ - inode in self.inodes and arcname != self.inodes[inode]: - # Is it a hardlink to an already - # archived file? - type = LNKTYPE - linkname = self.inodes[inode] - else: - # The inode is added only if its valid. - # For win32 it is always 0. - type = REGTYPE - if inode[0]: - self.inodes[inode] = arcname - elif stat.S_ISDIR(stmd): - type = DIRTYPE - elif stat.S_ISFIFO(stmd): - type = FIFOTYPE - elif stat.S_ISLNK(stmd): - type = SYMTYPE - linkname = os.readlink(name) - elif stat.S_ISCHR(stmd): - type = CHRTYPE - elif stat.S_ISBLK(stmd): - type = BLKTYPE - else: - return None - - # Fill the TarInfo object with all - # information we can get. - tarinfo.name = arcname - tarinfo.mode = stmd - tarinfo.uid = statres.st_uid - tarinfo.gid = statres.st_gid - if type == REGTYPE: - tarinfo.size = statres.st_size - else: - tarinfo.size = 0 - tarinfo.mtime = statres.st_mtime - tarinfo.type = type - tarinfo.linkname = linkname - if pwd: - try: - tarinfo.uname = pwd.getpwuid(tarinfo.uid)[0] - except KeyError: - pass - if grp: - try: - tarinfo.gname = grp.getgrgid(tarinfo.gid)[0] - except KeyError: - pass - - if type in (CHRTYPE, BLKTYPE): - if hasattr(os, "major") and hasattr(os, "minor"): - tarinfo.devmajor = os.major(statres.st_rdev) - tarinfo.devminor = os.minor(statres.st_rdev) - return tarinfo - - def list(self, verbose=True): - """Print a table of contents to sys.stdout. If `verbose' is False, only - the names of the members are printed. If it is True, an `ls -l'-like - output is produced. - """ - self._check() - - for tarinfo in self: - if verbose: - print(filemode(tarinfo.mode), end=' ') - print("%s/%s" % (tarinfo.uname or tarinfo.uid, - tarinfo.gname or tarinfo.gid), end=' ') - if tarinfo.ischr() or tarinfo.isblk(): - print("%10s" % ("%d,%d" \ - % (tarinfo.devmajor, tarinfo.devminor)), end=' ') - else: - print("%10d" % tarinfo.size, end=' ') - print("%d-%02d-%02d %02d:%02d:%02d" \ - % time.localtime(tarinfo.mtime)[:6], end=' ') - - print(tarinfo.name + ("/" if tarinfo.isdir() else ""), end=' ') - - if verbose: - if tarinfo.issym(): - print("->", tarinfo.linkname, end=' ') - if tarinfo.islnk(): - print("link to", tarinfo.linkname, end=' ') - print() - - def add(self, name, arcname=None, recursive=True, exclude=None, filter=None): - """Add the file `name' to the archive. `name' may be any type of file - (directory, fifo, symbolic link, etc.). If given, `arcname' - specifies an alternative name for the file in the archive. - Directories are added recursively by default. This can be avoided by - setting `recursive' to False. `exclude' is a function that should - return True for each filename to be excluded. `filter' is a function - that expects a TarInfo object argument and returns the changed - TarInfo object, if it returns None the TarInfo object will be - excluded from the archive. - """ - self._check("aw") - - if arcname is None: - arcname = name - - # Exclude pathnames. - if exclude is not None: - import warnings - warnings.warn("use the filter argument instead", - DeprecationWarning, 2) - if exclude(name): - self._dbg(2, "tarfile: Excluded %r" % name) - return - - # Skip if somebody tries to archive the archive... - if self.name is not None and os.path.abspath(name) == self.name: - self._dbg(2, "tarfile: Skipped %r" % name) - return - - self._dbg(1, name) - - # Create a TarInfo object from the file. - tarinfo = self.gettarinfo(name, arcname) - - if tarinfo is None: - self._dbg(1, "tarfile: Unsupported type %r" % name) - return - - # Change or exclude the TarInfo object. - if filter is not None: - tarinfo = filter(tarinfo) - if tarinfo is None: - self._dbg(2, "tarfile: Excluded %r" % name) - return - - # Append the tar header and data to the archive. - if tarinfo.isreg(): - f = bltn_open(name, "rb") - self.addfile(tarinfo, f) - f.close() - - elif tarinfo.isdir(): - self.addfile(tarinfo) - if recursive: - for f in os.listdir(name): - self.add(os.path.join(name, f), os.path.join(arcname, f), - recursive, exclude, filter=filter) - - else: - self.addfile(tarinfo) - - def addfile(self, tarinfo, fileobj=None): - """Add the TarInfo object `tarinfo' to the archive. If `fileobj' is - given, tarinfo.size bytes are read from it and added to the archive. - You can create TarInfo objects using gettarinfo(). - On Windows platforms, `fileobj' should always be opened with mode - 'rb' to avoid irritation about the file size. - """ - self._check("aw") - - tarinfo = copy.copy(tarinfo) - - buf = tarinfo.tobuf(self.format, self.encoding, self.errors) - self.fileobj.write(buf) - self.offset += len(buf) - - # If there's data to follow, append it. - if fileobj is not None: - copyfileobj(fileobj, self.fileobj, tarinfo.size) - blocks, remainder = divmod(tarinfo.size, BLOCKSIZE) - if remainder > 0: - self.fileobj.write(NUL * (BLOCKSIZE - remainder)) - blocks += 1 - self.offset += blocks * BLOCKSIZE - - self.members.append(tarinfo) - - def extractall(self, path=".", members=None): - """Extract all members from the archive to the current working - directory and set owner, modification time and permissions on - directories afterwards. `path' specifies a different directory - to extract to. `members' is optional and must be a subset of the - list returned by getmembers(). - """ - directories = [] - - if members is None: - members = self - - for tarinfo in members: - if tarinfo.isdir(): - # Extract directories with a safe mode. - directories.append(tarinfo) - tarinfo = copy.copy(tarinfo) - tarinfo.mode = 0o700 - # Do not set_attrs directories, as we will do that further down - self.extract(tarinfo, path, set_attrs=not tarinfo.isdir()) - - # Reverse sort directories. - directories.sort(key=lambda a: a.name) - directories.reverse() - - # Set correct owner, mtime and filemode on directories. - for tarinfo in directories: - dirpath = os.path.join(path, tarinfo.name) - try: - self.chown(tarinfo, dirpath) - self.utime(tarinfo, dirpath) - self.chmod(tarinfo, dirpath) - except ExtractError as e: - if self.errorlevel > 1: - raise - else: - self._dbg(1, "tarfile: %s" % e) - - def extract(self, member, path="", set_attrs=True): - """Extract a member from the archive to the current working directory, - using its full name. Its file information is extracted as accurately - as possible. `member' may be a filename or a TarInfo object. You can - specify a different directory using `path'. File attributes (owner, - mtime, mode) are set unless `set_attrs' is False. - """ - self._check("r") - - if isinstance(member, str): - tarinfo = self.getmember(member) - else: - tarinfo = member - - # Prepare the link target for makelink(). - if tarinfo.islnk(): - tarinfo._link_target = os.path.join(path, tarinfo.linkname) - - try: - self._extract_member(tarinfo, os.path.join(path, tarinfo.name), - set_attrs=set_attrs) - except EnvironmentError as e: - if self.errorlevel > 0: - raise - else: - if e.filename is None: - self._dbg(1, "tarfile: %s" % e.strerror) - else: - self._dbg(1, "tarfile: %s %r" % (e.strerror, e.filename)) - except ExtractError as e: - if self.errorlevel > 1: - raise - else: - self._dbg(1, "tarfile: %s" % e) - - def extractfile(self, member): - """Extract a member from the archive as a file object. `member' may be - a filename or a TarInfo object. If `member' is a regular file, a - file-like object is returned. If `member' is a link, a file-like - object is constructed from the link's target. If `member' is none of - the above, None is returned. - The file-like object is read-only and provides the following - methods: read(), readline(), readlines(), seek() and tell() - """ - self._check("r") - - if isinstance(member, str): - tarinfo = self.getmember(member) - else: - tarinfo = member - - if tarinfo.isreg(): - return self.fileobject(self, tarinfo) - - elif tarinfo.type not in SUPPORTED_TYPES: - # If a member's type is unknown, it is treated as a - # regular file. - return self.fileobject(self, tarinfo) - - elif tarinfo.islnk() or tarinfo.issym(): - if isinstance(self.fileobj, _Stream): - # A small but ugly workaround for the case that someone tries - # to extract a (sym)link as a file-object from a non-seekable - # stream of tar blocks. - raise StreamError("cannot extract (sym)link as file object") - else: - # A (sym)link's file object is its target's file object. - return self.extractfile(self._find_link_target(tarinfo)) - else: - # If there's no data associated with the member (directory, chrdev, - # blkdev, etc.), return None instead of a file object. - return None - - def _extract_member(self, tarinfo, targetpath, set_attrs=True): - """Extract the TarInfo object tarinfo to a physical - file called targetpath. - """ - # Fetch the TarInfo object for the given name - # and build the destination pathname, replacing - # forward slashes to platform specific separators. - targetpath = targetpath.rstrip("/") - targetpath = targetpath.replace("/", os.sep) - - # Create all upper directories. - upperdirs = os.path.dirname(targetpath) - if upperdirs and not os.path.exists(upperdirs): - # Create directories that are not part of the archive with - # default permissions. - os.makedirs(upperdirs) - - if tarinfo.islnk() or tarinfo.issym(): - self._dbg(1, "%s -> %s" % (tarinfo.name, tarinfo.linkname)) - else: - self._dbg(1, tarinfo.name) - - if tarinfo.isreg(): - self.makefile(tarinfo, targetpath) - elif tarinfo.isdir(): - self.makedir(tarinfo, targetpath) - elif tarinfo.isfifo(): - self.makefifo(tarinfo, targetpath) - elif tarinfo.ischr() or tarinfo.isblk(): - self.makedev(tarinfo, targetpath) - elif tarinfo.islnk() or tarinfo.issym(): - self.makelink(tarinfo, targetpath) - elif tarinfo.type not in SUPPORTED_TYPES: - self.makeunknown(tarinfo, targetpath) - else: - self.makefile(tarinfo, targetpath) - - if set_attrs: - self.chown(tarinfo, targetpath) - if not tarinfo.issym(): - self.chmod(tarinfo, targetpath) - self.utime(tarinfo, targetpath) - - #-------------------------------------------------------------------------- - # Below are the different file methods. They are called via - # _extract_member() when extract() is called. They can be replaced in a - # subclass to implement other functionality. - - def makedir(self, tarinfo, targetpath): - """Make a directory called targetpath. - """ - try: - # Use a safe mode for the directory, the real mode is set - # later in _extract_member(). - os.mkdir(targetpath, 0o700) - except EnvironmentError as e: - if e.errno != errno.EEXIST: - raise - - def makefile(self, tarinfo, targetpath): - """Make a file called targetpath. - """ - source = self.fileobj - source.seek(tarinfo.offset_data) - target = bltn_open(targetpath, "wb") - if tarinfo.sparse is not None: - for offset, size in tarinfo.sparse: - target.seek(offset) - copyfileobj(source, target, size) - else: - copyfileobj(source, target, tarinfo.size) - target.seek(tarinfo.size) - target.truncate() - target.close() - - def makeunknown(self, tarinfo, targetpath): - """Make a file from a TarInfo object with an unknown type - at targetpath. - """ - self.makefile(tarinfo, targetpath) - self._dbg(1, "tarfile: Unknown file type %r, " \ - "extracted as regular file." % tarinfo.type) - - def makefifo(self, tarinfo, targetpath): - """Make a fifo called targetpath. - """ - if hasattr(os, "mkfifo"): - os.mkfifo(targetpath) - else: - raise ExtractError("fifo not supported by system") - - def makedev(self, tarinfo, targetpath): - """Make a character or block device called targetpath. - """ - if not hasattr(os, "mknod") or not hasattr(os, "makedev"): - raise ExtractError("special devices not supported by system") - - mode = tarinfo.mode - if tarinfo.isblk(): - mode |= stat.S_IFBLK - else: - mode |= stat.S_IFCHR - - os.mknod(targetpath, mode, - os.makedev(tarinfo.devmajor, tarinfo.devminor)) - - def makelink(self, tarinfo, targetpath): - """Make a (symbolic) link called targetpath. If it cannot be created - (platform limitation), we try to make a copy of the referenced file - instead of a link. - """ - try: - # For systems that support symbolic and hard links. - if tarinfo.issym(): - os.symlink(tarinfo.linkname, targetpath) - else: - # See extract(). - if os.path.exists(tarinfo._link_target): - os.link(tarinfo._link_target, targetpath) - else: - self._extract_member(self._find_link_target(tarinfo), - targetpath) - except symlink_exception: - if tarinfo.issym(): - linkpath = os.path.join(os.path.dirname(tarinfo.name), - tarinfo.linkname) - else: - linkpath = tarinfo.linkname - else: - try: - self._extract_member(self._find_link_target(tarinfo), - targetpath) - except KeyError: - raise ExtractError("unable to resolve link inside archive") - - def chown(self, tarinfo, targetpath): - """Set owner of targetpath according to tarinfo. - """ - if pwd and hasattr(os, "geteuid") and os.geteuid() == 0: - # We have to be root to do so. - try: - g = grp.getgrnam(tarinfo.gname)[2] - except KeyError: - g = tarinfo.gid - try: - u = pwd.getpwnam(tarinfo.uname)[2] - except KeyError: - u = tarinfo.uid - try: - if tarinfo.issym() and hasattr(os, "lchown"): - os.lchown(targetpath, u, g) - else: - if sys.platform != "os2emx": - os.chown(targetpath, u, g) - except EnvironmentError as e: - raise ExtractError("could not change owner") - - def chmod(self, tarinfo, targetpath): - """Set file permissions of targetpath according to tarinfo. - """ - if hasattr(os, 'chmod'): - try: - os.chmod(targetpath, tarinfo.mode) - except EnvironmentError as e: - raise ExtractError("could not change mode") - - def utime(self, tarinfo, targetpath): - """Set modification time of targetpath according to tarinfo. - """ - if not hasattr(os, 'utime'): - return - try: - os.utime(targetpath, (tarinfo.mtime, tarinfo.mtime)) - except EnvironmentError as e: - raise ExtractError("could not change modification time") - - #-------------------------------------------------------------------------- - def next(self): - """Return the next member of the archive as a TarInfo object, when - TarFile is opened for reading. Return None if there is no more - available. - """ - self._check("ra") - if self.firstmember is not None: - m = self.firstmember - self.firstmember = None - return m - - # Read the next block. - self.fileobj.seek(self.offset) - tarinfo = None - while True: - try: - tarinfo = self.tarinfo.fromtarfile(self) - except EOFHeaderError as e: - if self.ignore_zeros: - self._dbg(2, "0x%X: %s" % (self.offset, e)) - self.offset += BLOCKSIZE - continue - except InvalidHeaderError as e: - if self.ignore_zeros: - self._dbg(2, "0x%X: %s" % (self.offset, e)) - self.offset += BLOCKSIZE - continue - elif self.offset == 0: - raise ReadError(str(e)) - except EmptyHeaderError: - if self.offset == 0: - raise ReadError("empty file") - except TruncatedHeaderError as e: - if self.offset == 0: - raise ReadError(str(e)) - except SubsequentHeaderError as e: - raise ReadError(str(e)) - break - - if tarinfo is not None: - self.members.append(tarinfo) - else: - self._loaded = True - - return tarinfo - - #-------------------------------------------------------------------------- - # Little helper methods: - - def _getmember(self, name, tarinfo=None, normalize=False): - """Find an archive member by name from bottom to top. - If tarinfo is given, it is used as the starting point. - """ - # Ensure that all members have been loaded. - members = self.getmembers() - - # Limit the member search list up to tarinfo. - if tarinfo is not None: - members = members[:members.index(tarinfo)] - - if normalize: - name = os.path.normpath(name) - - for member in reversed(members): - if normalize: - member_name = os.path.normpath(member.name) - else: - member_name = member.name - - if name == member_name: - return member - - def _load(self): - """Read through the entire archive file and look for readable - members. - """ - while True: - tarinfo = self.next() - if tarinfo is None: - break - self._loaded = True - - def _check(self, mode=None): - """Check if TarFile is still open, and if the operation's mode - corresponds to TarFile's mode. - """ - if self.closed: - raise IOError("%s is closed" % self.__class__.__name__) - if mode is not None and self.mode not in mode: - raise IOError("bad operation for mode %r" % self.mode) - - def _find_link_target(self, tarinfo): - """Find the target member of a symlink or hardlink member in the - archive. - """ - if tarinfo.issym(): - # Always search the entire archive. - linkname = os.path.dirname(tarinfo.name) + "/" + tarinfo.linkname - limit = None - else: - # Search the archive before the link, because a hard link is - # just a reference to an already archived file. - linkname = tarinfo.linkname - limit = tarinfo - - member = self._getmember(linkname, tarinfo=limit, normalize=True) - if member is None: - raise KeyError("linkname %r not found" % linkname) - return member - - def __iter__(self): - """Provide an iterator object. - """ - if self._loaded: - return iter(self.members) - else: - return TarIter(self) - - def _dbg(self, level, msg): - """Write debugging output to sys.stderr. - """ - if level <= self.debug: - print(msg, file=sys.stderr) - - def __enter__(self): - self._check() - return self - - def __exit__(self, type, value, traceback): - if type is None: - self.close() - else: - # An exception occurred. We must not call close() because - # it would try to write end-of-archive blocks and padding. - if not self._extfileobj: - self.fileobj.close() - self.closed = True -# class TarFile - -class TarIter(object): - """Iterator Class. - - for tarinfo in TarFile(...): - suite... - """ - - def __init__(self, tarfile): - """Construct a TarIter object. - """ - self.tarfile = tarfile - self.index = 0 - def __iter__(self): - """Return iterator object. - """ - return self - - def __next__(self): - """Return the next item using TarFile's next() method. - When all members have been read, set TarFile as _loaded. - """ - # Fix for SF #1100429: Under rare circumstances it can - # happen that getmembers() is called during iteration, - # which will cause TarIter to stop prematurely. - if not self.tarfile._loaded: - tarinfo = self.tarfile.next() - if not tarinfo: - self.tarfile._loaded = True - raise StopIteration - else: - try: - tarinfo = self.tarfile.members[self.index] - except IndexError: - raise StopIteration - self.index += 1 - return tarinfo - - next = __next__ # for Python 2.x - -#-------------------- -# exported functions -#-------------------- -def is_tarfile(name): - """Return True if name points to a tar archive that we - are able to handle, else return False. - """ - try: - t = open(name) - t.close() - return True - except TarError: - return False - -bltn_open = open -open = TarFile.open diff --git a/src/build_utils/distlib/compat.py b/src/build_utils/distlib/compat.py deleted file mode 100644 index 99edda603..000000000 --- a/src/build_utils/distlib/compat.py +++ /dev/null @@ -1,1102 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -from __future__ import absolute_import, print_function - -import os -import re -import sys - -if sys.version_info[0] < 3: - from StringIO import StringIO - string_types = basestring, - text_type = unicode - from types import FileType as file_type - import __builtin__ as builtins - import ConfigParser as configparser - from ._backport import shutil - from urlparse import urlparse, urlunparse, urljoin, urlsplit, urlunsplit - from urllib import (urlretrieve, quote as _quote, unquote, url2pathname, - pathname2url, ContentTooShortError, splittype) - - def quote(s): - if isinstance(s, unicode): - s = s.encode('utf-8') - return _quote(s) - - import urllib2 - from urllib2 import (Request, urlopen, URLError, HTTPError, - HTTPBasicAuthHandler, HTTPPasswordMgr, - HTTPSHandler, HTTPHandler, HTTPRedirectHandler, - build_opener) - import httplib - import xmlrpclib - import Queue as queue - from HTMLParser import HTMLParser - import htmlentitydefs - raw_input = raw_input - from itertools import ifilter as filter - from itertools import ifilterfalse as filterfalse - - _userprog = None - def splituser(host): - """splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.""" - global _userprog - if _userprog is None: - import re - _userprog = re.compile('^(.*)@(.*)$') - - match = _userprog.match(host) - if match: return match.group(1, 2) - return None, host - -else: - from io import StringIO - string_types = str, - text_type = str - from io import TextIOWrapper as file_type - import builtins - import configparser - import shutil - from urllib.parse import (urlparse, urlunparse, urljoin, splituser, quote, - unquote, urlsplit, urlunsplit, splittype) - from urllib.request import (urlopen, urlretrieve, Request, url2pathname, - pathname2url, - HTTPBasicAuthHandler, HTTPPasswordMgr, - HTTPSHandler, HTTPHandler, HTTPRedirectHandler, - build_opener) - from urllib.error import HTTPError, URLError, ContentTooShortError - import http.client as httplib - import urllib.request as urllib2 - import xmlrpc.client as xmlrpclib - import queue - from html.parser import HTMLParser - import html.entities as htmlentitydefs - raw_input = input - from itertools import filterfalse - filter = filter - -try: - from ssl import match_hostname, CertificateError -except ImportError: - class CertificateError(ValueError): - pass - - - def _dnsname_match(dn, hostname, max_wildcards=1): - """Matching according to RFC 6125, section 6.4.3 - - http://tools.ietf.org/html/rfc6125#section-6.4.3 - """ - pats = [] - if not dn: - return False - - parts = dn.split('.') - leftmost, remainder = parts[0], parts[1:] - - wildcards = leftmost.count('*') - if wildcards > max_wildcards: - # Issue #17980: avoid denials of service by refusing more - # than one wildcard per fragment. A survery of established - # policy among SSL implementations showed it to be a - # reasonable choice. - raise CertificateError( - "too many wildcards in certificate DNS name: " + repr(dn)) - - # speed up common case w/o wildcards - if not wildcards: - return dn.lower() == hostname.lower() - - # RFC 6125, section 6.4.3, subitem 1. - # The client SHOULD NOT attempt to match a presented identifier in which - # the wildcard character comprises a label other than the left-most label. - if leftmost == '*': - # When '*' is a fragment by itself, it matches a non-empty dotless - # fragment. - pats.append('[^.]+') - elif leftmost.startswith('xn--') or hostname.startswith('xn--'): - # RFC 6125, section 6.4.3, subitem 3. - # The client SHOULD NOT attempt to match a presented identifier - # where the wildcard character is embedded within an A-label or - # U-label of an internationalized domain name. - pats.append(re.escape(leftmost)) - else: - # Otherwise, '*' matches any dotless string, e.g. www* - pats.append(re.escape(leftmost).replace(r'\*', '[^.]*')) - - # add the remaining fragments, ignore any wildcards - for frag in remainder: - pats.append(re.escape(frag)) - - pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE) - return pat.match(hostname) - - - def match_hostname(cert, hostname): - """Verify that *cert* (in decoded format as returned by - SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 - rules are followed, but IP addresses are not accepted for *hostname*. - - CertificateError is raised on failure. On success, the function - returns nothing. - """ - if not cert: - raise ValueError("empty or no certificate, match_hostname needs a " - "SSL socket or SSL context with either " - "CERT_OPTIONAL or CERT_REQUIRED") - dnsnames = [] - san = cert.get('subjectAltName', ()) - for key, value in san: - if key == 'DNS': - if _dnsname_match(value, hostname): - return - dnsnames.append(value) - if not dnsnames: - # The subject is only checked when there is no dNSName entry - # in subjectAltName - for sub in cert.get('subject', ()): - for key, value in sub: - # XXX according to RFC 2818, the most specific Common Name - # must be used. - if key == 'commonName': - if _dnsname_match(value, hostname): - return - dnsnames.append(value) - if len(dnsnames) > 1: - raise CertificateError("hostname %r " - "doesn't match either of %s" - % (hostname, ', '.join(map(repr, dnsnames)))) - elif len(dnsnames) == 1: - raise CertificateError("hostname %r " - "doesn't match %r" - % (hostname, dnsnames[0])) - else: - raise CertificateError("no appropriate commonName or " - "subjectAltName fields were found") - - -try: - from types import SimpleNamespace as Container -except ImportError: - class Container(object): - """ - A generic container for when multiple values need to be returned - """ - def __init__(self, **kwargs): - self.__dict__.update(kwargs) - - -try: - from shutil import which -except ImportError: - # Implementation from Python 3.3 - def which(cmd, mode=os.F_OK | os.X_OK, path=None): - """Given a command, mode, and a PATH string, return the path which - conforms to the given mode on the PATH, or None if there is no such - file. - - `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result - of os.environ.get("PATH"), or can be overridden with a custom search - path. - - """ - # Check that a given file can be accessed with the correct mode. - # Additionally check that `file` is not a directory, as on Windows - # directories pass the os.access check. - def _access_check(fn, mode): - return (os.path.exists(fn) and os.access(fn, mode) - and not os.path.isdir(fn)) - - # If we're given a path with a directory part, look it up directly rather - # than referring to PATH directories. This includes checking relative to the - # current directory, e.g. ./script - if os.path.dirname(cmd): - if _access_check(cmd, mode): - return cmd - return None - - if path is None: - path = os.environ.get("PATH", os.defpath) - if not path: - return None - path = path.split(os.pathsep) - - if sys.platform == "win32": - # The current directory takes precedence on Windows. - if not os.curdir in path: - path.insert(0, os.curdir) - - # PATHEXT is necessary to check on Windows. - pathext = os.environ.get("PATHEXT", "").split(os.pathsep) - # See if the given file matches any of the expected path extensions. - # This will allow us to short circuit when given "python.exe". - # If it does match, only test that one, otherwise we have to try - # others. - if any(cmd.lower().endswith(ext.lower()) for ext in pathext): - files = [cmd] - else: - files = [cmd + ext for ext in pathext] - else: - # On other platforms you don't have things like PATHEXT to tell you - # what file suffixes are executable, so just pass on cmd as-is. - files = [cmd] - - seen = set() - for dir in path: - normdir = os.path.normcase(dir) - if not normdir in seen: - seen.add(normdir) - for thefile in files: - name = os.path.join(dir, thefile) - if _access_check(name, mode): - return name - return None - - -# ZipFile is a context manager in 2.7, but not in 2.6 - -from zipfile import ZipFile as BaseZipFile - -if hasattr(BaseZipFile, '__enter__'): - ZipFile = BaseZipFile -else: - from zipfile import ZipExtFile as BaseZipExtFile - - class ZipExtFile(BaseZipExtFile): - def __init__(self, base): - self.__dict__.update(base.__dict__) - - def __enter__(self): - return self - - def __exit__(self, *exc_info): - self.close() - # return None, so if an exception occurred, it will propagate - - class ZipFile(BaseZipFile): - def __enter__(self): - return self - - def __exit__(self, *exc_info): - self.close() - # return None, so if an exception occurred, it will propagate - - def open(self, *args, **kwargs): - base = BaseZipFile.open(self, *args, **kwargs) - return ZipExtFile(base) - -try: - from platform import python_implementation -except ImportError: # pragma: no cover - def python_implementation(): - """Return a string identifying the Python implementation.""" - if 'PyPy' in sys.version: - return 'PyPy' - if os.name == 'java': - return 'Jython' - if sys.version.startswith('IronPython'): - return 'IronPython' - return 'CPython' - -try: - import sysconfig -except ImportError: # pragma: no cover - from ._backport import sysconfig - -try: - callable = callable -except NameError: # pragma: no cover - from collections import Callable - - def callable(obj): - return isinstance(obj, Callable) - - -try: - fsencode = os.fsencode - fsdecode = os.fsdecode -except AttributeError: # pragma: no cover - _fsencoding = sys.getfilesystemencoding() - if _fsencoding == 'mbcs': - _fserrors = 'strict' - else: - _fserrors = 'surrogateescape' - - def fsencode(filename): - if isinstance(filename, bytes): - return filename - elif isinstance(filename, text_type): - return filename.encode(_fsencoding, _fserrors) - else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) - - def fsdecode(filename): - if isinstance(filename, text_type): - return filename - elif isinstance(filename, bytes): - return filename.decode(_fsencoding, _fserrors) - else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) - -try: - from tokenize import detect_encoding -except ImportError: # pragma: no cover - from codecs import BOM_UTF8, lookup - import re - - cookie_re = re.compile("coding[:=]\s*([-\w.]+)") - - def _get_normal_name(orig_enc): - """Imitates get_normal_name in tokenizer.c.""" - # Only care about the first 12 characters. - enc = orig_enc[:12].lower().replace("_", "-") - if enc == "utf-8" or enc.startswith("utf-8-"): - return "utf-8" - if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or \ - enc.startswith(("latin-1-", "iso-8859-1-", "iso-latin-1-")): - return "iso-8859-1" - return orig_enc - - def detect_encoding(readline): - """ - The detect_encoding() function is used to detect the encoding that should - be used to decode a Python source file. It requires one argment, readline, - in the same way as the tokenize() generator. - - It will call readline a maximum of twice, and return the encoding used - (as a string) and a list of any lines (left as bytes) it has read in. - - It detects the encoding from the presence of a utf-8 bom or an encoding - cookie as specified in pep-0263. If both a bom and a cookie are present, - but disagree, a SyntaxError will be raised. If the encoding cookie is an - invalid charset, raise a SyntaxError. Note that if a utf-8 bom is found, - 'utf-8-sig' is returned. - - If no encoding is specified, then the default of 'utf-8' will be returned. - """ - try: - filename = readline.__self__.name - except AttributeError: - filename = None - bom_found = False - encoding = None - default = 'utf-8' - def read_or_stop(): - try: - return readline() - except StopIteration: - return b'' - - def find_cookie(line): - try: - # Decode as UTF-8. Either the line is an encoding declaration, - # in which case it should be pure ASCII, or it must be UTF-8 - # per default encoding. - line_string = line.decode('utf-8') - except UnicodeDecodeError: - msg = "invalid or missing encoding declaration" - if filename is not None: - msg = '{} for {!r}'.format(msg, filename) - raise SyntaxError(msg) - - matches = cookie_re.findall(line_string) - if not matches: - return None - encoding = _get_normal_name(matches[0]) - try: - codec = lookup(encoding) - except LookupError: - # This behaviour mimics the Python interpreter - if filename is None: - msg = "unknown encoding: " + encoding - else: - msg = "unknown encoding for {!r}: {}".format(filename, - encoding) - raise SyntaxError(msg) - - if bom_found: - if codec.name != 'utf-8': - # This behaviour mimics the Python interpreter - if filename is None: - msg = 'encoding problem: utf-8' - else: - msg = 'encoding problem for {!r}: utf-8'.format(filename) - raise SyntaxError(msg) - encoding += '-sig' - return encoding - - first = read_or_stop() - if first.startswith(BOM_UTF8): - bom_found = True - first = first[3:] - default = 'utf-8-sig' - if not first: - return default, [] - - encoding = find_cookie(first) - if encoding: - return encoding, [first] - - second = read_or_stop() - if not second: - return default, [first] - - encoding = find_cookie(second) - if encoding: - return encoding, [first, second] - - return default, [first, second] - -# For converting & <-> & etc. -try: - from html import escape -except ImportError: - from cgi import escape -if sys.version_info[:2] < (3, 4): - unescape = HTMLParser().unescape -else: - from html import unescape - -try: - from collections import ChainMap -except ImportError: # pragma: no cover - from collections import MutableMapping - - try: - from reprlib import recursive_repr as _recursive_repr - except ImportError: - def _recursive_repr(fillvalue='...'): - ''' - Decorator to make a repr function return fillvalue for a recursive - call - ''' - - def decorating_function(user_function): - repr_running = set() - - def wrapper(self): - key = id(self), get_ident() - if key in repr_running: - return fillvalue - repr_running.add(key) - try: - result = user_function(self) - finally: - repr_running.discard(key) - return result - - # Can't use functools.wraps() here because of bootstrap issues - wrapper.__module__ = getattr(user_function, '__module__') - wrapper.__doc__ = getattr(user_function, '__doc__') - wrapper.__name__ = getattr(user_function, '__name__') - wrapper.__annotations__ = getattr(user_function, '__annotations__', {}) - return wrapper - - return decorating_function - - class ChainMap(MutableMapping): - ''' A ChainMap groups multiple dicts (or other mappings) together - to create a single, updateable view. - - The underlying mappings are stored in a list. That list is public and can - accessed or updated using the *maps* attribute. There is no other state. - - Lookups search the underlying mappings successively until a key is found. - In contrast, writes, updates, and deletions only operate on the first - mapping. - - ''' - - def __init__(self, *maps): - '''Initialize a ChainMap by setting *maps* to the given mappings. - If no mappings are provided, a single empty dictionary is used. - - ''' - self.maps = list(maps) or [{}] # always at least one map - - def __missing__(self, key): - raise KeyError(key) - - def __getitem__(self, key): - for mapping in self.maps: - try: - return mapping[key] # can't use 'key in mapping' with defaultdict - except KeyError: - pass - return self.__missing__(key) # support subclasses that define __missing__ - - def get(self, key, default=None): - return self[key] if key in self else default - - def __len__(self): - return len(set().union(*self.maps)) # reuses stored hash values if possible - - def __iter__(self): - return iter(set().union(*self.maps)) - - def __contains__(self, key): - return any(key in m for m in self.maps) - - def __bool__(self): - return any(self.maps) - - @_recursive_repr() - def __repr__(self): - return '{0.__class__.__name__}({1})'.format( - self, ', '.join(map(repr, self.maps))) - - @classmethod - def fromkeys(cls, iterable, *args): - 'Create a ChainMap with a single dict created from the iterable.' - return cls(dict.fromkeys(iterable, *args)) - - def copy(self): - 'New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]' - return self.__class__(self.maps[0].copy(), *self.maps[1:]) - - __copy__ = copy - - def new_child(self): # like Django's Context.push() - 'New ChainMap with a new dict followed by all previous maps.' - return self.__class__({}, *self.maps) - - @property - def parents(self): # like Django's Context.pop() - 'New ChainMap from maps[1:].' - return self.__class__(*self.maps[1:]) - - def __setitem__(self, key, value): - self.maps[0][key] = value - - def __delitem__(self, key): - try: - del self.maps[0][key] - except KeyError: - raise KeyError('Key not found in the first mapping: {!r}'.format(key)) - - def popitem(self): - 'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.' - try: - return self.maps[0].popitem() - except KeyError: - raise KeyError('No keys found in the first mapping.') - - def pop(self, key, *args): - 'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].' - try: - return self.maps[0].pop(key, *args) - except KeyError: - raise KeyError('Key not found in the first mapping: {!r}'.format(key)) - - def clear(self): - 'Clear maps[0], leaving maps[1:] intact.' - self.maps[0].clear() - -try: - from imp import cache_from_source -except ImportError: # pragma: no cover - def cache_from_source(path, debug_override=None): - assert path.endswith('.py') - if debug_override is None: - debug_override = __debug__ - if debug_override: - suffix = 'c' - else: - suffix = 'o' - return path + suffix - -try: - from collections import OrderedDict -except ImportError: # pragma: no cover -## {{{ http://code.activestate.com/recipes/576693/ (r9) -# Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy. -# Passes Python2.7's test suite and incorporates all the latest updates. - try: - from thread import get_ident as _get_ident - except ImportError: - from dummy_thread import get_ident as _get_ident - - try: - from _abcoll import KeysView, ValuesView, ItemsView - except ImportError: - pass - - - class OrderedDict(dict): - 'Dictionary that remembers insertion order' - # An inherited dict maps keys to values. - # The inherited dict provides __getitem__, __len__, __contains__, and get. - # The remaining methods are order-aware. - # Big-O running times for all methods are the same as for regular dictionaries. - - # The internal self.__map dictionary maps keys to links in a doubly linked list. - # The circular doubly linked list starts and ends with a sentinel element. - # The sentinel element never gets deleted (this simplifies the algorithm). - # Each link is stored as a list of length three: [PREV, NEXT, KEY]. - - def __init__(self, *args, **kwds): - '''Initialize an ordered dictionary. Signature is the same as for - regular dictionaries, but keyword arguments are not recommended - because their insertion order is arbitrary. - - ''' - if len(args) > 1: - raise TypeError('expected at most 1 arguments, got %d' % len(args)) - try: - self.__root - except AttributeError: - self.__root = root = [] # sentinel node - root[:] = [root, root, None] - self.__map = {} - self.__update(*args, **kwds) - - def __setitem__(self, key, value, dict_setitem=dict.__setitem__): - 'od.__setitem__(i, y) <==> od[i]=y' - # Setting a new item creates a new link which goes at the end of the linked - # list, and the inherited dictionary is updated with the new key/value pair. - if key not in self: - root = self.__root - last = root[0] - last[1] = root[0] = self.__map[key] = [last, root, key] - dict_setitem(self, key, value) - - def __delitem__(self, key, dict_delitem=dict.__delitem__): - 'od.__delitem__(y) <==> del od[y]' - # Deleting an existing item uses self.__map to find the link which is - # then removed by updating the links in the predecessor and successor nodes. - dict_delitem(self, key) - link_prev, link_next, key = self.__map.pop(key) - link_prev[1] = link_next - link_next[0] = link_prev - - def __iter__(self): - 'od.__iter__() <==> iter(od)' - root = self.__root - curr = root[1] - while curr is not root: - yield curr[2] - curr = curr[1] - - def __reversed__(self): - 'od.__reversed__() <==> reversed(od)' - root = self.__root - curr = root[0] - while curr is not root: - yield curr[2] - curr = curr[0] - - def clear(self): - 'od.clear() -> None. Remove all items from od.' - try: - for node in self.__map.itervalues(): - del node[:] - root = self.__root - root[:] = [root, root, None] - self.__map.clear() - except AttributeError: - pass - dict.clear(self) - - def popitem(self, last=True): - '''od.popitem() -> (k, v), return and remove a (key, value) pair. - Pairs are returned in LIFO order if last is true or FIFO order if false. - - ''' - if not self: - raise KeyError('dictionary is empty') - root = self.__root - if last: - link = root[0] - link_prev = link[0] - link_prev[1] = root - root[0] = link_prev - else: - link = root[1] - link_next = link[1] - root[1] = link_next - link_next[0] = root - key = link[2] - del self.__map[key] - value = dict.pop(self, key) - return key, value - - # -- the following methods do not depend on the internal structure -- - - def keys(self): - 'od.keys() -> list of keys in od' - return list(self) - - def values(self): - 'od.values() -> list of values in od' - return [self[key] for key in self] - - def items(self): - 'od.items() -> list of (key, value) pairs in od' - return [(key, self[key]) for key in self] - - def iterkeys(self): - 'od.iterkeys() -> an iterator over the keys in od' - return iter(self) - - def itervalues(self): - 'od.itervalues -> an iterator over the values in od' - for k in self: - yield self[k] - - def iteritems(self): - 'od.iteritems -> an iterator over the (key, value) items in od' - for k in self: - yield (k, self[k]) - - def update(*args, **kwds): - '''od.update(E, **F) -> None. Update od from dict/iterable E and F. - - If E is a dict instance, does: for k in E: od[k] = E[k] - If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] - Or if E is an iterable of items, does: for k, v in E: od[k] = v - In either case, this is followed by: for k, v in F.items(): od[k] = v - - ''' - if len(args) > 2: - raise TypeError('update() takes at most 2 positional ' - 'arguments (%d given)' % (len(args),)) - elif not args: - raise TypeError('update() takes at least 1 argument (0 given)') - self = args[0] - # Make progressively weaker assumptions about "other" - other = () - if len(args) == 2: - other = args[1] - if isinstance(other, dict): - for key in other: - self[key] = other[key] - elif hasattr(other, 'keys'): - for key in other.keys(): - self[key] = other[key] - else: - for key, value in other: - self[key] = value - for key, value in kwds.items(): - self[key] = value - - __update = update # let subclasses override update without breaking __init__ - - __marker = object() - - def pop(self, key, default=__marker): - '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value. - If key is not found, d is returned if given, otherwise KeyError is raised. - - ''' - if key in self: - result = self[key] - del self[key] - return result - if default is self.__marker: - raise KeyError(key) - return default - - def setdefault(self, key, default=None): - 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' - if key in self: - return self[key] - self[key] = default - return default - - def __repr__(self, _repr_running=None): - 'od.__repr__() <==> repr(od)' - if not _repr_running: _repr_running = {} - call_key = id(self), _get_ident() - if call_key in _repr_running: - return '...' - _repr_running[call_key] = 1 - try: - if not self: - return '%s()' % (self.__class__.__name__,) - return '%s(%r)' % (self.__class__.__name__, self.items()) - finally: - del _repr_running[call_key] - - def __reduce__(self): - 'Return state information for pickling' - items = [[k, self[k]] for k in self] - inst_dict = vars(self).copy() - for k in vars(OrderedDict()): - inst_dict.pop(k, None) - if inst_dict: - return (self.__class__, (items,), inst_dict) - return self.__class__, (items,) - - def copy(self): - 'od.copy() -> a shallow copy of od' - return self.__class__(self) - - @classmethod - def fromkeys(cls, iterable, value=None): - '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S - and values equal to v (which defaults to None). - - ''' - d = cls() - for key in iterable: - d[key] = value - return d - - def __eq__(self, other): - '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive - while comparison to a regular mapping is order-insensitive. - - ''' - if isinstance(other, OrderedDict): - return len(self)==len(other) and self.items() == other.items() - return dict.__eq__(self, other) - - def __ne__(self, other): - return not self == other - - # -- the following methods are only used in Python 2.7 -- - - def viewkeys(self): - "od.viewkeys() -> a set-like object providing a view on od's keys" - return KeysView(self) - - def viewvalues(self): - "od.viewvalues() -> an object providing a view on od's values" - return ValuesView(self) - - def viewitems(self): - "od.viewitems() -> a set-like object providing a view on od's items" - return ItemsView(self) - -try: - from logging.config import BaseConfigurator, valid_ident -except ImportError: # pragma: no cover - IDENTIFIER = re.compile('^[a-z_][a-z0-9_]*$', re.I) - - - def valid_ident(s): - m = IDENTIFIER.match(s) - if not m: - raise ValueError('Not a valid Python identifier: %r' % s) - return True - - - # The ConvertingXXX classes are wrappers around standard Python containers, - # and they serve to convert any suitable values in the container. The - # conversion converts base dicts, lists and tuples to their wrapped - # equivalents, whereas strings which match a conversion format are converted - # appropriately. - # - # Each wrapper should have a configurator attribute holding the actual - # configurator to use for conversion. - - class ConvertingDict(dict): - """A converting dictionary wrapper.""" - - def __getitem__(self, key): - value = dict.__getitem__(self, key) - result = self.configurator.convert(value) - #If the converted value is different, save for next time - if value is not result: - self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - def get(self, key, default=None): - value = dict.get(self, key, default) - result = self.configurator.convert(value) - #If the converted value is different, save for next time - if value is not result: - self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - def pop(self, key, default=None): - value = dict.pop(self, key, default) - result = self.configurator.convert(value) - if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - class ConvertingList(list): - """A converting list wrapper.""" - def __getitem__(self, key): - value = list.__getitem__(self, key) - result = self.configurator.convert(value) - #If the converted value is different, save for next time - if value is not result: - self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - def pop(self, idx=-1): - value = list.pop(self, idx) - result = self.configurator.convert(value) - if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - return result - - class ConvertingTuple(tuple): - """A converting tuple wrapper.""" - def __getitem__(self, key): - value = tuple.__getitem__(self, key) - result = self.configurator.convert(value) - if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - class BaseConfigurator(object): - """ - The configurator base class which defines some useful defaults. - """ - - CONVERT_PATTERN = re.compile(r'^(?P[a-z]+)://(?P.*)$') - - WORD_PATTERN = re.compile(r'^\s*(\w+)\s*') - DOT_PATTERN = re.compile(r'^\.\s*(\w+)\s*') - INDEX_PATTERN = re.compile(r'^\[\s*(\w+)\s*\]\s*') - DIGIT_PATTERN = re.compile(r'^\d+$') - - value_converters = { - 'ext' : 'ext_convert', - 'cfg' : 'cfg_convert', - } - - # We might want to use a different one, e.g. importlib - importer = staticmethod(__import__) - - def __init__(self, config): - self.config = ConvertingDict(config) - self.config.configurator = self - - def resolve(self, s): - """ - Resolve strings to objects using standard import and attribute - syntax. - """ - name = s.split('.') - used = name.pop(0) - try: - found = self.importer(used) - for frag in name: - used += '.' + frag - try: - found = getattr(found, frag) - except AttributeError: - self.importer(used) - found = getattr(found, frag) - return found - except ImportError: - e, tb = sys.exc_info()[1:] - v = ValueError('Cannot resolve %r: %s' % (s, e)) - v.__cause__, v.__traceback__ = e, tb - raise v - - def ext_convert(self, value): - """Default converter for the ext:// protocol.""" - return self.resolve(value) - - def cfg_convert(self, value): - """Default converter for the cfg:// protocol.""" - rest = value - m = self.WORD_PATTERN.match(rest) - if m is None: - raise ValueError("Unable to convert %r" % value) - else: - rest = rest[m.end():] - d = self.config[m.groups()[0]] - # print(d, rest) - while rest: - m = self.DOT_PATTERN.match(rest) - if m: - d = d[m.groups()[0]] - else: - m = self.INDEX_PATTERN.match(rest) - if m: - idx = m.groups()[0] - if not self.DIGIT_PATTERN.match(idx): - d = d[idx] - else: - try: - n = int(idx) # try as number first (most likely) - d = d[n] - except TypeError: - d = d[idx] - if m: - rest = rest[m.end():] - else: - raise ValueError('Unable to convert ' - '%r at %r' % (value, rest)) - #rest should be empty - return d - - def convert(self, value): - """ - Convert values to an appropriate type. dicts, lists and tuples are - replaced by their converting alternatives. Strings are checked to - see if they have a conversion format and are converted if they do. - """ - if not isinstance(value, ConvertingDict) and isinstance(value, dict): - value = ConvertingDict(value) - value.configurator = self - elif not isinstance(value, ConvertingList) and isinstance(value, list): - value = ConvertingList(value) - value.configurator = self - elif not isinstance(value, ConvertingTuple) and\ - isinstance(value, tuple): - value = ConvertingTuple(value) - value.configurator = self - elif isinstance(value, string_types): - m = self.CONVERT_PATTERN.match(value) - if m: - d = m.groupdict() - prefix = d['prefix'] - converter = self.value_converters.get(prefix, None) - if converter: - suffix = d['suffix'] - converter = getattr(self, converter) - value = converter(suffix) - return value - - def configure_custom(self, config): - """Configure an object with a user-supplied factory.""" - c = config.pop('()') - if not callable(c): - c = self.resolve(c) - props = config.pop('.', None) - # Check for valid identifiers - kwargs = dict([(k, config[k]) for k in config if valid_ident(k)]) - result = c(**kwargs) - if props: - for name, value in props.items(): - setattr(result, name, value) - return result - - def as_tuple(self, value): - """Utility function which converts lists to tuples.""" - if isinstance(value, list): - value = tuple(value) - return value diff --git a/src/build_utils/distlib/database.py b/src/build_utils/distlib/database.py deleted file mode 100644 index 9358d08f4..000000000 --- a/src/build_utils/distlib/database.py +++ /dev/null @@ -1,1301 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2013 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""PEP 376 implementation.""" - -from __future__ import unicode_literals - -import base64 -import codecs -import contextlib -import hashlib -import logging -import os -import posixpath -import sys -import zipimport - -from . import DistlibException, resources -from .compat import StringIO -from .version import get_scheme, UnsupportedVersionError -from .metadata import Metadata, METADATA_FILENAME -from .util import (parse_requirement, cached_property, parse_name_and_version, - read_exports, write_exports, CSVReader, CSVWriter) - - -__all__ = ['Distribution', 'BaseInstalledDistribution', - 'InstalledDistribution', 'EggInfoDistribution', - 'DistributionPath'] - - -logger = logging.getLogger(__name__) - -EXPORTS_FILENAME = 'pydist-exports.json' -COMMANDS_FILENAME = 'pydist-commands.json' - -DIST_FILES = ('INSTALLER', METADATA_FILENAME, 'RECORD', 'REQUESTED', - 'RESOURCES', EXPORTS_FILENAME, 'SHARED') - -DISTINFO_EXT = '.dist-info' - - -class _Cache(object): - """ - A simple cache mapping names and .dist-info paths to distributions - """ - def __init__(self): - """ - Initialise an instance. There is normally one for each DistributionPath. - """ - self.name = {} - self.path = {} - self.generated = False - - def clear(self): - """ - Clear the cache, setting it to its initial state. - """ - self.name.clear() - self.path.clear() - self.generated = False - - def add(self, dist): - """ - Add a distribution to the cache. - :param dist: The distribution to add. - """ - if dist.path not in self.path: - self.path[dist.path] = dist - self.name.setdefault(dist.key, []).append(dist) - - -class DistributionPath(object): - """ - Represents a set of distributions installed on a path (typically sys.path). - """ - def __init__(self, path=None, include_egg=False): - """ - Create an instance from a path, optionally including legacy (distutils/ - setuptools/distribute) distributions. - :param path: The path to use, as a list of directories. If not specified, - sys.path is used. - :param include_egg: If True, this instance will look for and return legacy - distributions as well as those based on PEP 376. - """ - if path is None: - path = sys.path - self.path = path - self._include_dist = True - self._include_egg = include_egg - - self._cache = _Cache() - self._cache_egg = _Cache() - self._cache_enabled = True - self._scheme = get_scheme('default') - - def _get_cache_enabled(self): - return self._cache_enabled - - def _set_cache_enabled(self, value): - self._cache_enabled = value - - cache_enabled = property(_get_cache_enabled, _set_cache_enabled) - - def clear_cache(self): - """ - Clears the internal cache. - """ - self._cache.clear() - self._cache_egg.clear() - - - def _yield_distributions(self): - """ - Yield .dist-info and/or .egg(-info) distributions. - """ - # We need to check if we've seen some resources already, because on - # some Linux systems (e.g. some Debian/Ubuntu variants) there are - # symlinks which alias other files in the environment. - seen = set() - for path in self.path: - finder = resources.finder_for_path(path) - if finder is None: - continue - r = finder.find('') - if not r or not r.is_container: - continue - rset = sorted(r.resources) - for entry in rset: - r = finder.find(entry) - if not r or r.path in seen: - continue - if self._include_dist and entry.endswith(DISTINFO_EXT): - metadata_path = posixpath.join(entry, METADATA_FILENAME) - pydist = finder.find(metadata_path) - if not pydist: - continue - - metadata = Metadata(fileobj=pydist.as_stream(), - scheme='legacy') - logger.debug('Found %s', r.path) - seen.add(r.path) - yield new_dist_class(r.path, metadata=metadata, - env=self) - elif self._include_egg and entry.endswith(('.egg-info', - '.egg')): - logger.debug('Found %s', r.path) - seen.add(r.path) - yield old_dist_class(r.path, self) - - def _generate_cache(self): - """ - Scan the path for distributions and populate the cache with - those that are found. - """ - gen_dist = not self._cache.generated - gen_egg = self._include_egg and not self._cache_egg.generated - if gen_dist or gen_egg: - for dist in self._yield_distributions(): - if isinstance(dist, InstalledDistribution): - self._cache.add(dist) - else: - self._cache_egg.add(dist) - - if gen_dist: - self._cache.generated = True - if gen_egg: - self._cache_egg.generated = True - - @classmethod - def distinfo_dirname(cls, name, version): - """ - The *name* and *version* parameters are converted into their - filename-escaped form, i.e. any ``'-'`` characters are replaced - with ``'_'`` other than the one in ``'dist-info'`` and the one - separating the name from the version number. - - :parameter name: is converted to a standard distribution name by replacing - any runs of non- alphanumeric characters with a single - ``'-'``. - :type name: string - :parameter version: is converted to a standard version string. Spaces - become dots, and all other non-alphanumeric characters - (except dots) become dashes, with runs of multiple - dashes condensed to a single dash. - :type version: string - :returns: directory name - :rtype: string""" - name = name.replace('-', '_') - return '-'.join([name, version]) + DISTINFO_EXT - - def get_distributions(self): - """ - Provides an iterator that looks for distributions and returns - :class:`InstalledDistribution` or - :class:`EggInfoDistribution` instances for each one of them. - - :rtype: iterator of :class:`InstalledDistribution` and - :class:`EggInfoDistribution` instances - """ - if not self._cache_enabled: - for dist in self._yield_distributions(): - yield dist - else: - self._generate_cache() - - for dist in self._cache.path.values(): - yield dist - - if self._include_egg: - for dist in self._cache_egg.path.values(): - yield dist - - def get_distribution(self, name): - """ - Looks for a named distribution on the path. - - This function only returns the first result found, as no more than one - value is expected. If nothing is found, ``None`` is returned. - - :rtype: :class:`InstalledDistribution`, :class:`EggInfoDistribution` - or ``None`` - """ - result = None - name = name.lower() - if not self._cache_enabled: - for dist in self._yield_distributions(): - if dist.key == name: - result = dist - break - else: - self._generate_cache() - - if name in self._cache.name: - result = self._cache.name[name][0] - elif self._include_egg and name in self._cache_egg.name: - result = self._cache_egg.name[name][0] - return result - - def provides_distribution(self, name, version=None): - """ - Iterates over all distributions to find which distributions provide *name*. - If a *version* is provided, it will be used to filter the results. - - This function only returns the first result found, since no more than - one values are expected. If the directory is not found, returns ``None``. - - :parameter version: a version specifier that indicates the version - required, conforming to the format in ``PEP-345`` - - :type name: string - :type version: string - """ - matcher = None - if not version is None: - try: - matcher = self._scheme.matcher('%s (%s)' % (name, version)) - except ValueError: - raise DistlibException('invalid name or version: %r, %r' % - (name, version)) - - for dist in self.get_distributions(): - provided = dist.provides - - for p in provided: - p_name, p_ver = parse_name_and_version(p) - if matcher is None: - if p_name == name: - yield dist - break - else: - if p_name == name and matcher.match(p_ver): - yield dist - break - - def get_file_path(self, name, relative_path): - """ - Return the path to a resource file. - """ - dist = self.get_distribution(name) - if dist is None: - raise LookupError('no distribution named %r found' % name) - return dist.get_resource_path(relative_path) - - def get_exported_entries(self, category, name=None): - """ - Return all of the exported entries in a particular category. - - :param category: The category to search for entries. - :param name: If specified, only entries with that name are returned. - """ - for dist in self.get_distributions(): - r = dist.exports - if category in r: - d = r[category] - if name is not None: - if name in d: - yield d[name] - else: - for v in d.values(): - yield v - - -class Distribution(object): - """ - A base class for distributions, whether installed or from indexes. - Either way, it must have some metadata, so that's all that's needed - for construction. - """ - - build_time_dependency = False - """ - Set to True if it's known to be only a build-time dependency (i.e. - not needed after installation). - """ - - requested = False - """A boolean that indicates whether the ``REQUESTED`` metadata file is - present (in other words, whether the package was installed by user - request or it was installed as a dependency).""" - - def __init__(self, metadata): - """ - Initialise an instance. - :param metadata: The instance of :class:`Metadata` describing this - distribution. - """ - self.metadata = metadata - self.name = metadata.name - self.key = self.name.lower() # for case-insensitive comparisons - self.version = metadata.version - self.locator = None - self.digest = None - self.extras = None # additional features requested - self.context = None # environment marker overrides - - @property - def source_url(self): - """ - The source archive download URL for this distribution. - """ - return self.metadata.source_url - - download_url = source_url # Backward compatibility - - @property - def name_and_version(self): - """ - A utility property which displays the name and version in parentheses. - """ - return '%s (%s)' % (self.name, self.version) - - @property - def provides(self): - """ - A set of distribution names and versions provided by this distribution. - :return: A set of "name (version)" strings. - """ - plist = self.metadata.provides - s = '%s (%s)' % (self.name, self.version) - if s not in plist: - plist.append(s) - return plist - - def _get_requirements(self, req_attr): - reqts = getattr(self.metadata, req_attr) - return set(self.metadata.get_requirements(reqts, extras=self.extras, - env=self.context)) - - @property - def run_requires(self): - return self._get_requirements('run_requires') - - @property - def meta_requires(self): - return self._get_requirements('meta_requires') - - @property - def build_requires(self): - return self._get_requirements('build_requires') - - @property - def test_requires(self): - return self._get_requirements('test_requires') - - @property - def dev_requires(self): - return self._get_requirements('dev_requires') - - def matches_requirement(self, req): - """ - Say if this instance matches (fulfills) a requirement. - :param req: The requirement to match. - :rtype req: str - :return: True if it matches, else False. - """ - # Requirement may contain extras - parse to lose those - # from what's passed to the matcher - r = parse_requirement(req) - scheme = get_scheme(self.metadata.scheme) - try: - matcher = scheme.matcher(r.requirement) - except UnsupportedVersionError: - # XXX compat-mode if cannot read the version - logger.warning('could not read version %r - using name only', - req) - name = req.split()[0] - matcher = scheme.matcher(name) - - name = matcher.key # case-insensitive - - result = False - for p in self.provides: - p_name, p_ver = parse_name_and_version(p) - if p_name != name: - continue - try: - result = matcher.match(p_ver) - break - except UnsupportedVersionError: - pass - return result - - def __repr__(self): - """ - Return a textual representation of this instance, - """ - if self.source_url: - suffix = ' [%s]' % self.source_url - else: - suffix = '' - return '' % (self.name, self.version, suffix) - - def __eq__(self, other): - """ - See if this distribution is the same as another. - :param other: The distribution to compare with. To be equal to one - another. distributions must have the same type, name, - version and source_url. - :return: True if it is the same, else False. - """ - if type(other) is not type(self): - result = False - else: - result = (self.name == other.name and - self.version == other.version and - self.source_url == other.source_url) - return result - - def __hash__(self): - """ - Compute hash in a way which matches the equality test. - """ - return hash(self.name) + hash(self.version) + hash(self.source_url) - - -class BaseInstalledDistribution(Distribution): - """ - This is the base class for installed distributions (whether PEP 376 or - legacy). - """ - - hasher = None - - def __init__(self, metadata, path, env=None): - """ - Initialise an instance. - :param metadata: An instance of :class:`Metadata` which describes the - distribution. This will normally have been initialised - from a metadata file in the ``path``. - :param path: The path of the ``.dist-info`` or ``.egg-info`` - directory for the distribution. - :param env: This is normally the :class:`DistributionPath` - instance where this distribution was found. - """ - super(BaseInstalledDistribution, self).__init__(metadata) - self.path = path - self.dist_path = env - - def get_hash(self, data, hasher=None): - """ - Get the hash of some data, using a particular hash algorithm, if - specified. - - :param data: The data to be hashed. - :type data: bytes - :param hasher: The name of a hash implementation, supported by hashlib, - or ``None``. Examples of valid values are ``'sha1'``, - ``'sha224'``, ``'sha384'``, '``sha256'``, ``'md5'`` and - ``'sha512'``. If no hasher is specified, the ``hasher`` - attribute of the :class:`InstalledDistribution` instance - is used. If the hasher is determined to be ``None``, MD5 - is used as the hashing algorithm. - :returns: The hash of the data. If a hasher was explicitly specified, - the returned hash will be prefixed with the specified hasher - followed by '='. - :rtype: str - """ - if hasher is None: - hasher = self.hasher - if hasher is None: - hasher = hashlib.md5 - prefix = '' - else: - hasher = getattr(hashlib, hasher) - prefix = '%s=' % self.hasher - digest = hasher(data).digest() - digest = base64.urlsafe_b64encode(digest).rstrip(b'=').decode('ascii') - return '%s%s' % (prefix, digest) - - -class InstalledDistribution(BaseInstalledDistribution): - """ - Created with the *path* of the ``.dist-info`` directory provided to the - constructor. It reads the metadata contained in ``pydist.json`` when it is - instantiated., or uses a passed in Metadata instance (useful for when - dry-run mode is being used). - """ - - hasher = 'sha256' - - def __init__(self, path, metadata=None, env=None): - self.finder = finder = resources.finder_for_path(path) - if finder is None: - import pdb; pdb.set_trace () - if env and env._cache_enabled and path in env._cache.path: - metadata = env._cache.path[path].metadata - elif metadata is None: - r = finder.find(METADATA_FILENAME) - # Temporary - for legacy support - if r is None: - r = finder.find('METADATA') - if r is None: - raise ValueError('no %s found in %s' % (METADATA_FILENAME, - path)) - with contextlib.closing(r.as_stream()) as stream: - metadata = Metadata(fileobj=stream, scheme='legacy') - - super(InstalledDistribution, self).__init__(metadata, path, env) - - if env and env._cache_enabled: - env._cache.add(self) - - try: - r = finder.find('REQUESTED') - except AttributeError: - import pdb; pdb.set_trace () - self.requested = r is not None - - def __repr__(self): - return '' % ( - self.name, self.version, self.path) - - def __str__(self): - return "%s %s" % (self.name, self.version) - - def _get_records(self): - """ - Get the list of installed files for the distribution - :return: A list of tuples of path, hash and size. Note that hash and - size might be ``None`` for some entries. The path is exactly - as stored in the file (which is as in PEP 376). - """ - results = [] - r = self.get_distinfo_resource('RECORD') - with contextlib.closing(r.as_stream()) as stream: - with CSVReader(stream=stream) as record_reader: - # Base location is parent dir of .dist-info dir - #base_location = os.path.dirname(self.path) - #base_location = os.path.abspath(base_location) - for row in record_reader: - missing = [None for i in range(len(row), 3)] - path, checksum, size = row + missing - #if not os.path.isabs(path): - # path = path.replace('/', os.sep) - # path = os.path.join(base_location, path) - results.append((path, checksum, size)) - return results - - @cached_property - def exports(self): - """ - Return the information exported by this distribution. - :return: A dictionary of exports, mapping an export category to a dict - of :class:`ExportEntry` instances describing the individual - export entries, and keyed by name. - """ - result = {} - r = self.get_distinfo_resource(EXPORTS_FILENAME) - if r: - result = self.read_exports() - return result - - def read_exports(self): - """ - Read exports data from a file in .ini format. - - :return: A dictionary of exports, mapping an export category to a list - of :class:`ExportEntry` instances describing the individual - export entries. - """ - result = {} - r = self.get_distinfo_resource(EXPORTS_FILENAME) - if r: - with contextlib.closing(r.as_stream()) as stream: - result = read_exports(stream) - return result - - def write_exports(self, exports): - """ - Write a dictionary of exports to a file in .ini format. - :param exports: A dictionary of exports, mapping an export category to - a list of :class:`ExportEntry` instances describing the - individual export entries. - """ - rf = self.get_distinfo_file(EXPORTS_FILENAME) - with open(rf, 'w') as f: - write_exports(exports, f) - - def get_resource_path(self, relative_path): - """ - NOTE: This API may change in the future. - - Return the absolute path to a resource file with the given relative - path. - - :param relative_path: The path, relative to .dist-info, of the resource - of interest. - :return: The absolute path where the resource is to be found. - """ - r = self.get_distinfo_resource('RESOURCES') - with contextlib.closing(r.as_stream()) as stream: - with CSVReader(stream=stream) as resources_reader: - for relative, destination in resources_reader: - if relative == relative_path: - return destination - raise KeyError('no resource file with relative path %r ' - 'is installed' % relative_path) - - def list_installed_files(self): - """ - Iterates over the ``RECORD`` entries and returns a tuple - ``(path, hash, size)`` for each line. - - :returns: iterator of (path, hash, size) - """ - for result in self._get_records(): - yield result - - def write_installed_files(self, paths, prefix, dry_run=False): - """ - Writes the ``RECORD`` file, using the ``paths`` iterable passed in. Any - existing ``RECORD`` file is silently overwritten. - - prefix is used to determine when to write absolute paths. - """ - prefix = os.path.join(prefix, '') - base = os.path.dirname(self.path) - base_under_prefix = base.startswith(prefix) - base = os.path.join(base, '') - record_path = self.get_distinfo_file('RECORD') - logger.info('creating %s', record_path) - if dry_run: - return None - with CSVWriter(record_path) as writer: - for path in paths: - if os.path.isdir(path) or path.endswith(('.pyc', '.pyo')): - # do not put size and hash, as in PEP-376 - hash_value = size = '' - else: - size = '%d' % os.path.getsize(path) - with open(path, 'rb') as fp: - hash_value = self.get_hash(fp.read()) - if path.startswith(base) or (base_under_prefix and - path.startswith(prefix)): - path = os.path.relpath(path, base) - writer.writerow((path, hash_value, size)) - - # add the RECORD file itself - if record_path.startswith(base): - record_path = os.path.relpath(record_path, base) - writer.writerow((record_path, '', '')) - return record_path - - def check_installed_files(self): - """ - Checks that the hashes and sizes of the files in ``RECORD`` are - matched by the files themselves. Returns a (possibly empty) list of - mismatches. Each entry in the mismatch list will be a tuple consisting - of the path, 'exists', 'size' or 'hash' according to what didn't match - (existence is checked first, then size, then hash), the expected - value and the actual value. - """ - mismatches = [] - base = os.path.dirname(self.path) - record_path = self.get_distinfo_file('RECORD') - for path, hash_value, size in self.list_installed_files(): - if not os.path.isabs(path): - path = os.path.join(base, path) - if path == record_path: - continue - if not os.path.exists(path): - mismatches.append((path, 'exists', True, False)) - elif os.path.isfile(path): - actual_size = str(os.path.getsize(path)) - if size and actual_size != size: - mismatches.append((path, 'size', size, actual_size)) - elif hash_value: - if '=' in hash_value: - hasher = hash_value.split('=', 1)[0] - else: - hasher = None - - with open(path, 'rb') as f: - actual_hash = self.get_hash(f.read(), hasher) - if actual_hash != hash_value: - mismatches.append((path, 'hash', hash_value, actual_hash)) - return mismatches - - @cached_property - def shared_locations(self): - """ - A dictionary of shared locations whose keys are in the set 'prefix', - 'purelib', 'platlib', 'scripts', 'headers', 'data' and 'namespace'. - The corresponding value is the absolute path of that category for - this distribution, and takes into account any paths selected by the - user at installation time (e.g. via command-line arguments). In the - case of the 'namespace' key, this would be a list of absolute paths - for the roots of namespace packages in this distribution. - - The first time this property is accessed, the relevant information is - read from the SHARED file in the .dist-info directory. - """ - result = {} - shared_path = os.path.join(self.path, 'SHARED') - if os.path.isfile(shared_path): - with codecs.open(shared_path, 'r', encoding='utf-8') as f: - lines = f.read().splitlines() - for line in lines: - key, value = line.split('=', 1) - if key == 'namespace': - result.setdefault(key, []).append(value) - else: - result[key] = value - return result - - def write_shared_locations(self, paths, dry_run=False): - """ - Write shared location information to the SHARED file in .dist-info. - :param paths: A dictionary as described in the documentation for - :meth:`shared_locations`. - :param dry_run: If True, the action is logged but no file is actually - written. - :return: The path of the file written to. - """ - shared_path = os.path.join(self.path, 'SHARED') - logger.info('creating %s', shared_path) - if dry_run: - return None - lines = [] - for key in ('prefix', 'lib', 'headers', 'scripts', 'data'): - path = paths[key] - if os.path.isdir(paths[key]): - lines.append('%s=%s' % (key, path)) - for ns in paths.get('namespace', ()): - lines.append('namespace=%s' % ns) - - with codecs.open(shared_path, 'w', encoding='utf-8') as f: - f.write('\n'.join(lines)) - return shared_path - - def get_distinfo_resource(self, path): - if path not in DIST_FILES: - raise DistlibException('invalid path for a dist-info file: ' - '%r at %r' % (path, self.path)) - finder = resources.finder_for_path(self.path) - if finder is None: - raise DistlibException('Unable to get a finder for %s' % self.path) - return finder.find(path) - - def get_distinfo_file(self, path): - """ - Returns a path located under the ``.dist-info`` directory. Returns a - string representing the path. - - :parameter path: a ``'/'``-separated path relative to the - ``.dist-info`` directory or an absolute path; - If *path* is an absolute path and doesn't start - with the ``.dist-info`` directory path, - a :class:`DistlibException` is raised - :type path: str - :rtype: str - """ - # Check if it is an absolute path # XXX use relpath, add tests - if path.find(os.sep) >= 0: - # it's an absolute path? - distinfo_dirname, path = path.split(os.sep)[-2:] - if distinfo_dirname != self.path.split(os.sep)[-1]: - raise DistlibException( - 'dist-info file %r does not belong to the %r %s ' - 'distribution' % (path, self.name, self.version)) - - # The file must be relative - if path not in DIST_FILES: - raise DistlibException('invalid path for a dist-info file: ' - '%r at %r' % (path, self.path)) - - return os.path.join(self.path, path) - - def list_distinfo_files(self): - """ - Iterates over the ``RECORD`` entries and returns paths for each line if - the path is pointing to a file located in the ``.dist-info`` directory - or one of its subdirectories. - - :returns: iterator of paths - """ - base = os.path.dirname(self.path) - for path, checksum, size in self._get_records(): - # XXX add separator or use real relpath algo - if not os.path.isabs(path): - path = os.path.join(base, path) - if path.startswith(self.path): - yield path - - def __eq__(self, other): - return (isinstance(other, InstalledDistribution) and - self.path == other.path) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - __hash__ = object.__hash__ - - -class EggInfoDistribution(BaseInstalledDistribution): - """Created with the *path* of the ``.egg-info`` directory or file provided - to the constructor. It reads the metadata contained in the file itself, or - if the given path happens to be a directory, the metadata is read from the - file ``PKG-INFO`` under that directory.""" - - requested = True # as we have no way of knowing, assume it was - shared_locations = {} - - def __init__(self, path, env=None): - def set_name_and_version(s, n, v): - s.name = n - s.key = n.lower() # for case-insensitive comparisons - s.version = v - - self.path = path - self.dist_path = env - if env and env._cache_enabled and path in env._cache_egg.path: - metadata = env._cache_egg.path[path].metadata - set_name_and_version(self, metadata.name, metadata.version) - else: - metadata = self._get_metadata(path) - - # Need to be set before caching - set_name_and_version(self, metadata.name, metadata.version) - - if env and env._cache_enabled: - env._cache_egg.add(self) - super(EggInfoDistribution, self).__init__(metadata, path, env) - - def _get_metadata(self, path): - requires = None - - def parse_requires_data(data): - """Create a list of dependencies from a requires.txt file. - - *data*: the contents of a setuptools-produced requires.txt file. - """ - reqs = [] - lines = data.splitlines() - for line in lines: - line = line.strip() - if line.startswith('['): - logger.warning('Unexpected line: quitting requirement scan: %r', - line) - break - r = parse_requirement(line) - if not r: - logger.warning('Not recognised as a requirement: %r', line) - continue - if r.extras: - logger.warning('extra requirements in requires.txt are ' - 'not supported') - if not r.constraints: - reqs.append(r.name) - else: - cons = ', '.join('%s%s' % c for c in r.constraints) - reqs.append('%s (%s)' % (r.name, cons)) - return reqs - - def parse_requires_path(req_path): - """Create a list of dependencies from a requires.txt file. - - *req_path*: the path to a setuptools-produced requires.txt file. - """ - - reqs = [] - try: - with codecs.open(req_path, 'r', 'utf-8') as fp: - reqs = parse_requires_data(fp.read()) - except IOError: - pass - return reqs - - if path.endswith('.egg'): - if os.path.isdir(path): - meta_path = os.path.join(path, 'EGG-INFO', 'PKG-INFO') - metadata = Metadata(path=meta_path, scheme='legacy') - req_path = os.path.join(path, 'EGG-INFO', 'requires.txt') - requires = parse_requires_path(req_path) - else: - # FIXME handle the case where zipfile is not available - zipf = zipimport.zipimporter(path) - fileobj = StringIO( - zipf.get_data('EGG-INFO/PKG-INFO').decode('utf8')) - metadata = Metadata(fileobj=fileobj, scheme='legacy') - try: - data = zipf.get_data('EGG-INFO/requires.txt') - requires = parse_requires_data(data.decode('utf-8')) - except IOError: - requires = None - elif path.endswith('.egg-info'): - if os.path.isdir(path): - req_path = os.path.join(path, 'requires.txt') - requires = parse_requires_path(req_path) - path = os.path.join(path, 'PKG-INFO') - metadata = Metadata(path=path, scheme='legacy') - else: - raise DistlibException('path must end with .egg-info or .egg, ' - 'got %r' % path) - - if requires: - metadata.add_requirements(requires) - return metadata - - def __repr__(self): - return '' % ( - self.name, self.version, self.path) - - def __str__(self): - return "%s %s" % (self.name, self.version) - - def check_installed_files(self): - """ - Checks that the hashes and sizes of the files in ``RECORD`` are - matched by the files themselves. Returns a (possibly empty) list of - mismatches. Each entry in the mismatch list will be a tuple consisting - of the path, 'exists', 'size' or 'hash' according to what didn't match - (existence is checked first, then size, then hash), the expected - value and the actual value. - """ - mismatches = [] - record_path = os.path.join(self.path, 'installed-files.txt') - if os.path.exists(record_path): - for path, _, _ in self.list_installed_files(): - if path == record_path: - continue - if not os.path.exists(path): - mismatches.append((path, 'exists', True, False)) - return mismatches - - def list_installed_files(self): - """ - Iterates over the ``installed-files.txt`` entries and returns a tuple - ``(path, hash, size)`` for each line. - - :returns: a list of (path, hash, size) - """ - - def _md5(path): - f = open(path, 'rb') - try: - content = f.read() - finally: - f.close() - return hashlib.md5(content).hexdigest() - - def _size(path): - return os.stat(path).st_size - - record_path = os.path.join(self.path, 'installed-files.txt') - result = [] - if os.path.exists(record_path): - with codecs.open(record_path, 'r', encoding='utf-8') as f: - for line in f: - line = line.strip() - p = os.path.normpath(os.path.join(self.path, line)) - # "./" is present as a marker between installed files - # and installation metadata files - if not os.path.exists(p): - logger.warning('Non-existent file: %s', p) - if p.endswith(('.pyc', '.pyo')): - continue - #otherwise fall through and fail - if not os.path.isdir(p): - result.append((p, _md5(p), _size(p))) - result.append((record_path, None, None)) - return result - - def list_distinfo_files(self, absolute=False): - """ - Iterates over the ``installed-files.txt`` entries and returns paths for - each line if the path is pointing to a file located in the - ``.egg-info`` directory or one of its subdirectories. - - :parameter absolute: If *absolute* is ``True``, each returned path is - transformed into a local absolute path. Otherwise the - raw value from ``installed-files.txt`` is returned. - :type absolute: boolean - :returns: iterator of paths - """ - record_path = os.path.join(self.path, 'installed-files.txt') - skip = True - with codecs.open(record_path, 'r', encoding='utf-8') as f: - for line in f: - line = line.strip() - if line == './': - skip = False - continue - if not skip: - p = os.path.normpath(os.path.join(self.path, line)) - if p.startswith(self.path): - if absolute: - yield p - else: - yield line - - def __eq__(self, other): - return (isinstance(other, EggInfoDistribution) and - self.path == other.path) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - __hash__ = object.__hash__ - -new_dist_class = InstalledDistribution -old_dist_class = EggInfoDistribution - - -class DependencyGraph(object): - """ - Represents a dependency graph between distributions. - - The dependency relationships are stored in an ``adjacency_list`` that maps - distributions to a list of ``(other, label)`` tuples where ``other`` - is a distribution and the edge is labeled with ``label`` (i.e. the version - specifier, if such was provided). Also, for more efficient traversal, for - every distribution ``x``, a list of predecessors is kept in - ``reverse_list[x]``. An edge from distribution ``a`` to - distribution ``b`` means that ``a`` depends on ``b``. If any missing - dependencies are found, they are stored in ``missing``, which is a - dictionary that maps distributions to a list of requirements that were not - provided by any other distributions. - """ - - def __init__(self): - self.adjacency_list = {} - self.reverse_list = {} - self.missing = {} - - def add_distribution(self, distribution): - """Add the *distribution* to the graph. - - :type distribution: :class:`distutils2.database.InstalledDistribution` - or :class:`distutils2.database.EggInfoDistribution` - """ - self.adjacency_list[distribution] = [] - self.reverse_list[distribution] = [] - #self.missing[distribution] = [] - - def add_edge(self, x, y, label=None): - """Add an edge from distribution *x* to distribution *y* with the given - *label*. - - :type x: :class:`distutils2.database.InstalledDistribution` or - :class:`distutils2.database.EggInfoDistribution` - :type y: :class:`distutils2.database.InstalledDistribution` or - :class:`distutils2.database.EggInfoDistribution` - :type label: ``str`` or ``None`` - """ - self.adjacency_list[x].append((y, label)) - # multiple edges are allowed, so be careful - if x not in self.reverse_list[y]: - self.reverse_list[y].append(x) - - def add_missing(self, distribution, requirement): - """ - Add a missing *requirement* for the given *distribution*. - - :type distribution: :class:`distutils2.database.InstalledDistribution` - or :class:`distutils2.database.EggInfoDistribution` - :type requirement: ``str`` - """ - logger.debug('%s missing %r', distribution, requirement) - self.missing.setdefault(distribution, []).append(requirement) - - def _repr_dist(self, dist): - return '%s %s' % (dist.name, dist.version) - - def repr_node(self, dist, level=1): - """Prints only a subgraph""" - output = [self._repr_dist(dist)] - for other, label in self.adjacency_list[dist]: - dist = self._repr_dist(other) - if label is not None: - dist = '%s [%s]' % (dist, label) - output.append(' ' * level + str(dist)) - suboutput = self.repr_node(other, level + 1) - subs = suboutput.split('\n') - output.extend(subs[1:]) - return '\n'.join(output) - - def to_dot(self, f, skip_disconnected=True): - """Writes a DOT output for the graph to the provided file *f*. - - If *skip_disconnected* is set to ``True``, then all distributions - that are not dependent on any other distribution are skipped. - - :type f: has to support ``file``-like operations - :type skip_disconnected: ``bool`` - """ - disconnected = [] - - f.write("digraph dependencies {\n") - for dist, adjs in self.adjacency_list.items(): - if len(adjs) == 0 and not skip_disconnected: - disconnected.append(dist) - for other, label in adjs: - if not label is None: - f.write('"%s" -> "%s" [label="%s"]\n' % - (dist.name, other.name, label)) - else: - f.write('"%s" -> "%s"\n' % (dist.name, other.name)) - if not skip_disconnected and len(disconnected) > 0: - f.write('subgraph disconnected {\n') - f.write('label = "Disconnected"\n') - f.write('bgcolor = red\n') - - for dist in disconnected: - f.write('"%s"' % dist.name) - f.write('\n') - f.write('}\n') - f.write('}\n') - - def topological_sort(self): - """ - Perform a topological sort of the graph. - :return: A tuple, the first element of which is a topologically sorted - list of distributions, and the second element of which is a - list of distributions that cannot be sorted because they have - circular dependencies and so form a cycle. - """ - result = [] - # Make a shallow copy of the adjacency list - alist = {} - for k, v in self.adjacency_list.items(): - alist[k] = v[:] - while True: - # See what we can remove in this run - to_remove = [] - for k, v in list(alist.items())[:]: - if not v: - to_remove.append(k) - del alist[k] - if not to_remove: - # What's left in alist (if anything) is a cycle. - break - # Remove from the adjacency list of others - for k, v in alist.items(): - alist[k] = [(d, r) for d, r in v if d not in to_remove] - logger.debug('Moving to result: %s', - ['%s (%s)' % (d.name, d.version) for d in to_remove]) - result.extend(to_remove) - return result, list(alist.keys()) - - def __repr__(self): - """Representation of the graph""" - output = [] - for dist, adjs in self.adjacency_list.items(): - output.append(self.repr_node(dist)) - return '\n'.join(output) - - -def make_graph(dists, scheme='default'): - """Makes a dependency graph from the given distributions. - - :parameter dists: a list of distributions - :type dists: list of :class:`distutils2.database.InstalledDistribution` and - :class:`distutils2.database.EggInfoDistribution` instances - :rtype: a :class:`DependencyGraph` instance - """ - scheme = get_scheme(scheme) - graph = DependencyGraph() - provided = {} # maps names to lists of (version, dist) tuples - - # first, build the graph and find out what's provided - for dist in dists: - graph.add_distribution(dist) - - for p in dist.provides: - name, version = parse_name_and_version(p) - logger.debug('Add to provided: %s, %s, %s', name, version, dist) - provided.setdefault(name, []).append((version, dist)) - - # now make the edges - for dist in dists: - requires = (dist.run_requires | dist.meta_requires | - dist.build_requires | dist.dev_requires) - for req in requires: - try: - matcher = scheme.matcher(req) - except UnsupportedVersionError: - # XXX compat-mode if cannot read the version - logger.warning('could not read version %r - using name only', - req) - name = req.split()[0] - matcher = scheme.matcher(name) - - name = matcher.key # case-insensitive - - matched = False - if name in provided: - for version, provider in provided[name]: - try: - match = matcher.match(version) - except UnsupportedVersionError: - match = False - - if match: - graph.add_edge(dist, provider, req) - matched = True - break - if not matched: - graph.add_missing(dist, req) - return graph - - -def get_dependent_dists(dists, dist): - """Recursively generate a list of distributions from *dists* that are - dependent on *dist*. - - :param dists: a list of distributions - :param dist: a distribution, member of *dists* for which we are interested - """ - if dist not in dists: - raise DistlibException('given distribution %r is not a member ' - 'of the list' % dist.name) - graph = make_graph(dists) - - dep = [dist] # dependent distributions - todo = graph.reverse_list[dist] # list of nodes we should inspect - - while todo: - d = todo.pop() - dep.append(d) - for succ in graph.reverse_list[d]: - if succ not in dep: - todo.append(succ) - - dep.pop(0) # remove dist from dep, was there to prevent infinite loops - return dep - - -def get_required_dists(dists, dist): - """Recursively generate a list of distributions from *dists* that are - required by *dist*. - - :param dists: a list of distributions - :param dist: a distribution, member of *dists* for which we are interested - """ - if dist not in dists: - raise DistlibException('given distribution %r is not a member ' - 'of the list' % dist.name) - graph = make_graph(dists) - - req = [] # required distributions - todo = graph.adjacency_list[dist] # list of nodes we should inspect - - while todo: - d = todo.pop()[0] - req.append(d) - for pred in graph.adjacency_list[d]: - if pred not in req: - todo.append(pred) - - return req - - -def make_dist(name, version, **kwargs): - """ - A convenience method for making a dist given just a name and version. - """ - summary = kwargs.pop('summary', 'Placeholder for summary') - md = Metadata(**kwargs) - md.name = name - md.version = version - md.summary = summary or 'Plaeholder for summary' - return Distribution(md) diff --git a/src/build_utils/distlib/index.py b/src/build_utils/distlib/index.py deleted file mode 100644 index 73037c97b..000000000 --- a/src/build_utils/distlib/index.py +++ /dev/null @@ -1,513 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -import hashlib -import logging -import os -import shutil -import subprocess -import tempfile -try: - from threading import Thread -except ImportError: - from dummy_threading import Thread - -from . import DistlibException -from .compat import (HTTPBasicAuthHandler, Request, HTTPPasswordMgr, - urlparse, build_opener, string_types) -from .util import cached_property, zip_dir, ServerProxy - -logger = logging.getLogger(__name__) - -DEFAULT_INDEX = 'https://pypi.python.org/pypi' -DEFAULT_REALM = 'pypi' - -class PackageIndex(object): - """ - This class represents a package index compatible with PyPI, the Python - Package Index. - """ - - boundary = b'----------ThIs_Is_tHe_distlib_index_bouNdaRY_$' - - def __init__(self, url=None): - """ - Initialise an instance. - - :param url: The URL of the index. If not specified, the URL for PyPI is - used. - """ - self.url = url or DEFAULT_INDEX - self.read_configuration() - scheme, netloc, path, params, query, frag = urlparse(self.url) - if params or query or frag or scheme not in ('http', 'https'): - raise DistlibException('invalid repository: %s' % self.url) - self.password_handler = None - self.ssl_verifier = None - self.gpg = None - self.gpg_home = None - self.rpc_proxy = None - with open(os.devnull, 'w') as sink: - for s in ('gpg2', 'gpg'): - try: - rc = subprocess.check_call([s, '--version'], stdout=sink, - stderr=sink) - if rc == 0: - self.gpg = s - break - except OSError: - pass - - def _get_pypirc_command(self): - """ - Get the distutils command for interacting with PyPI configurations. - :return: the command. - """ - from distutils.core import Distribution - from distutils.config import PyPIRCCommand - d = Distribution() - return PyPIRCCommand(d) - - def read_configuration(self): - """ - Read the PyPI access configuration as supported by distutils, getting - PyPI to do the acutal work. This populates ``username``, ``password``, - ``realm`` and ``url`` attributes from the configuration. - """ - # get distutils to do the work - c = self._get_pypirc_command() - c.repository = self.url - cfg = c._read_pypirc() - self.username = cfg.get('username') - self.password = cfg.get('password') - self.realm = cfg.get('realm', 'pypi') - self.url = cfg.get('repository', self.url) - - def save_configuration(self): - """ - Save the PyPI access configuration. You must have set ``username`` and - ``password`` attributes before calling this method. - - Again, distutils is used to do the actual work. - """ - self.check_credentials() - # get distutils to do the work - c = self._get_pypirc_command() - c._store_pypirc(self.username, self.password) - - def check_credentials(self): - """ - Check that ``username`` and ``password`` have been set, and raise an - exception if not. - """ - if self.username is None or self.password is None: - raise DistlibException('username and password must be set') - pm = HTTPPasswordMgr() - _, netloc, _, _, _, _ = urlparse(self.url) - pm.add_password(self.realm, netloc, self.username, self.password) - self.password_handler = HTTPBasicAuthHandler(pm) - - def register(self, metadata): - """ - Register a distribution on PyPI, using the provided metadata. - - :param metadata: A :class:`Metadata` instance defining at least a name - and version number for the distribution to be - registered. - :return: The HTTP response received from PyPI upon submission of the - request. - """ - self.check_credentials() - metadata.validate() - d = metadata.todict() - d[':action'] = 'verify' - request = self.encode_request(d.items(), []) - response = self.send_request(request) - d[':action'] = 'submit' - request = self.encode_request(d.items(), []) - return self.send_request(request) - - def _reader(self, name, stream, outbuf): - """ - Thread runner for reading lines of from a subprocess into a buffer. - - :param name: The logical name of the stream (used for logging only). - :param stream: The stream to read from. This will typically a pipe - connected to the output stream of a subprocess. - :param outbuf: The list to append the read lines to. - """ - while True: - s = stream.readline() - if not s: - break - s = s.decode('utf-8').rstrip() - outbuf.append(s) - logger.debug('%s: %s' % (name, s)) - stream.close() - - def get_sign_command(self, filename, signer, sign_password, - keystore=None): - """ - Return a suitable command for signing a file. - - :param filename: The pathname to the file to be signed. - :param signer: The identifier of the signer of the file. - :param sign_password: The passphrase for the signer's - private key used for signing. - :param keystore: The path to a directory which contains the keys - used in verification. If not specified, the - instance's ``gpg_home`` attribute is used instead. - :return: The signing command as a list suitable to be - passed to :class:`subprocess.Popen`. - """ - cmd = [self.gpg, '--status-fd', '2', '--no-tty'] - if keystore is None: - keystore = self.gpg_home - if keystore: - cmd.extend(['--homedir', keystore]) - if sign_password is not None: - cmd.extend(['--batch', '--passphrase-fd', '0']) - td = tempfile.mkdtemp() - sf = os.path.join(td, os.path.basename(filename) + '.asc') - cmd.extend(['--detach-sign', '--armor', '--local-user', - signer, '--output', sf, filename]) - logger.debug('invoking: %s', ' '.join(cmd)) - return cmd, sf - - def run_command(self, cmd, input_data=None): - """ - Run a command in a child process , passing it any input data specified. - - :param cmd: The command to run. - :param input_data: If specified, this must be a byte string containing - data to be sent to the child process. - :return: A tuple consisting of the subprocess' exit code, a list of - lines read from the subprocess' ``stdout``, and a list of - lines read from the subprocess' ``stderr``. - """ - kwargs = { - 'stdout': subprocess.PIPE, - 'stderr': subprocess.PIPE, - } - if input_data is not None: - kwargs['stdin'] = subprocess.PIPE - stdout = [] - stderr = [] - p = subprocess.Popen(cmd, **kwargs) - # We don't use communicate() here because we may need to - # get clever with interacting with the command - t1 = Thread(target=self._reader, args=('stdout', p.stdout, stdout)) - t1.start() - t2 = Thread(target=self._reader, args=('stderr', p.stderr, stderr)) - t2.start() - if input_data is not None: - p.stdin.write(input_data) - p.stdin.close() - - p.wait() - t1.join() - t2.join() - return p.returncode, stdout, stderr - - def sign_file(self, filename, signer, sign_password, keystore=None): - """ - Sign a file. - - :param filename: The pathname to the file to be signed. - :param signer: The identifier of the signer of the file. - :param sign_password: The passphrase for the signer's - private key used for signing. - :param keystore: The path to a directory which contains the keys - used in signing. If not specified, the instance's - ``gpg_home`` attribute is used instead. - :return: The absolute pathname of the file where the signature is - stored. - """ - cmd, sig_file = self.get_sign_command(filename, signer, sign_password, - keystore) - rc, stdout, stderr = self.run_command(cmd, - sign_password.encode('utf-8')) - if rc != 0: - raise DistlibException('sign command failed with error ' - 'code %s' % rc) - return sig_file - - def upload_file(self, metadata, filename, signer=None, sign_password=None, - filetype='sdist', pyversion='source', keystore=None): - """ - Upload a release file to the index. - - :param metadata: A :class:`Metadata` instance defining at least a name - and version number for the file to be uploaded. - :param filename: The pathname of the file to be uploaded. - :param signer: The identifier of the signer of the file. - :param sign_password: The passphrase for the signer's - private key used for signing. - :param filetype: The type of the file being uploaded. This is the - distutils command which produced that file, e.g. - ``sdist`` or ``bdist_wheel``. - :param pyversion: The version of Python which the release relates - to. For code compatible with any Python, this would - be ``source``, otherwise it would be e.g. ``3.2``. - :param keystore: The path to a directory which contains the keys - used in signing. If not specified, the instance's - ``gpg_home`` attribute is used instead. - :return: The HTTP response received from PyPI upon submission of the - request. - """ - self.check_credentials() - if not os.path.exists(filename): - raise DistlibException('not found: %s' % filename) - metadata.validate() - d = metadata.todict() - sig_file = None - if signer: - if not self.gpg: - logger.warning('no signing program available - not signed') - else: - sig_file = self.sign_file(filename, signer, sign_password, - keystore) - with open(filename, 'rb') as f: - file_data = f.read() - md5_digest = hashlib.md5(file_data).hexdigest() - sha256_digest = hashlib.sha256(file_data).hexdigest() - d.update({ - ':action': 'file_upload', - 'protcol_version': '1', - 'filetype': filetype, - 'pyversion': pyversion, - 'md5_digest': md5_digest, - 'sha256_digest': sha256_digest, - }) - files = [('content', os.path.basename(filename), file_data)] - if sig_file: - with open(sig_file, 'rb') as f: - sig_data = f.read() - files.append(('gpg_signature', os.path.basename(sig_file), - sig_data)) - shutil.rmtree(os.path.dirname(sig_file)) - request = self.encode_request(d.items(), files) - return self.send_request(request) - - def upload_documentation(self, metadata, doc_dir): - """ - Upload documentation to the index. - - :param metadata: A :class:`Metadata` instance defining at least a name - and version number for the documentation to be - uploaded. - :param doc_dir: The pathname of the directory which contains the - documentation. This should be the directory that - contains the ``index.html`` for the documentation. - :return: The HTTP response received from PyPI upon submission of the - request. - """ - self.check_credentials() - if not os.path.isdir(doc_dir): - raise DistlibException('not a directory: %r' % doc_dir) - fn = os.path.join(doc_dir, 'index.html') - if not os.path.exists(fn): - raise DistlibException('not found: %r' % fn) - metadata.validate() - name, version = metadata.name, metadata.version - zip_data = zip_dir(doc_dir).getvalue() - fields = [(':action', 'doc_upload'), - ('name', name), ('version', version)] - files = [('content', name, zip_data)] - request = self.encode_request(fields, files) - return self.send_request(request) - - def get_verify_command(self, signature_filename, data_filename, - keystore=None): - """ - Return a suitable command for verifying a file. - - :param signature_filename: The pathname to the file containing the - signature. - :param data_filename: The pathname to the file containing the - signed data. - :param keystore: The path to a directory which contains the keys - used in verification. If not specified, the - instance's ``gpg_home`` attribute is used instead. - :return: The verifying command as a list suitable to be - passed to :class:`subprocess.Popen`. - """ - cmd = [self.gpg, '--status-fd', '2', '--no-tty'] - if keystore is None: - keystore = self.gpg_home - if keystore: - cmd.extend(['--homedir', keystore]) - cmd.extend(['--verify', signature_filename, data_filename]) - logger.debug('invoking: %s', ' '.join(cmd)) - return cmd - - def verify_signature(self, signature_filename, data_filename, - keystore=None): - """ - Verify a signature for a file. - - :param signature_filename: The pathname to the file containing the - signature. - :param data_filename: The pathname to the file containing the - signed data. - :param keystore: The path to a directory which contains the keys - used in verification. If not specified, the - instance's ``gpg_home`` attribute is used instead. - :return: True if the signature was verified, else False. - """ - if not self.gpg: - raise DistlibException('verification unavailable because gpg ' - 'unavailable') - cmd = self.get_verify_command(signature_filename, data_filename, - keystore) - rc, stdout, stderr = self.run_command(cmd) - if rc not in (0, 1): - raise DistlibException('verify command failed with error ' - 'code %s' % rc) - return rc == 0 - - def download_file(self, url, destfile, digest=None, reporthook=None): - """ - This is a convenience method for downloading a file from an URL. - Normally, this will be a file from the index, though currently - no check is made for this (i.e. a file can be downloaded from - anywhere). - - The method is just like the :func:`urlretrieve` function in the - standard library, except that it allows digest computation to be - done during download and checking that the downloaded data - matched any expected value. - - :param url: The URL of the file to be downloaded (assumed to be - available via an HTTP GET request). - :param destfile: The pathname where the downloaded file is to be - saved. - :param digest: If specified, this must be a (hasher, value) - tuple, where hasher is the algorithm used (e.g. - ``'md5'``) and ``value`` is the expected value. - :param reporthook: The same as for :func:`urlretrieve` in the - standard library. - """ - if digest is None: - digester = None - logger.debug('No digest specified') - else: - if isinstance(digest, (list, tuple)): - hasher, digest = digest - else: - hasher = 'md5' - digester = getattr(hashlib, hasher)() - logger.debug('Digest specified: %s' % digest) - # The following code is equivalent to urlretrieve. - # We need to do it this way so that we can compute the - # digest of the file as we go. - with open(destfile, 'wb') as dfp: - # addinfourl is not a context manager on 2.x - # so we have to use try/finally - sfp = self.send_request(Request(url)) - try: - headers = sfp.info() - blocksize = 8192 - size = -1 - read = 0 - blocknum = 0 - if "content-length" in headers: - size = int(headers["Content-Length"]) - if reporthook: - reporthook(blocknum, blocksize, size) - while True: - block = sfp.read(blocksize) - if not block: - break - read += len(block) - dfp.write(block) - if digester: - digester.update(block) - blocknum += 1 - if reporthook: - reporthook(blocknum, blocksize, size) - finally: - sfp.close() - - # check that we got the whole file, if we can - if size >= 0 and read < size: - raise DistlibException( - 'retrieval incomplete: got only %d out of %d bytes' - % (read, size)) - # if we have a digest, it must match. - if digester: - actual = digester.hexdigest() - if digest != actual: - raise DistlibException('%s digest mismatch for %s: expected ' - '%s, got %s' % (hasher, destfile, - digest, actual)) - logger.debug('Digest verified: %s', digest) - - def send_request(self, req): - """ - Send a standard library :class:`Request` to PyPI and return its - response. - - :param req: The request to send. - :return: The HTTP response from PyPI (a standard library HTTPResponse). - """ - handlers = [] - if self.password_handler: - handlers.append(self.password_handler) - if self.ssl_verifier: - handlers.append(self.ssl_verifier) - opener = build_opener(*handlers) - return opener.open(req) - - def encode_request(self, fields, files): - """ - Encode fields and files for posting to an HTTP server. - - :param fields: The fields to send as a list of (fieldname, value) - tuples. - :param files: The files to send as a list of (fieldname, filename, - file_bytes) tuple. - """ - # Adapted from packaging, which in turn was adapted from - # http://code.activestate.com/recipes/146306 - - parts = [] - boundary = self.boundary - for k, values in fields: - if not isinstance(values, (list, tuple)): - values = [values] - - for v in values: - parts.extend(( - b'--' + boundary, - ('Content-Disposition: form-data; name="%s"' % - k).encode('utf-8'), - b'', - v.encode('utf-8'))) - for key, filename, value in files: - parts.extend(( - b'--' + boundary, - ('Content-Disposition: form-data; name="%s"; filename="%s"' % - (key, filename)).encode('utf-8'), - b'', - value)) - - parts.extend((b'--' + boundary + b'--', b'')) - - body = b'\r\n'.join(parts) - ct = b'multipart/form-data; boundary=' + boundary - headers = { - 'Content-type': ct, - 'Content-length': str(len(body)) - } - return Request(self.url, body, headers) - - def search(self, terms, operator=None): - if isinstance(terms, string_types): - terms = {'name': terms} - if self.rpc_proxy is None: - self.rpc_proxy = ServerProxy(self.url, timeout=3.0) - return self.rpc_proxy.search(terms, operator or 'and') diff --git a/src/build_utils/distlib/locators.py b/src/build_utils/distlib/locators.py deleted file mode 100644 index e84075917..000000000 --- a/src/build_utils/distlib/locators.py +++ /dev/null @@ -1,1195 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2013 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# - -import gzip -from io import BytesIO -import json -import logging -import os -import posixpath -import re -try: - import threading -except ImportError: - import dummy_threading as threading -import zlib - -from . import DistlibException -from .compat import (urljoin, urlparse, urlunparse, url2pathname, pathname2url, - queue, quote, unescape, string_types, build_opener, - HTTPRedirectHandler as BaseRedirectHandler, - Request, HTTPError, URLError) -from .database import Distribution, DistributionPath, make_dist -from .metadata import Metadata -from .util import (cached_property, parse_credentials, ensure_slash, - split_filename, get_project_data, parse_requirement, - parse_name_and_version, ServerProxy) -from .version import get_scheme, UnsupportedVersionError -from .wheel import Wheel, is_compatible - -logger = logging.getLogger(__name__) - -HASHER_HASH = re.compile('^(\w+)=([a-f0-9]+)') -CHARSET = re.compile(r';\s*charset\s*=\s*(.*)\s*$', re.I) -HTML_CONTENT_TYPE = re.compile('text/html|application/x(ht)?ml') -DEFAULT_INDEX = 'http://python.org/pypi' - -def get_all_distribution_names(url=None): - """ - Return all distribution names known by an index. - :param url: The URL of the index. - :return: A list of all known distribution names. - """ - if url is None: - url = DEFAULT_INDEX - client = ServerProxy(url, timeout=3.0) - return client.list_packages() - -class RedirectHandler(BaseRedirectHandler): - """ - A class to work around a bug in some Python 3.2.x releases. - """ - # There's a bug in the base version for some 3.2.x - # (e.g. 3.2.2 on Ubuntu Oneiric). If a Location header - # returns e.g. /abc, it bails because it says the scheme '' - # is bogus, when actually it should use the request's - # URL for the scheme. See Python issue #13696. - def http_error_302(self, req, fp, code, msg, headers): - # Some servers (incorrectly) return multiple Location headers - # (so probably same goes for URI). Use first header. - newurl = None - for key in ('location', 'uri'): - if key in headers: - newurl = headers[key] - break - if newurl is None: - return - urlparts = urlparse(newurl) - if urlparts.scheme == '': - newurl = urljoin(req.get_full_url(), newurl) - if hasattr(headers, 'replace_header'): - headers.replace_header(key, newurl) - else: - headers[key] = newurl - return BaseRedirectHandler.http_error_302(self, req, fp, code, msg, - headers) - - http_error_301 = http_error_303 = http_error_307 = http_error_302 - -class Locator(object): - """ - A base class for locators - things that locate distributions. - """ - source_extensions = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz') - binary_extensions = ('.egg', '.exe', '.whl') - excluded_extensions = ('.pdf',) - - # A list of tags indicating which wheels you want to match. The default - # value of None matches against the tags compatible with the running - # Python. If you want to match other values, set wheel_tags on a locator - # instance to a list of tuples (pyver, abi, arch) which you want to match. - wheel_tags = None - - downloadable_extensions = source_extensions + ('.whl',) - - def __init__(self, scheme='default'): - """ - Initialise an instance. - :param scheme: Because locators look for most recent versions, they - need to know the version scheme to use. This specifies - the current PEP-recommended scheme - use ``'legacy'`` - if you need to support existing distributions on PyPI. - """ - self._cache = {} - self.scheme = scheme - # Because of bugs in some of the handlers on some of the platforms, - # we use our own opener rather than just using urlopen. - self.opener = build_opener(RedirectHandler()) - # If get_project() is called from locate(), the matcher instance - # is set from the requirement passed to locate(). See issue #18 for - # why this can be useful to know. - self.matcher = None - - def clear_cache(self): - self._cache.clear() - - def _get_scheme(self): - return self._scheme - - def _set_scheme(self, value): - self._scheme = value - - scheme = property(_get_scheme, _set_scheme) - - def _get_project(self, name): - """ - For a given project, get a dictionary mapping available versions to Distribution - instances. - - This should be implemented in subclasses. - - If called from a locate() request, self.matcher will be set to a - matcher for the requirement to satisfy, otherwise it will be None. - """ - raise NotImplementedError('Please implement in the subclass') - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - raise NotImplementedError('Please implement in the subclass') - - def get_project(self, name): - """ - For a given project, get a dictionary mapping available versions to Distribution - instances. - - This calls _get_project to do all the work, and just implements a caching layer on top. - """ - if self._cache is None: - result = self._get_project(name) - elif name in self._cache: - result = self._cache[name] - else: - result = self._get_project(name) - self._cache[name] = result - return result - - def score_url(self, url): - """ - Give an url a score which can be used to choose preferred URLs - for a given project release. - """ - t = urlparse(url) - return (t.scheme != 'https', 'pypi.python.org' in t.netloc, - posixpath.basename(t.path)) - - def prefer_url(self, url1, url2): - """ - Choose one of two URLs where both are candidates for distribution - archives for the same version of a distribution (for example, - .tar.gz vs. zip). - - The current implement favours http:// URLs over https://, archives - from PyPI over those from other locations and then the archive name. - """ - result = url2 - if url1: - s1 = self.score_url(url1) - s2 = self.score_url(url2) - if s1 > s2: - result = url1 - if result != url2: - logger.debug('Not replacing %r with %r', url1, url2) - else: - logger.debug('Replacing %r with %r', url1, url2) - return result - - def split_filename(self, filename, project_name): - """ - Attempt to split a filename in project name, version and Python version. - """ - return split_filename(filename, project_name) - - def convert_url_to_download_info(self, url, project_name): - """ - See if a URL is a candidate for a download URL for a project (the URL - has typically been scraped from an HTML page). - - If it is, a dictionary is returned with keys "name", "version", - "filename" and "url"; otherwise, None is returned. - """ - def same_project(name1, name2): - name1, name2 = name1.lower(), name2.lower() - if name1 == name2: - result = True - else: - # distribute replaces '-' by '_' in project names, so it - # can tell where the version starts in a filename. - result = name1.replace('_', '-') == name2.replace('_', '-') - return result - - result = None - scheme, netloc, path, params, query, frag = urlparse(url) - if frag.lower().startswith('egg='): - logger.debug('%s: version hint in fragment: %r', - project_name, frag) - m = HASHER_HASH.match(frag) - if m: - algo, digest = m.groups() - else: - algo, digest = None, None - origpath = path - if path and path[-1] == '/': - path = path[:-1] - if path.endswith('.whl'): - try: - wheel = Wheel(path) - if is_compatible(wheel, self.wheel_tags): - if project_name is None: - include = True - else: - include = same_project(wheel.name, project_name) - if include: - result = { - 'name': wheel.name, - 'version': wheel.version, - 'filename': wheel.filename, - 'url': urlunparse((scheme, netloc, origpath, - params, query, '')), - 'python-version': ', '.join( - ['.'.join(list(v[2:])) for v in wheel.pyver]), - } - except Exception as e: - logger.warning('invalid path for wheel: %s', path) - elif path.endswith(self.downloadable_extensions): - path = filename = posixpath.basename(path) - for ext in self.downloadable_extensions: - if path.endswith(ext): - path = path[:-len(ext)] - t = self.split_filename(path, project_name) - if not t: - logger.debug('No match for project/version: %s', path) - else: - name, version, pyver = t - if not project_name or same_project(project_name, name): - result = { - 'name': name, - 'version': version, - 'filename': filename, - 'url': urlunparse((scheme, netloc, origpath, - params, query, '')), - #'packagetype': 'sdist', - } - if pyver: - result['python-version'] = pyver - break - if result and algo: - result['%s_digest' % algo] = digest - return result - - def _get_digest(self, info): - """ - Get a digest from a dictionary by looking at keys of the form - 'algo_digest'. - - Returns a 2-tuple (algo, digest) if found, else None. Currently - looks only for SHA256, then MD5. - """ - result = None - for algo in ('sha256', 'md5'): - key = '%s_digest' % algo - if key in info: - result = (algo, info[key]) - break - return result - - def _update_version_data(self, result, info): - """ - Update a result dictionary (the final result from _get_project) with a dictionary for a - specific version, whih typically holds information gleaned from a filename or URL for an - archive for the distribution. - """ - name = info.pop('name') - version = info.pop('version') - if version in result: - dist = result[version] - md = dist.metadata - else: - dist = make_dist(name, version, scheme=self.scheme) - md = dist.metadata - dist.digest = self._get_digest(info) - if md.source_url != info['url']: - md.source_url = self.prefer_url(md.source_url, info['url']) - dist.locator = self - result[version] = dist - - def locate(self, requirement, prereleases=False): - """ - Find the most recent distribution which matches the given - requirement. - - :param requirement: A requirement of the form 'foo (1.0)' or perhaps - 'foo (>= 1.0, < 2.0, != 1.3)' - :param prereleases: If ``True``, allow pre-release versions - to be located. Otherwise, pre-release versions - are not returned. - :return: A :class:`Distribution` instance, or ``None`` if no such - distribution could be located. - """ - result = None - r = parse_requirement(requirement) - if r is None: - raise DistlibException('Not a valid requirement: %r' % requirement) - scheme = get_scheme(self.scheme) - self.matcher = matcher = scheme.matcher(r.requirement) - logger.debug('matcher: %s (%s)', matcher, type(matcher).__name__) - versions = self.get_project(r.name) - if versions: - # sometimes, versions are invalid - slist = [] - vcls = matcher.version_class - for k in versions: - try: - if not matcher.match(k): - logger.debug('%s did not match %r', matcher, k) - else: - if prereleases or not vcls(k).is_prerelease: - slist.append(k) - else: - logger.debug('skipping pre-release ' - 'version %s of %s', k, matcher.name) - except Exception: - logger.warning('error matching %s with %r', matcher, k) - pass # slist.append(k) - if len(slist) > 1: - slist = sorted(slist, key=scheme.key) - if slist: - logger.debug('sorted list: %s', slist) - result = versions[slist[-1]] - if result and r.extras: - result.extras = r.extras - self.matcher = None - return result - - -class PyPIRPCLocator(Locator): - """ - This locator uses XML-RPC to locate distributions. It therefore - cannot be used with simple mirrors (that only mirror file content). - """ - def __init__(self, url, **kwargs): - """ - Initialise an instance. - - :param url: The URL to use for XML-RPC. - :param kwargs: Passed to the superclass constructor. - """ - super(PyPIRPCLocator, self).__init__(**kwargs) - self.base_url = url - self.client = ServerProxy(url, timeout=3.0) - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - return set(self.client.list_packages()) - - def _get_project(self, name): - result = {} - versions = self.client.package_releases(name, True) - for v in versions: - urls = self.client.release_urls(name, v) - data = self.client.release_data(name, v) - metadata = Metadata(scheme=self.scheme) - metadata.name = data['name'] - metadata.version = data['version'] - metadata.license = data.get('license') - metadata.keywords = data.get('keywords', []) - metadata.summary = data.get('summary') - dist = Distribution(metadata) - if urls: - info = urls[0] - metadata.source_url = info['url'] - dist.digest = self._get_digest(info) - dist.locator = self - result[v] = dist - return result - -class PyPIJSONLocator(Locator): - """ - This locator uses PyPI's JSON interface. It's very limited in functionality - nad probably not worth using. - """ - def __init__(self, url, **kwargs): - super(PyPIJSONLocator, self).__init__(**kwargs) - self.base_url = ensure_slash(url) - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - raise NotImplementedError('Not available from this locator') - - def _get_project(self, name): - result = {} - url = urljoin(self.base_url, '%s/json' % quote(name)) - try: - resp = self.opener.open(url) - data = resp.read().decode() # for now - d = json.loads(data) - md = Metadata(scheme=self.scheme) - data = d['info'] - md.name = data['name'] - md.version = data['version'] - md.license = data.get('license') - md.keywords = data.get('keywords', []) - md.summary = data.get('summary') - dist = Distribution(md) - urls = d['urls'] - if urls: - info = urls[0] - md.source_url = info['url'] - dist.digest = self._get_digest(info) - dist.locator = self - result[md.version] = dist - except Exception as e: - logger.exception('JSON fetch failed: %s', e) - return result - - -class Page(object): - """ - This class represents a scraped HTML page. - """ - # The following slightly hairy-looking regex just looks for the contents of - # an anchor link, which has an attribute "href" either immediately preceded - # or immediately followed by a "rel" attribute. The attribute values can be - # declared with double quotes, single quotes or no quotes - which leads to - # the length of the expression. - _href = re.compile(""" -(rel\s*=\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\s\n]*))\s+)? -href\s*=\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\s\n]*)) -(\s+rel\s*=\s*(?:"(?P[^"]*)"|'(?P[^']*)'|(?P[^>\s\n]*)))? -""", re.I | re.S | re.X) - _base = re.compile(r"""]+)""", re.I | re.S) - - def __init__(self, data, url): - """ - Initialise an instance with the Unicode page contents and the URL they - came from. - """ - self.data = data - self.base_url = self.url = url - m = self._base.search(self.data) - if m: - self.base_url = m.group(1) - - _clean_re = re.compile(r'[^a-z0-9$&+,/:;=?@.#%_\\|-]', re.I) - - @cached_property - def links(self): - """ - Return the URLs of all the links on a page together with information - about their "rel" attribute, for determining which ones to treat as - downloads and which ones to queue for further scraping. - """ - def clean(url): - "Tidy up an URL." - scheme, netloc, path, params, query, frag = urlparse(url) - return urlunparse((scheme, netloc, quote(path), - params, query, frag)) - - result = set() - for match in self._href.finditer(self.data): - d = match.groupdict('') - rel = (d['rel1'] or d['rel2'] or d['rel3'] or - d['rel4'] or d['rel5'] or d['rel6']) - url = d['url1'] or d['url2'] or d['url3'] - url = urljoin(self.base_url, url) - url = unescape(url) - url = self._clean_re.sub(lambda m: '%%%2x' % ord(m.group(0)), url) - result.add((url, rel)) - # We sort the result, hoping to bring the most recent versions - # to the front - result = sorted(result, key=lambda t: t[0], reverse=True) - return result - - -class SimpleScrapingLocator(Locator): - """ - A locator which scrapes HTML pages to locate downloads for a distribution. - This runs multiple threads to do the I/O; performance is at least as good - as pip's PackageFinder, which works in an analogous fashion. - """ - - # These are used to deal with various Content-Encoding schemes. - decoders = { - 'deflate': zlib.decompress, - 'gzip': lambda b: gzip.GzipFile(fileobj=BytesIO(d)).read(), - 'none': lambda b: b, - } - - def __init__(self, url, timeout=None, num_workers=10, **kwargs): - """ - Initialise an instance. - :param url: The root URL to use for scraping. - :param timeout: The timeout, in seconds, to be applied to requests. - This defaults to ``None`` (no timeout specified). - :param num_workers: The number of worker threads you want to do I/O, - This defaults to 10. - :param kwargs: Passed to the superclass. - """ - super(SimpleScrapingLocator, self).__init__(**kwargs) - self.base_url = ensure_slash(url) - self.timeout = timeout - self._page_cache = {} - self._seen = set() - self._to_fetch = queue.Queue() - self._bad_hosts = set() - self.skip_externals = False - self.num_workers = num_workers - self._lock = threading.RLock() - # See issue #45: we need to be resilient when the locator is used - # in a thread, e.g. with concurrent.futures. We can't use self._lock - # as it is for coordinating our internal threads - the ones created - # in _prepare_threads. - self._gplock = threading.RLock() - - def _prepare_threads(self): - """ - Threads are created only when get_project is called, and terminate - before it returns. They are there primarily to parallelise I/O (i.e. - fetching web pages). - """ - self._threads = [] - for i in range(self.num_workers): - t = threading.Thread(target=self._fetch) - t.setDaemon(True) - t.start() - self._threads.append(t) - - def _wait_threads(self): - """ - Tell all the threads to terminate (by sending a sentinel value) and - wait for them to do so. - """ - # Note that you need two loops, since you can't say which - # thread will get each sentinel - for t in self._threads: - self._to_fetch.put(None) # sentinel - for t in self._threads: - t.join() - self._threads = [] - - def _get_project(self, name): - result = {} - with self._gplock: - self.result = result - self.project_name = name - url = urljoin(self.base_url, '%s/' % quote(name)) - self._seen.clear() - self._page_cache.clear() - self._prepare_threads() - try: - logger.debug('Queueing %s', url) - self._to_fetch.put(url) - self._to_fetch.join() - finally: - self._wait_threads() - del self.result - return result - - platform_dependent = re.compile(r'\b(linux-(i\d86|x86_64|arm\w+)|' - r'win(32|-amd64)|macosx-?\d+)\b', re.I) - - def _is_platform_dependent(self, url): - """ - Does an URL refer to a platform-specific download? - """ - return self.platform_dependent.search(url) - - def _process_download(self, url): - """ - See if an URL is a suitable download for a project. - - If it is, register information in the result dictionary (for - _get_project) about the specific version it's for. - - Note that the return value isn't actually used other than as a boolean - value. - """ - if self._is_platform_dependent(url): - info = None - else: - info = self.convert_url_to_download_info(url, self.project_name) - logger.debug('process_download: %s -> %s', url, info) - if info: - with self._lock: # needed because self.result is shared - self._update_version_data(self.result, info) - return info - - def _should_queue(self, link, referrer, rel): - """ - Determine whether a link URL from a referring page and with a - particular "rel" attribute should be queued for scraping. - """ - scheme, netloc, path, _, _, _ = urlparse(link) - if path.endswith(self.source_extensions + self.binary_extensions + - self.excluded_extensions): - result = False - elif self.skip_externals and not link.startswith(self.base_url): - result = False - elif not referrer.startswith(self.base_url): - result = False - elif rel not in ('homepage', 'download'): - result = False - elif scheme not in ('http', 'https', 'ftp'): - result = False - elif self._is_platform_dependent(link): - result = False - else: - host = netloc.split(':', 1)[0] - if host.lower() == 'localhost': - result = False - else: - result = True - logger.debug('should_queue: %s (%s) from %s -> %s', link, rel, - referrer, result) - return result - - def _fetch(self): - """ - Get a URL to fetch from the work queue, get the HTML page, examine its - links for download candidates and candidates for further scraping. - - This is a handy method to run in a thread. - """ - while True: - url = self._to_fetch.get() - try: - if url: - page = self.get_page(url) - if page is None: # e.g. after an error - continue - for link, rel in page.links: - if link not in self._seen: - self._seen.add(link) - if (not self._process_download(link) and - self._should_queue(link, url, rel)): - logger.debug('Queueing %s from %s', link, url) - self._to_fetch.put(link) - finally: - # always do this, to avoid hangs :-) - self._to_fetch.task_done() - if not url: - #logger.debug('Sentinel seen, quitting.') - break - - def get_page(self, url): - """ - Get the HTML for an URL, possibly from an in-memory cache. - - XXX TODO Note: this cache is never actually cleared. It's assumed that - the data won't get stale over the lifetime of a locator instance (not - necessarily true for the default_locator). - """ - # http://peak.telecommunity.com/DevCenter/EasyInstall#package-index-api - scheme, netloc, path, _, _, _ = urlparse(url) - if scheme == 'file' and os.path.isdir(url2pathname(path)): - url = urljoin(ensure_slash(url), 'index.html') - - if url in self._page_cache: - result = self._page_cache[url] - logger.debug('Returning %s from cache: %s', url, result) - else: - host = netloc.split(':', 1)[0] - result = None - if host in self._bad_hosts: - logger.debug('Skipping %s due to bad host %s', url, host) - else: - req = Request(url, headers={'Accept-encoding': 'identity'}) - try: - logger.debug('Fetching %s', url) - resp = self.opener.open(req, timeout=self.timeout) - logger.debug('Fetched %s', url) - headers = resp.info() - content_type = headers.get('Content-Type', '') - if HTML_CONTENT_TYPE.match(content_type): - final_url = resp.geturl() - data = resp.read() - encoding = headers.get('Content-Encoding') - if encoding: - decoder = self.decoders[encoding] # fail if not found - data = decoder(data) - encoding = 'utf-8' - m = CHARSET.search(content_type) - if m: - encoding = m.group(1) - try: - data = data.decode(encoding) - except UnicodeError: - data = data.decode('latin-1') # fallback - result = Page(data, final_url) - self._page_cache[final_url] = result - except HTTPError as e: - if e.code != 404: - logger.exception('Fetch failed: %s: %s', url, e) - except URLError as e: - logger.exception('Fetch failed: %s: %s', url, e) - with self._lock: - self._bad_hosts.add(host) - except Exception as e: - logger.exception('Fetch failed: %s: %s', url, e) - finally: - self._page_cache[url] = result # even if None (failure) - return result - - _distname_re = re.compile(']*>([^<]+)<') - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - result = set() - page = self.get_page(self.base_url) - if not page: - raise DistlibException('Unable to get %s' % self.base_url) - for match in self._distname_re.finditer(page.data): - result.add(match.group(1)) - return result - -class DirectoryLocator(Locator): - """ - This class locates distributions in a directory tree. - """ - - def __init__(self, path, **kwargs): - """ - Initialise an instance. - :param path: The root of the directory tree to search. - :param kwargs: Passed to the superclass constructor, - except for: - * recursive - if True (the default), subdirectories are - recursed into. If False, only the top-level directory - is searched, - """ - self.recursive = kwargs.pop('recursive', True) - super(DirectoryLocator, self).__init__(**kwargs) - path = os.path.abspath(path) - if not os.path.isdir(path): - raise DistlibException('Not a directory: %r' % path) - self.base_dir = path - - def should_include(self, filename, parent): - """ - Should a filename be considered as a candidate for a distribution - archive? As well as the filename, the directory which contains it - is provided, though not used by the current implementation. - """ - return filename.endswith(self.downloadable_extensions) - - def _get_project(self, name): - result = {} - for root, dirs, files in os.walk(self.base_dir): - for fn in files: - if self.should_include(fn, root): - fn = os.path.join(root, fn) - url = urlunparse(('file', '', - pathname2url(os.path.abspath(fn)), - '', '', '')) - info = self.convert_url_to_download_info(url, name) - if info: - self._update_version_data(result, info) - if not self.recursive: - break - return result - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - result = set() - for root, dirs, files in os.walk(self.base_dir): - for fn in files: - if self.should_include(fn, root): - fn = os.path.join(root, fn) - url = urlunparse(('file', '', - pathname2url(os.path.abspath(fn)), - '', '', '')) - info = self.convert_url_to_download_info(url, None) - if info: - result.add(info['name']) - if not self.recursive: - break - return result - -class JSONLocator(Locator): - """ - This locator uses special extended metadata (not available on PyPI) and is - the basis of performant dependency resolution in distlib. Other locators - require archive downloads before dependencies can be determined! As you - might imagine, that can be slow. - """ - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - raise NotImplementedError('Not available from this locator') - - def _get_project(self, name): - result = {} - data = get_project_data(name) - if data: - for info in data.get('files', []): - if info['ptype'] != 'sdist' or info['pyversion'] != 'source': - continue - # We don't store summary in project metadata as it makes - # the data bigger for no benefit during dependency - # resolution - dist = make_dist(data['name'], info['version'], - summary=data.get('summary', - 'Placeholder for summary'), - scheme=self.scheme) - md = dist.metadata - md.source_url = info['url'] - # TODO SHA256 digest - if 'digest' in info and info['digest']: - dist.digest = ('md5', info['digest']) - md.dependencies = info.get('requirements', {}) - dist.exports = info.get('exports', {}) - result[dist.version] = dist - return result - -class DistPathLocator(Locator): - """ - This locator finds installed distributions in a path. It can be useful for - adding to an :class:`AggregatingLocator`. - """ - def __init__(self, distpath, **kwargs): - """ - Initialise an instance. - - :param distpath: A :class:`DistributionPath` instance to search. - """ - super(DistPathLocator, self).__init__(**kwargs) - assert isinstance(distpath, DistributionPath) - self.distpath = distpath - - def _get_project(self, name): - dist = self.distpath.get_distribution(name) - if dist is None: - result = {} - else: - result = { dist.version: dist } - return result - - -class AggregatingLocator(Locator): - """ - This class allows you to chain and/or merge a list of locators. - """ - def __init__(self, *locators, **kwargs): - """ - Initialise an instance. - - :param locators: The list of locators to search. - :param kwargs: Passed to the superclass constructor, - except for: - * merge - if False (the default), the first successful - search from any of the locators is returned. If True, - the results from all locators are merged (this can be - slow). - """ - self.merge = kwargs.pop('merge', False) - self.locators = locators - super(AggregatingLocator, self).__init__(**kwargs) - - def clear_cache(self): - super(AggregatingLocator, self).clear_cache() - for locator in self.locators: - locator.clear_cache() - - def _set_scheme(self, value): - self._scheme = value - for locator in self.locators: - locator.scheme = value - - scheme = property(Locator.scheme.fget, _set_scheme) - - def _get_project(self, name): - result = {} - for locator in self.locators: - d = locator.get_project(name) - if d: - if self.merge: - result.update(d) - else: - # See issue #18. If any dists are found and we're looking - # for specific constraints, we only return something if - # a match is found. For example, if a DirectoryLocator - # returns just foo (1.0) while we're looking for - # foo (>= 2.0), we'll pretend there was nothing there so - # that subsequent locators can be queried. Otherwise we - # would just return foo (1.0) which would then lead to a - # failure to find foo (>= 2.0), because other locators - # weren't searched. Note that this only matters when - # merge=False. - if self.matcher is None: - found = True - else: - found = False - for k in d: - if self.matcher.match(k): - found = True - break - if found: - result = d - break - return result - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - result = set() - for locator in self.locators: - try: - result |= locator.get_distribution_names() - except NotImplementedError: - pass - return result - - -# We use a legacy scheme simply because most of the dists on PyPI use legacy -# versions which don't conform to PEP 426 / PEP 440. -default_locator = AggregatingLocator( - JSONLocator(), - SimpleScrapingLocator('https://pypi.python.org/simple/', - timeout=3.0), - scheme='legacy') - -locate = default_locator.locate - -NAME_VERSION_RE = re.compile(r'(?P[\w-]+)\s*' - r'\(\s*(==\s*)?(?P[^)]+)\)$') - -class DependencyFinder(object): - """ - Locate dependencies for distributions. - """ - - def __init__(self, locator=None): - """ - Initialise an instance, using the specified locator - to locate distributions. - """ - self.locator = locator or default_locator - self.scheme = get_scheme(self.locator.scheme) - - def add_distribution(self, dist): - """ - Add a distribution to the finder. This will update internal information - about who provides what. - :param dist: The distribution to add. - """ - logger.debug('adding distribution %s', dist) - name = dist.key - self.dists_by_name[name] = dist - self.dists[(name, dist.version)] = dist - for p in dist.provides: - name, version = parse_name_and_version(p) - logger.debug('Add to provided: %s, %s, %s', name, version, dist) - self.provided.setdefault(name, set()).add((version, dist)) - - def remove_distribution(self, dist): - """ - Remove a distribution from the finder. This will update internal - information about who provides what. - :param dist: The distribution to remove. - """ - logger.debug('removing distribution %s', dist) - name = dist.key - del self.dists_by_name[name] - del self.dists[(name, dist.version)] - for p in dist.provides: - name, version = parse_name_and_version(p) - logger.debug('Remove from provided: %s, %s, %s', name, version, dist) - s = self.provided[name] - s.remove((version, dist)) - if not s: - del self.provided[name] - - def get_matcher(self, reqt): - """ - Get a version matcher for a requirement. - :param reqt: The requirement - :type reqt: str - :return: A version matcher (an instance of - :class:`distlib.version.Matcher`). - """ - try: - matcher = self.scheme.matcher(reqt) - except UnsupportedVersionError: - # XXX compat-mode if cannot read the version - name = reqt.split()[0] - matcher = self.scheme.matcher(name) - return matcher - - def find_providers(self, reqt): - """ - Find the distributions which can fulfill a requirement. - - :param reqt: The requirement. - :type reqt: str - :return: A set of distribution which can fulfill the requirement. - """ - matcher = self.get_matcher(reqt) - name = matcher.key # case-insensitive - result = set() - provided = self.provided - if name in provided: - for version, provider in provided[name]: - try: - match = matcher.match(version) - except UnsupportedVersionError: - match = False - - if match: - result.add(provider) - break - return result - - def try_to_replace(self, provider, other, problems): - """ - Attempt to replace one provider with another. This is typically used - when resolving dependencies from multiple sources, e.g. A requires - (B >= 1.0) while C requires (B >= 1.1). - - For successful replacement, ``provider`` must meet all the requirements - which ``other`` fulfills. - - :param provider: The provider we are trying to replace with. - :param other: The provider we're trying to replace. - :param problems: If False is returned, this will contain what - problems prevented replacement. This is currently - a tuple of the literal string 'cantreplace', - ``provider``, ``other`` and the set of requirements - that ``provider`` couldn't fulfill. - :return: True if we can replace ``other`` with ``provider``, else - False. - """ - rlist = self.reqts[other] - unmatched = set() - for s in rlist: - matcher = self.get_matcher(s) - if not matcher.match(provider.version): - unmatched.add(s) - if unmatched: - # can't replace other with provider - problems.add(('cantreplace', provider, other, - frozenset(unmatched))) - result = False - else: - # can replace other with provider - self.remove_distribution(other) - del self.reqts[other] - for s in rlist: - self.reqts.setdefault(provider, set()).add(s) - self.add_distribution(provider) - result = True - return result - - def find(self, requirement, meta_extras=None, prereleases=False): - """ - Find a distribution and all distributions it depends on. - - :param requirement: The requirement specifying the distribution to - find, or a Distribution instance. - :param meta_extras: A list of meta extras such as :test:, :build: and - so on. - :param prereleases: If ``True``, allow pre-release versions to be - returned - otherwise, don't return prereleases - unless they're all that's available. - - Return a set of :class:`Distribution` instances and a set of - problems. - - The distributions returned should be such that they have the - :attr:`required` attribute set to ``True`` if they were - from the ``requirement`` passed to ``find()``, and they have the - :attr:`build_time_dependency` attribute set to ``True`` unless they - are post-installation dependencies of the ``requirement``. - - The problems should be a tuple consisting of the string - ``'unsatisfied'`` and the requirement which couldn't be satisfied - by any distribution known to the locator. - """ - - self.provided = {} - self.dists = {} - self.dists_by_name = {} - self.reqts = {} - - meta_extras = set(meta_extras or []) - if ':*:' in meta_extras: - meta_extras.remove(':*:') - # :meta: and :run: are implicitly included - meta_extras |= set([':test:', ':build:', ':dev:']) - - if isinstance(requirement, Distribution): - dist = odist = requirement - logger.debug('passed %s as requirement', odist) - else: - dist = odist = self.locator.locate(requirement, - prereleases=prereleases) - if dist is None: - raise DistlibException('Unable to locate %r' % requirement) - logger.debug('located %s', odist) - dist.requested = True - problems = set() - todo = set([dist]) - install_dists = set([odist]) - while todo: - dist = todo.pop() - name = dist.key # case-insensitive - if name not in self.dists_by_name: - self.add_distribution(dist) - else: - #import pdb; pdb.set_trace() - other = self.dists_by_name[name] - if other != dist: - self.try_to_replace(dist, other, problems) - - ireqts = dist.run_requires | dist.meta_requires - sreqts = dist.build_requires - ereqts = set() - if dist in install_dists: - for key in ('test', 'build', 'dev'): - e = ':%s:' % key - if e in meta_extras: - ereqts |= getattr(dist, '%s_requires' % key) - all_reqts = ireqts | sreqts | ereqts - for r in all_reqts: - providers = self.find_providers(r) - if not providers: - logger.debug('No providers found for %r', r) - provider = self.locator.locate(r, prereleases=prereleases) - # If no provider is found and we didn't consider - # prereleases, consider them now. - if provider is None and not prereleases: - provider = self.locator.locate(r, prereleases=True) - if provider is None: - logger.debug('Cannot satisfy %r', r) - problems.add(('unsatisfied', r)) - else: - n, v = provider.key, provider.version - if (n, v) not in self.dists: - todo.add(provider) - providers.add(provider) - if r in ireqts and dist in install_dists: - install_dists.add(provider) - logger.debug('Adding %s to install_dists', - provider.name_and_version) - for p in providers: - name = p.key - if name not in self.dists_by_name: - self.reqts.setdefault(p, set()).add(r) - else: - other = self.dists_by_name[name] - if other != p: - # see if other can be replaced by p - self.try_to_replace(p, other, problems) - - dists = set(self.dists.values()) - for dist in dists: - dist.build_time_dependency = dist not in install_dists - if dist.build_time_dependency: - logger.debug('%s is a build-time dependency only.', - dist.name_and_version) - logger.debug('find done for %s', odist) - return dists, problems diff --git a/src/build_utils/distlib/manifest.py b/src/build_utils/distlib/manifest.py deleted file mode 100644 index c6b98c59a..000000000 --- a/src/build_utils/distlib/manifest.py +++ /dev/null @@ -1,364 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2013 Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -""" -Class representing the list of files in a distribution. - -Equivalent to distutils.filelist, but fixes some problems. -""" -import fnmatch -import logging -import os -import re - -from . import DistlibException -from .compat import fsdecode -from .util import convert_path - - -__all__ = ['Manifest'] - -logger = logging.getLogger(__name__) - -# a \ followed by some spaces + EOL -_COLLAPSE_PATTERN = re.compile('\\\w*\n', re.M) -_COMMENTED_LINE = re.compile('#.*?(?=\n)|\n(?=$)', re.M | re.S) - - -class Manifest(object): - """A list of files built by on exploring the filesystem and filtered by - applying various patterns to what we find there. - """ - - def __init__(self, base=None): - """ - Initialise an instance. - - :param base: The base directory to explore under. - """ - self.base = os.path.abspath(os.path.normpath(base or os.getcwd())) - self.prefix = self.base + os.sep - self.allfiles = None - self.files = set() - - # - # Public API - # - - def findall(self): - """Find all files under the base and set ``allfiles`` to the absolute - pathnames of files found. - """ - from stat import S_ISREG, S_ISDIR, S_ISLNK - - self.allfiles = allfiles = [] - root = self.base - stack = [root] - pop = stack.pop - push = stack.append - - while stack: - root = pop() - names = os.listdir(root) - - for name in names: - fullname = os.path.join(root, name) - - # Avoid excess stat calls -- just one will do, thank you! - stat = os.stat(fullname) - mode = stat.st_mode - if S_ISREG(mode): - allfiles.append(fsdecode(fullname)) - elif S_ISDIR(mode) and not S_ISLNK(mode): - push(fullname) - - def add(self, item): - """ - Add a file to the manifest. - - :param item: The pathname to add. This can be relative to the base. - """ - if not item.startswith(self.prefix): - item = os.path.join(self.base, item) - self.files.add(os.path.normpath(item)) - - def add_many(self, items): - """ - Add a list of files to the manifest. - - :param items: The pathnames to add. These can be relative to the base. - """ - for item in items: - self.add(item) - - def sorted(self, wantdirs=False): - """ - Return sorted files in directory order - """ - - def add_dir(dirs, d): - dirs.add(d) - logger.debug('add_dir added %s', d) - if d != self.base: - parent, _ = os.path.split(d) - assert parent not in ('', '/') - add_dir(dirs, parent) - - result = set(self.files) # make a copy! - if wantdirs: - dirs = set() - for f in result: - add_dir(dirs, os.path.dirname(f)) - result |= dirs - return [os.path.join(*path_tuple) for path_tuple in - sorted(os.path.split(path) for path in result)] - - def clear(self): - """Clear all collected files.""" - self.files = set() - self.allfiles = [] - - def process_directive(self, directive): - """ - Process a directive which either adds some files from ``allfiles`` to - ``files``, or removes some files from ``files``. - - :param directive: The directive to process. This should be in a format - compatible with distutils ``MANIFEST.in`` files: - - http://docs.python.org/distutils/sourcedist.html#commands - """ - # Parse the line: split it up, make sure the right number of words - # is there, and return the relevant words. 'action' is always - # defined: it's the first word of the line. Which of the other - # three are defined depends on the action; it'll be either - # patterns, (dir and patterns), or (dirpattern). - action, patterns, thedir, dirpattern = self._parse_directive(directive) - - # OK, now we know that the action is valid and we have the - # right number of words on the line for that action -- so we - # can proceed with minimal error-checking. - if action == 'include': - for pattern in patterns: - if not self._include_pattern(pattern, anchor=True): - logger.warning('no files found matching %r', pattern) - - elif action == 'exclude': - for pattern in patterns: - if not self._exclude_pattern(pattern, anchor=True): - logger.warning('no previously-included files ' - 'found matching %r', pattern) - - elif action == 'global-include': - for pattern in patterns: - if not self._include_pattern(pattern, anchor=False): - logger.warning('no files found matching %r ' - 'anywhere in distribution', pattern) - - elif action == 'global-exclude': - for pattern in patterns: - if not self._exclude_pattern(pattern, anchor=False): - logger.warning('no previously-included files ' - 'matching %r found anywhere in ' - 'distribution', pattern) - - elif action == 'recursive-include': - for pattern in patterns: - if not self._include_pattern(pattern, prefix=thedir): - logger.warning('no files found matching %r ' - 'under directory %r', pattern, thedir) - - elif action == 'recursive-exclude': - for pattern in patterns: - if not self._exclude_pattern(pattern, prefix=thedir): - logger.warning('no previously-included files ' - 'matching %r found under directory %r', - pattern, thedir) - - elif action == 'graft': - if not self._include_pattern(None, prefix=dirpattern): - logger.warning('no directories found matching %r', - dirpattern) - - elif action == 'prune': - if not self._exclude_pattern(None, prefix=dirpattern): - logger.warning('no previously-included directories found ' - 'matching %r', dirpattern) - else: # pragma: no cover - # This should never happen, as it should be caught in - # _parse_template_line - raise DistlibException( - 'invalid action %r' % action) - - # - # Private API - # - - def _parse_directive(self, directive): - """ - Validate a directive. - :param directive: The directive to validate. - :return: A tuple of action, patterns, thedir, dir_patterns - """ - words = directive.split() - if len(words) == 1 and words[0] not in ('include', 'exclude', - 'global-include', - 'global-exclude', - 'recursive-include', - 'recursive-exclude', - 'graft', 'prune'): - # no action given, let's use the default 'include' - words.insert(0, 'include') - - action = words[0] - patterns = thedir = dir_pattern = None - - if action in ('include', 'exclude', - 'global-include', 'global-exclude'): - if len(words) < 2: - raise DistlibException( - '%r expects ...' % action) - - patterns = [convert_path(word) for word in words[1:]] - - elif action in ('recursive-include', 'recursive-exclude'): - if len(words) < 3: - raise DistlibException( - '%r expects ...' % action) - - thedir = convert_path(words[1]) - patterns = [convert_path(word) for word in words[2:]] - - elif action in ('graft', 'prune'): - if len(words) != 2: - raise DistlibException( - '%r expects a single ' % action) - - dir_pattern = convert_path(words[1]) - - else: - raise DistlibException('unknown action %r' % action) - - return action, patterns, thedir, dir_pattern - - def _include_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): - """Select strings (presumably filenames) from 'self.files' that - match 'pattern', a Unix-style wildcard (glob) pattern. - - Patterns are not quite the same as implemented by the 'fnmatch' - module: '*' and '?' match non-special characters, where "special" - is platform-dependent: slash on Unix; colon, slash, and backslash on - DOS/Windows; and colon on Mac OS. - - If 'anchor' is true (the default), then the pattern match is more - stringent: "*.py" will match "foo.py" but not "foo/bar.py". If - 'anchor' is false, both of these will match. - - If 'prefix' is supplied, then only filenames starting with 'prefix' - (itself a pattern) and ending with 'pattern', with anything in between - them, will match. 'anchor' is ignored in this case. - - If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and - 'pattern' is assumed to be either a string containing a regex or a - regex object -- no translation is done, the regex is just compiled - and used as-is. - - Selected strings will be added to self.files. - - Return True if files are found. - """ - # XXX docstring lying about what the special chars are? - found = False - pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) - - # delayed loading of allfiles list - if self.allfiles is None: - self.findall() - - for name in self.allfiles: - if pattern_re.search(name): - self.files.add(name) - found = True - return found - - def _exclude_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): - """Remove strings (presumably filenames) from 'files' that match - 'pattern'. - - Other parameters are the same as for 'include_pattern()', above. - The list 'self.files' is modified in place. Return True if files are - found. - - This API is public to allow e.g. exclusion of SCM subdirs, e.g. when - packaging source distributions - """ - found = False - pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) - for f in list(self.files): - if pattern_re.search(f): - self.files.remove(f) - found = True - return found - - def _translate_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): - """Translate a shell-like wildcard pattern to a compiled regular - expression. - - Return the compiled regex. If 'is_regex' true, - then 'pattern' is directly compiled to a regex (if it's a string) - or just returned as-is (assumes it's a regex object). - """ - if is_regex: - if isinstance(pattern, str): - return re.compile(pattern) - else: - return pattern - - if pattern: - pattern_re = self._glob_to_re(pattern) - else: - pattern_re = '' - - base = re.escape(os.path.join(self.base, '')) - if prefix is not None: - # ditch end of pattern character - empty_pattern = self._glob_to_re('') - prefix_re = self._glob_to_re(prefix)[:-len(empty_pattern)] - sep = os.sep - if os.sep == '\\': - sep = r'\\' - pattern_re = '^' + base + sep.join((prefix_re, - '.*' + pattern_re)) - else: # no prefix -- respect anchor flag - if anchor: - pattern_re = '^' + base + pattern_re - - return re.compile(pattern_re) - - def _glob_to_re(self, pattern): - """Translate a shell-like glob pattern to a regular expression. - - Return a string containing the regex. Differs from - 'fnmatch.translate()' in that '*' does not match "special characters" - (which are platform-specific). - """ - pattern_re = fnmatch.translate(pattern) - - # '?' and '*' in the glob pattern become '.' and '.*' in the RE, which - # IMHO is wrong -- '?' and '*' aren't supposed to match slash in Unix, - # and by extension they shouldn't match such "special characters" under - # any OS. So change all non-escaped dots in the RE to match any - # character except the special characters (currently: just os.sep). - sep = os.sep - if os.sep == '\\': - # we're using a regex to manipulate a regex, so we need - # to escape the backslash twice - sep = r'\\\\' - escaped = r'\1[^%s]' % sep - pattern_re = re.sub(r'((? y, - 'gte': lambda x, y: x >= y, - 'in': lambda x, y: x in y, - 'lt': lambda x, y: x < y, - 'lte': lambda x, y: x <= y, - 'not': lambda x: not x, - 'noteq': lambda x, y: x != y, - 'notin': lambda x, y: x not in y, - } - - allowed_values = { - 'sys_platform': sys.platform, - 'python_version': '%s.%s' % sys.version_info[:2], - # parsing sys.platform is not reliable, but there is no other - # way to get e.g. 2.7.2+, and the PEP is defined with sys.version - 'python_full_version': sys.version.split(' ', 1)[0], - 'os_name': os.name, - 'platform_in_venv': str(in_venv()), - 'platform_release': platform.release(), - 'platform_version': platform.version(), - 'platform_machine': platform.machine(), - 'platform_python_implementation': python_implementation(), - } - - def __init__(self, context=None): - """ - Initialise an instance. - - :param context: If specified, names are looked up in this mapping. - """ - self.context = context or {} - self.source = None - - def get_fragment(self, offset): - """ - Get the part of the source which is causing a problem. - """ - fragment_len = 10 - s = '%r' % (self.source[offset:offset + fragment_len]) - if offset + fragment_len < len(self.source): - s += '...' - return s - - def get_handler(self, node_type): - """ - Get a handler for the specified AST node type. - """ - return getattr(self, 'do_%s' % node_type, None) - - def evaluate(self, node, filename=None): - """ - Evaluate a source string or node, using ``filename`` when - displaying errors. - """ - if isinstance(node, string_types): - self.source = node - kwargs = {'mode': 'eval'} - if filename: - kwargs['filename'] = filename - try: - node = ast.parse(node, **kwargs) - except SyntaxError as e: - s = self.get_fragment(e.offset) - raise SyntaxError('syntax error %s' % s) - node_type = node.__class__.__name__.lower() - handler = self.get_handler(node_type) - if handler is None: - if self.source is None: - s = '(source not available)' - else: - s = self.get_fragment(node.col_offset) - raise SyntaxError("don't know how to evaluate %r %s" % ( - node_type, s)) - return handler(node) - - def get_attr_key(self, node): - assert isinstance(node, ast.Attribute), 'attribute node expected' - return '%s.%s' % (node.value.id, node.attr) - - def do_attribute(self, node): - if not isinstance(node.value, ast.Name): - valid = False - else: - key = self.get_attr_key(node) - valid = key in self.context or key in self.allowed_values - if not valid: - raise SyntaxError('invalid expression: %s' % key) - if key in self.context: - result = self.context[key] - else: - result = self.allowed_values[key] - return result - - def do_boolop(self, node): - result = self.evaluate(node.values[0]) - is_or = node.op.__class__ is ast.Or - is_and = node.op.__class__ is ast.And - assert is_or or is_and - if (is_and and result) or (is_or and not result): - for n in node.values[1:]: - result = self.evaluate(n) - if (is_or and result) or (is_and and not result): - break - return result - - def do_compare(self, node): - def sanity_check(lhsnode, rhsnode): - valid = True - if isinstance(lhsnode, ast.Str) and isinstance(rhsnode, ast.Str): - valid = False - #elif (isinstance(lhsnode, ast.Attribute) - # and isinstance(rhsnode, ast.Attribute)): - # klhs = self.get_attr_key(lhsnode) - # krhs = self.get_attr_key(rhsnode) - # valid = klhs != krhs - if not valid: - s = self.get_fragment(node.col_offset) - raise SyntaxError('Invalid comparison: %s' % s) - - lhsnode = node.left - lhs = self.evaluate(lhsnode) - result = True - for op, rhsnode in zip(node.ops, node.comparators): - sanity_check(lhsnode, rhsnode) - op = op.__class__.__name__.lower() - if op not in self.operators: - raise SyntaxError('unsupported operation: %r' % op) - rhs = self.evaluate(rhsnode) - result = self.operators[op](lhs, rhs) - if not result: - break - lhs = rhs - lhsnode = rhsnode - return result - - def do_expression(self, node): - return self.evaluate(node.body) - - def do_name(self, node): - valid = False - if node.id in self.context: - valid = True - result = self.context[node.id] - elif node.id in self.allowed_values: - valid = True - result = self.allowed_values[node.id] - if not valid: - raise SyntaxError('invalid expression: %s' % node.id) - return result - - def do_str(self, node): - return node.s - - -def interpret(marker, execution_context=None): - """ - Interpret a marker and return a result depending on environment. - - :param marker: The marker to interpret. - :type marker: str - :param execution_context: The context used for name lookup. - :type execution_context: mapping - """ - return Evaluator(execution_context).evaluate(marker.strip()) diff --git a/src/build_utils/distlib/metadata.py b/src/build_utils/distlib/metadata.py deleted file mode 100644 index 6d987a232..000000000 --- a/src/build_utils/distlib/metadata.py +++ /dev/null @@ -1,1058 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Implementation of the Metadata for Python packages PEPs. - -Supports all metadata formats (1.0, 1.1, 1.2, and 2.0 experimental). -""" -from __future__ import unicode_literals - -import codecs -from email import message_from_file -import json -import logging -import re - - -from . import DistlibException, __version__ -from .compat import StringIO, string_types, text_type -from .markers import interpret -from .util import extract_by_key, get_extras -from .version import get_scheme, PEP426_VERSION_RE - -logger = logging.getLogger(__name__) - - -class MetadataMissingError(DistlibException): - """A required metadata is missing""" - - -class MetadataConflictError(DistlibException): - """Attempt to read or write metadata fields that are conflictual.""" - - -class MetadataUnrecognizedVersionError(DistlibException): - """Unknown metadata version number.""" - - -class MetadataInvalidError(DistlibException): - """A metadata value is invalid""" - -# public API of this module -__all__ = ['Metadata', 'PKG_INFO_ENCODING', 'PKG_INFO_PREFERRED_VERSION'] - -# Encoding used for the PKG-INFO files -PKG_INFO_ENCODING = 'utf-8' - -# preferred version. Hopefully will be changed -# to 1.2 once PEP 345 is supported everywhere -PKG_INFO_PREFERRED_VERSION = '1.1' - -_LINE_PREFIX = re.compile('\n \|') -_241_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'License') - -_314_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'License', 'Classifier', 'Download-URL', 'Obsoletes', - 'Provides', 'Requires') - -_314_MARKERS = ('Obsoletes', 'Provides', 'Requires', 'Classifier', - 'Download-URL') - -_345_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'Maintainer', 'Maintainer-email', 'License', - 'Classifier', 'Download-URL', 'Obsoletes-Dist', - 'Project-URL', 'Provides-Dist', 'Requires-Dist', - 'Requires-Python', 'Requires-External') - -_345_MARKERS = ('Provides-Dist', 'Requires-Dist', 'Requires-Python', - 'Obsoletes-Dist', 'Requires-External', 'Maintainer', - 'Maintainer-email', 'Project-URL') - -_426_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'Maintainer', 'Maintainer-email', 'License', - 'Classifier', 'Download-URL', 'Obsoletes-Dist', - 'Project-URL', 'Provides-Dist', 'Requires-Dist', - 'Requires-Python', 'Requires-External', 'Private-Version', - 'Obsoleted-By', 'Setup-Requires-Dist', 'Extension', - 'Provides-Extra') - -_426_MARKERS = ('Private-Version', 'Provides-Extra', 'Obsoleted-By', - 'Setup-Requires-Dist', 'Extension') - -_ALL_FIELDS = set() -_ALL_FIELDS.update(_241_FIELDS) -_ALL_FIELDS.update(_314_FIELDS) -_ALL_FIELDS.update(_345_FIELDS) -_ALL_FIELDS.update(_426_FIELDS) - -EXTRA_RE = re.compile(r'''extra\s*==\s*("([^"]+)"|'([^']+)')''') - - -def _version2fieldlist(version): - if version == '1.0': - return _241_FIELDS - elif version == '1.1': - return _314_FIELDS - elif version == '1.2': - return _345_FIELDS - elif version == '2.0': - return _426_FIELDS - raise MetadataUnrecognizedVersionError(version) - - -def _best_version(fields): - """Detect the best version depending on the fields used.""" - def _has_marker(keys, markers): - for marker in markers: - if marker in keys: - return True - return False - - keys = [] - for key, value in fields.items(): - if value in ([], 'UNKNOWN', None): - continue - keys.append(key) - - possible_versions = ['1.0', '1.1', '1.2', '2.0'] - - # first let's try to see if a field is not part of one of the version - for key in keys: - if key not in _241_FIELDS and '1.0' in possible_versions: - possible_versions.remove('1.0') - if key not in _314_FIELDS and '1.1' in possible_versions: - possible_versions.remove('1.1') - if key not in _345_FIELDS and '1.2' in possible_versions: - possible_versions.remove('1.2') - if key not in _426_FIELDS and '2.0' in possible_versions: - possible_versions.remove('2.0') - - # possible_version contains qualified versions - if len(possible_versions) == 1: - return possible_versions[0] # found ! - elif len(possible_versions) == 0: - raise MetadataConflictError('Unknown metadata set') - - # let's see if one unique marker is found - is_1_1 = '1.1' in possible_versions and _has_marker(keys, _314_MARKERS) - is_1_2 = '1.2' in possible_versions and _has_marker(keys, _345_MARKERS) - is_2_0 = '2.0' in possible_versions and _has_marker(keys, _426_MARKERS) - if int(is_1_1) + int(is_1_2) + int(is_2_0) > 1: - raise MetadataConflictError('You used incompatible 1.1/1.2/2.0 fields') - - # we have the choice, 1.0, or 1.2, or 2.0 - # - 1.0 has a broken Summary field but works with all tools - # - 1.1 is to avoid - # - 1.2 fixes Summary but has little adoption - # - 2.0 adds more features and is very new - if not is_1_1 and not is_1_2 and not is_2_0: - # we couldn't find any specific marker - if PKG_INFO_PREFERRED_VERSION in possible_versions: - return PKG_INFO_PREFERRED_VERSION - if is_1_1: - return '1.1' - if is_1_2: - return '1.2' - - return '2.0' - -_ATTR2FIELD = { - 'metadata_version': 'Metadata-Version', - 'name': 'Name', - 'version': 'Version', - 'platform': 'Platform', - 'supported_platform': 'Supported-Platform', - 'summary': 'Summary', - 'description': 'Description', - 'keywords': 'Keywords', - 'home_page': 'Home-page', - 'author': 'Author', - 'author_email': 'Author-email', - 'maintainer': 'Maintainer', - 'maintainer_email': 'Maintainer-email', - 'license': 'License', - 'classifier': 'Classifier', - 'download_url': 'Download-URL', - 'obsoletes_dist': 'Obsoletes-Dist', - 'provides_dist': 'Provides-Dist', - 'requires_dist': 'Requires-Dist', - 'setup_requires_dist': 'Setup-Requires-Dist', - 'requires_python': 'Requires-Python', - 'requires_external': 'Requires-External', - 'requires': 'Requires', - 'provides': 'Provides', - 'obsoletes': 'Obsoletes', - 'project_url': 'Project-URL', - 'private_version': 'Private-Version', - 'obsoleted_by': 'Obsoleted-By', - 'extension': 'Extension', - 'provides_extra': 'Provides-Extra', -} - -_PREDICATE_FIELDS = ('Requires-Dist', 'Obsoletes-Dist', 'Provides-Dist') -_VERSIONS_FIELDS = ('Requires-Python',) -_VERSION_FIELDS = ('Version',) -_LISTFIELDS = ('Platform', 'Classifier', 'Obsoletes', - 'Requires', 'Provides', 'Obsoletes-Dist', - 'Provides-Dist', 'Requires-Dist', 'Requires-External', - 'Project-URL', 'Supported-Platform', 'Setup-Requires-Dist', - 'Provides-Extra', 'Extension') -_LISTTUPLEFIELDS = ('Project-URL',) - -_ELEMENTSFIELD = ('Keywords',) - -_UNICODEFIELDS = ('Author', 'Maintainer', 'Summary', 'Description') - -_MISSING = object() - -_FILESAFE = re.compile('[^A-Za-z0-9.]+') - - -def _get_name_and_version(name, version, for_filename=False): - """Return the distribution name with version. - - If for_filename is true, return a filename-escaped form.""" - if for_filename: - # For both name and version any runs of non-alphanumeric or '.' - # characters are replaced with a single '-'. Additionally any - # spaces in the version string become '.' - name = _FILESAFE.sub('-', name) - version = _FILESAFE.sub('-', version.replace(' ', '.')) - return '%s-%s' % (name, version) - - -class LegacyMetadata(object): - """The legacy metadata of a release. - - Supports versions 1.0, 1.1 and 1.2 (auto-detected). You can - instantiate the class with one of these arguments (or none): - - *path*, the path to a metadata file - - *fileobj* give a file-like object with metadata as content - - *mapping* is a dict-like object - - *scheme* is a version scheme name - """ - # TODO document the mapping API and UNKNOWN default key - - def __init__(self, path=None, fileobj=None, mapping=None, - scheme='default'): - if [path, fileobj, mapping].count(None) < 2: - raise TypeError('path, fileobj and mapping are exclusive') - self._fields = {} - self.requires_files = [] - self._dependencies = None - self.scheme = scheme - if path is not None: - self.read(path) - elif fileobj is not None: - self.read_file(fileobj) - elif mapping is not None: - self.update(mapping) - self.set_metadata_version() - - def set_metadata_version(self): - self._fields['Metadata-Version'] = _best_version(self._fields) - - def _write_field(self, fileobj, name, value): - fileobj.write('%s: %s\n' % (name, value)) - - def __getitem__(self, name): - return self.get(name) - - def __setitem__(self, name, value): - return self.set(name, value) - - def __delitem__(self, name): - field_name = self._convert_name(name) - try: - del self._fields[field_name] - except KeyError: - raise KeyError(name) - - def __contains__(self, name): - return (name in self._fields or - self._convert_name(name) in self._fields) - - def _convert_name(self, name): - if name in _ALL_FIELDS: - return name - name = name.replace('-', '_').lower() - return _ATTR2FIELD.get(name, name) - - def _default_value(self, name): - if name in _LISTFIELDS or name in _ELEMENTSFIELD: - return [] - return 'UNKNOWN' - - def _remove_line_prefix(self, value): - return _LINE_PREFIX.sub('\n', value) - - def __getattr__(self, name): - if name in _ATTR2FIELD: - return self[name] - raise AttributeError(name) - - # - # Public API - # - -# dependencies = property(_get_dependencies, _set_dependencies) - - def get_fullname(self, filesafe=False): - """Return the distribution name with version. - - If filesafe is true, return a filename-escaped form.""" - return _get_name_and_version(self['Name'], self['Version'], filesafe) - - def is_field(self, name): - """return True if name is a valid metadata key""" - name = self._convert_name(name) - return name in _ALL_FIELDS - - def is_multi_field(self, name): - name = self._convert_name(name) - return name in _LISTFIELDS - - def read(self, filepath): - """Read the metadata values from a file path.""" - fp = codecs.open(filepath, 'r', encoding='utf-8') - try: - self.read_file(fp) - finally: - fp.close() - - def read_file(self, fileob): - """Read the metadata values from a file object.""" - msg = message_from_file(fileob) - self._fields['Metadata-Version'] = msg['metadata-version'] - - # When reading, get all the fields we can - for field in _ALL_FIELDS: - if field not in msg: - continue - if field in _LISTFIELDS: - # we can have multiple lines - values = msg.get_all(field) - if field in _LISTTUPLEFIELDS and values is not None: - values = [tuple(value.split(',')) for value in values] - self.set(field, values) - else: - # single line - value = msg[field] - if value is not None and value != 'UNKNOWN': - self.set(field, value) - self.set_metadata_version() - - def write(self, filepath, skip_unknown=False): - """Write the metadata fields to filepath.""" - fp = codecs.open(filepath, 'w', encoding='utf-8') - try: - self.write_file(fp, skip_unknown) - finally: - fp.close() - - def write_file(self, fileobject, skip_unknown=False): - """Write the PKG-INFO format data to a file object.""" - self.set_metadata_version() - - for field in _version2fieldlist(self['Metadata-Version']): - values = self.get(field) - if skip_unknown and values in ('UNKNOWN', [], ['UNKNOWN']): - continue - if field in _ELEMENTSFIELD: - self._write_field(fileobject, field, ','.join(values)) - continue - if field not in _LISTFIELDS: - if field == 'Description': - values = values.replace('\n', '\n |') - values = [values] - - if field in _LISTTUPLEFIELDS: - values = [','.join(value) for value in values] - - for value in values: - self._write_field(fileobject, field, value) - - def update(self, other=None, **kwargs): - """Set metadata values from the given iterable `other` and kwargs. - - Behavior is like `dict.update`: If `other` has a ``keys`` method, - they are looped over and ``self[key]`` is assigned ``other[key]``. - Else, ``other`` is an iterable of ``(key, value)`` iterables. - - Keys that don't match a metadata field or that have an empty value are - dropped. - """ - def _set(key, value): - if key in _ATTR2FIELD and value: - self.set(self._convert_name(key), value) - - if not other: - # other is None or empty container - pass - elif hasattr(other, 'keys'): - for k in other.keys(): - _set(k, other[k]) - else: - for k, v in other: - _set(k, v) - - if kwargs: - for k, v in kwargs.items(): - _set(k, v) - - def set(self, name, value): - """Control then set a metadata field.""" - name = self._convert_name(name) - - if ((name in _ELEMENTSFIELD or name == 'Platform') and - not isinstance(value, (list, tuple))): - if isinstance(value, string_types): - value = [v.strip() for v in value.split(',')] - else: - value = [] - elif (name in _LISTFIELDS and - not isinstance(value, (list, tuple))): - if isinstance(value, string_types): - value = [value] - else: - value = [] - - if logger.isEnabledFor(logging.WARNING): - project_name = self['Name'] - - scheme = get_scheme(self.scheme) - if name in _PREDICATE_FIELDS and value is not None: - for v in value: - # check that the values are valid - if not scheme.is_valid_matcher(v.split(';')[0]): - logger.warning( - '%r: %r is not valid (field %r)', - project_name, v, name) - # FIXME this rejects UNKNOWN, is that right? - elif name in _VERSIONS_FIELDS and value is not None: - if not scheme.is_valid_constraint_list(value): - logger.warning('%r: %r is not a valid version (field %r)', - project_name, value, name) - elif name in _VERSION_FIELDS and value is not None: - if not scheme.is_valid_version(value): - logger.warning('%r: %r is not a valid version (field %r)', - project_name, value, name) - - if name in _UNICODEFIELDS: - if name == 'Description': - value = self._remove_line_prefix(value) - - self._fields[name] = value - - def get(self, name, default=_MISSING): - """Get a metadata field.""" - name = self._convert_name(name) - if name not in self._fields: - if default is _MISSING: - default = self._default_value(name) - return default - if name in _UNICODEFIELDS: - value = self._fields[name] - return value - elif name in _LISTFIELDS: - value = self._fields[name] - if value is None: - return [] - res = [] - for val in value: - if name not in _LISTTUPLEFIELDS: - res.append(val) - else: - # That's for Project-URL - res.append((val[0], val[1])) - return res - - elif name in _ELEMENTSFIELD: - value = self._fields[name] - if isinstance(value, string_types): - return value.split(',') - return self._fields[name] - - def check(self, strict=False): - """Check if the metadata is compliant. If strict is True then raise if - no Name or Version are provided""" - self.set_metadata_version() - - # XXX should check the versions (if the file was loaded) - missing, warnings = [], [] - - for attr in ('Name', 'Version'): # required by PEP 345 - if attr not in self: - missing.append(attr) - - if strict and missing != []: - msg = 'missing required metadata: %s' % ', '.join(missing) - raise MetadataMissingError(msg) - - for attr in ('Home-page', 'Author'): - if attr not in self: - missing.append(attr) - - # checking metadata 1.2 (XXX needs to check 1.1, 1.0) - if self['Metadata-Version'] != '1.2': - return missing, warnings - - scheme = get_scheme(self.scheme) - - def are_valid_constraints(value): - for v in value: - if not scheme.is_valid_matcher(v.split(';')[0]): - return False - return True - - for fields, controller in ((_PREDICATE_FIELDS, are_valid_constraints), - (_VERSIONS_FIELDS, - scheme.is_valid_constraint_list), - (_VERSION_FIELDS, - scheme.is_valid_version)): - for field in fields: - value = self.get(field, None) - if value is not None and not controller(value): - warnings.append('Wrong value for %r: %s' % (field, value)) - - return missing, warnings - - def todict(self, skip_missing=False): - """Return fields as a dict. - - Field names will be converted to use the underscore-lowercase style - instead of hyphen-mixed case (i.e. home_page instead of Home-page). - """ - self.set_metadata_version() - - mapping_1_0 = ( - ('metadata_version', 'Metadata-Version'), - ('name', 'Name'), - ('version', 'Version'), - ('summary', 'Summary'), - ('home_page', 'Home-page'), - ('author', 'Author'), - ('author_email', 'Author-email'), - ('license', 'License'), - ('description', 'Description'), - ('keywords', 'Keywords'), - ('platform', 'Platform'), - ('classifier', 'Classifier'), - ('download_url', 'Download-URL'), - ) - - data = {} - for key, field_name in mapping_1_0: - if not skip_missing or field_name in self._fields: - data[key] = self[field_name] - - if self['Metadata-Version'] == '1.2': - mapping_1_2 = ( - ('requires_dist', 'Requires-Dist'), - ('requires_python', 'Requires-Python'), - ('requires_external', 'Requires-External'), - ('provides_dist', 'Provides-Dist'), - ('obsoletes_dist', 'Obsoletes-Dist'), - ('project_url', 'Project-URL'), - ('maintainer', 'Maintainer'), - ('maintainer_email', 'Maintainer-email'), - ) - for key, field_name in mapping_1_2: - if not skip_missing or field_name in self._fields: - if key != 'project_url': - data[key] = self[field_name] - else: - data[key] = [','.join(u) for u in self[field_name]] - - elif self['Metadata-Version'] == '1.1': - mapping_1_1 = ( - ('provides', 'Provides'), - ('requires', 'Requires'), - ('obsoletes', 'Obsoletes'), - ) - for key, field_name in mapping_1_1: - if not skip_missing or field_name in self._fields: - data[key] = self[field_name] - - return data - - def add_requirements(self, requirements): - if self['Metadata-Version'] == '1.1': - # we can't have 1.1 metadata *and* Setuptools requires - for field in ('Obsoletes', 'Requires', 'Provides'): - if field in self: - del self[field] - self['Requires-Dist'] += requirements - - # Mapping API - # TODO could add iter* variants - - def keys(self): - return list(_version2fieldlist(self['Metadata-Version'])) - - def __iter__(self): - for key in self.keys(): - yield key - - def values(self): - return [self[key] for key in self.keys()] - - def items(self): - return [(key, self[key]) for key in self.keys()] - - def __repr__(self): - return '<%s %s %s>' % (self.__class__.__name__, self.name, - self.version) - - -METADATA_FILENAME = 'pydist.json' - - -class Metadata(object): - """ - The metadata of a release. This implementation uses 2.0 (JSON) - metadata where possible. If not possible, it wraps a LegacyMetadata - instance which handles the key-value metadata format. - """ - - METADATA_VERSION_MATCHER = re.compile('^\d+(\.\d+)*$') - - NAME_MATCHER = re.compile('^[0-9A-Z]([0-9A-Z_.-]*[0-9A-Z])?$', re.I) - - VERSION_MATCHER = PEP426_VERSION_RE - - SUMMARY_MATCHER = re.compile('.{1,2047}') - - METADATA_VERSION = '2.0' - - GENERATOR = 'distlib (%s)' % __version__ - - MANDATORY_KEYS = { - 'name': (), - 'version': (), - 'summary': ('legacy',), - } - - INDEX_KEYS = ('name version license summary description author ' - 'author_email keywords platform home_page classifiers ' - 'download_url') - - DEPENDENCY_KEYS = ('extras run_requires test_requires build_requires ' - 'dev_requires provides meta_requires obsoleted_by ' - 'supports_environments') - - SYNTAX_VALIDATORS = { - 'metadata_version': (METADATA_VERSION_MATCHER, ()), - 'name': (NAME_MATCHER, ('legacy',)), - 'version': (VERSION_MATCHER, ('legacy',)), - 'summary': (SUMMARY_MATCHER, ('legacy',)), - } - - __slots__ = ('_legacy', '_data', 'scheme') - - def __init__(self, path=None, fileobj=None, mapping=None, - scheme='default'): - if [path, fileobj, mapping].count(None) < 2: - raise TypeError('path, fileobj and mapping are exclusive') - self._legacy = None - self._data = None - self.scheme = scheme - #import pdb; pdb.set_trace() - if mapping is not None: - try: - self._validate_mapping(mapping, scheme) - self._data = mapping - except MetadataUnrecognizedVersionError: - self._legacy = LegacyMetadata(mapping=mapping, scheme=scheme) - self.validate() - else: - data = None - if path: - with open(path, 'rb') as f: - data = f.read() - elif fileobj: - data = fileobj.read() - if data is None: - # Initialised with no args - to be added - self._data = { - 'metadata_version': self.METADATA_VERSION, - 'generator': self.GENERATOR, - } - else: - if not isinstance(data, text_type): - data = data.decode('utf-8') - try: - self._data = json.loads(data) - self._validate_mapping(self._data, scheme) - except ValueError: - # Note: MetadataUnrecognizedVersionError does not - # inherit from ValueError (it's a DistlibException, - # which should not inherit from ValueError). - # The ValueError comes from the json.load - if that - # succeeds and we get a validation error, we want - # that to propagate - self._legacy = LegacyMetadata(fileobj=StringIO(data), - scheme=scheme) - self.validate() - - common_keys = set(('name', 'version', 'license', 'keywords', 'summary')) - - none_list = (None, list) - none_dict = (None, dict) - - mapped_keys = { - 'run_requires': ('Requires-Dist', list), - 'build_requires': ('Setup-Requires-Dist', list), - 'dev_requires': none_list, - 'test_requires': none_list, - 'meta_requires': none_list, - 'extras': ('Provides-Extra', list), - 'modules': none_list, - 'namespaces': none_list, - 'exports': none_dict, - 'commands': none_dict, - 'classifiers': ('Classifier', list), - 'source_url': ('Download-URL', None), - 'metadata_version': ('Metadata-Version', None), - } - - del none_list, none_dict - - def __getattribute__(self, key): - common = object.__getattribute__(self, 'common_keys') - mapped = object.__getattribute__(self, 'mapped_keys') - if key in mapped: - lk, maker = mapped[key] - if self._legacy: - if lk is None: - result = None if maker is None else maker() - else: - result = self._legacy.get(lk) - else: - value = None if maker is None else maker() - if key not in ('commands', 'exports', 'modules', 'namespaces', - 'classifiers'): - result = self._data.get(key, value) - else: - # special cases for PEP 459 - sentinel = object() - result = sentinel - d = self._data.get('extensions') - if d: - if key == 'commands': - result = d.get('python.commands', value) - elif key == 'classifiers': - d = d.get('python.details') - if d: - result = d.get(key, value) - else: - d = d.get('python.exports') - if d: - result = d.get(key, value) - if result is sentinel: - result = value - elif key not in common: - result = object.__getattribute__(self, key) - elif self._legacy: - result = self._legacy.get(key) - else: - result = self._data.get(key) - return result - - def _validate_value(self, key, value, scheme=None): - if key in self.SYNTAX_VALIDATORS: - pattern, exclusions = self.SYNTAX_VALIDATORS[key] - if (scheme or self.scheme) not in exclusions: - m = pattern.match(value) - if not m: - raise MetadataInvalidError('%r is an invalid value for ' - 'the %r property' % (value, - key)) - - def __setattr__(self, key, value): - self._validate_value(key, value) - common = object.__getattribute__(self, 'common_keys') - mapped = object.__getattribute__(self, 'mapped_keys') - if key in mapped: - lk, _ = mapped[key] - if self._legacy: - if lk is None: - raise NotImplementedError - self._legacy[lk] = value - elif key not in ('commands', 'exports', 'modules', 'namespaces', - 'classifiers'): - self._data[key] = value - else: - # special cases for PEP 459 - d = self._data.setdefault('extensions', {}) - if key == 'commands': - d['python.commands'] = value - elif key == 'classifiers': - d = d.setdefault('python.details', {}) - d[key] = value - else: - d = d.setdefault('python.exports', {}) - d[key] = value - elif key not in common: - object.__setattr__(self, key, value) - else: - if key == 'keywords': - if isinstance(value, string_types): - value = value.strip() - if value: - value = value.split() - else: - value = [] - if self._legacy: - self._legacy[key] = value - else: - self._data[key] = value - - @property - def name_and_version(self): - return _get_name_and_version(self.name, self.version, True) - - @property - def provides(self): - if self._legacy: - result = self._legacy['Provides-Dist'] - else: - result = self._data.setdefault('provides', []) - s = '%s (%s)' % (self.name, self.version) - if s not in result: - result.append(s) - return result - - @provides.setter - def provides(self, value): - if self._legacy: - self._legacy['Provides-Dist'] = value - else: - self._data['provides'] = value - - def get_requirements(self, reqts, extras=None, env=None): - """ - Base method to get dependencies, given a set of extras - to satisfy and an optional environment context. - :param reqts: A list of sometimes-wanted dependencies, - perhaps dependent on extras and environment. - :param extras: A list of optional components being requested. - :param env: An optional environment for marker evaluation. - """ - if self._legacy: - result = reqts - else: - result = [] - extras = get_extras(extras or [], self.extras) - for d in reqts: - if 'extra' not in d and 'environment' not in d: - # unconditional - include = True - else: - if 'extra' not in d: - # Not extra-dependent - only environment-dependent - include = True - else: - include = d.get('extra') in extras - if include: - # Not excluded because of extras, check environment - marker = d.get('environment') - if marker: - include = interpret(marker, env) - if include: - result.extend(d['requires']) - for key in ('build', 'dev', 'test'): - e = ':%s:' % key - if e in extras: - extras.remove(e) - # A recursive call, but it should terminate since 'test' - # has been removed from the extras - reqts = self._data.get('%s_requires' % key, []) - result.extend(self.get_requirements(reqts, extras=extras, - env=env)) - return result - - @property - def dictionary(self): - if self._legacy: - return self._from_legacy() - return self._data - - @property - def dependencies(self): - if self._legacy: - raise NotImplementedError - else: - return extract_by_key(self._data, self.DEPENDENCY_KEYS) - - @dependencies.setter - def dependencies(self, value): - if self._legacy: - raise NotImplementedError - else: - self._data.update(value) - - def _validate_mapping(self, mapping, scheme): - if mapping.get('metadata_version') != self.METADATA_VERSION: - raise MetadataUnrecognizedVersionError() - missing = [] - for key, exclusions in self.MANDATORY_KEYS.items(): - if key not in mapping: - if scheme not in exclusions: - missing.append(key) - if missing: - msg = 'Missing metadata items: %s' % ', '.join(missing) - raise MetadataMissingError(msg) - for k, v in mapping.items(): - self._validate_value(k, v, scheme) - - def validate(self): - if self._legacy: - missing, warnings = self._legacy.check(True) - if missing or warnings: - logger.warning('Metadata: missing: %s, warnings: %s', - missing, warnings) - else: - self._validate_mapping(self._data, self.scheme) - - def todict(self): - if self._legacy: - return self._legacy.todict(True) - else: - result = extract_by_key(self._data, self.INDEX_KEYS) - return result - - def _from_legacy(self): - assert self._legacy and not self._data - result = { - 'metadata_version': self.METADATA_VERSION, - 'generator': self.GENERATOR, - } - lmd = self._legacy.todict(True) # skip missing ones - for k in ('name', 'version', 'license', 'summary', 'description', - 'classifier'): - if k in lmd: - if k == 'classifier': - nk = 'classifiers' - else: - nk = k - result[nk] = lmd[k] - kw = lmd.get('Keywords', []) - if kw == ['']: - kw = [] - result['keywords'] = kw - keys = (('requires_dist', 'run_requires'), - ('setup_requires_dist', 'build_requires')) - for ok, nk in keys: - if ok in lmd and lmd[ok]: - result[nk] = [{'requires': lmd[ok]}] - result['provides'] = self.provides - author = {} - maintainer = {} - return result - - LEGACY_MAPPING = { - 'name': 'Name', - 'version': 'Version', - 'license': 'License', - 'summary': 'Summary', - 'description': 'Description', - 'classifiers': 'Classifier', - } - - def _to_legacy(self): - def process_entries(entries): - reqts = set() - for e in entries: - extra = e.get('extra') - env = e.get('environment') - rlist = e['requires'] - for r in rlist: - if not env and not extra: - reqts.add(r) - else: - marker = '' - if extra: - marker = 'extra == "%s"' % extra - if env: - if marker: - marker = '(%s) and %s' % (env, marker) - else: - marker = env - reqts.add(';'.join((r, marker))) - return reqts - - assert self._data and not self._legacy - result = LegacyMetadata() - nmd = self._data - for nk, ok in self.LEGACY_MAPPING.items(): - if nk in nmd: - result[ok] = nmd[nk] - r1 = process_entries(self.run_requires + self.meta_requires) - r2 = process_entries(self.build_requires + self.dev_requires) - if self.extras: - result['Provides-Extra'] = sorted(self.extras) - result['Requires-Dist'] = sorted(r1) - result['Setup-Requires-Dist'] = sorted(r2) - # TODO: other fields such as contacts - return result - - def write(self, path=None, fileobj=None, legacy=False, skip_unknown=True): - if [path, fileobj].count(None) != 1: - raise ValueError('Exactly one of path and fileobj is needed') - self.validate() - if legacy: - if self._legacy: - legacy_md = self._legacy - else: - legacy_md = self._to_legacy() - if path: - legacy_md.write(path, skip_unknown=skip_unknown) - else: - legacy_md.write_file(fileobj, skip_unknown=skip_unknown) - else: - if self._legacy: - d = self._from_legacy() - else: - d = self._data - if fileobj: - json.dump(d, fileobj, ensure_ascii=True, indent=2, - sort_keys=True) - else: - with codecs.open(path, 'w', 'utf-8') as f: - json.dump(d, f, ensure_ascii=True, indent=2, - sort_keys=True) - - def add_requirements(self, requirements): - if self._legacy: - self._legacy.add_requirements(requirements) - else: - run_requires = self._data.setdefault('run_requires', []) - always = None - for entry in run_requires: - if 'environment' not in entry and 'extra' not in entry: - always = entry - break - if always is None: - always = { 'requires': requirements } - run_requires.insert(0, always) - else: - rset = set(always['requires']) | set(requirements) - always['requires'] = sorted(rset) - - def __repr__(self): - name = self.name or '(no name)' - version = self.version or 'no version' - return '<%s %s %s (%s)>' % (self.__class__.__name__, - self.metadata_version, name, version) diff --git a/src/build_utils/distlib/resources.py b/src/build_utils/distlib/resources.py deleted file mode 100644 index d24c0e937..000000000 --- a/src/build_utils/distlib/resources.py +++ /dev/null @@ -1,323 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -from __future__ import unicode_literals - -import bisect -import io -import logging -import os -import pkgutil -import shutil -import sys -import types -import zipimport - -from . import DistlibException -from .util import cached_property, get_cache_base, path_to_cache_dir, Cache - -logger = logging.getLogger(__name__) - - -cache = None # created when needed - - -class ResourceCache(Cache): - def __init__(self, base=None): - if base is None: - # Use native string to avoid issues on 2.x: see Python #20140. - base = os.path.join(get_cache_base(), str('resource-cache')) - super(ResourceCache, self).__init__(base) - - def is_stale(self, resource, path): - """ - Is the cache stale for the given resource? - - :param resource: The :class:`Resource` being cached. - :param path: The path of the resource in the cache. - :return: True if the cache is stale. - """ - # Cache invalidation is a hard problem :-) - return True - - def get(self, resource): - """ - Get a resource into the cache, - - :param resource: A :class:`Resource` instance. - :return: The pathname of the resource in the cache. - """ - prefix, path = resource.finder.get_cache_info(resource) - if prefix is None: - result = path - else: - result = os.path.join(self.base, self.prefix_to_dir(prefix), path) - dirname = os.path.dirname(result) - if not os.path.isdir(dirname): - os.makedirs(dirname) - if not os.path.exists(result): - stale = True - else: - stale = self.is_stale(resource, path) - if stale: - # write the bytes of the resource to the cache location - with open(result, 'wb') as f: - f.write(resource.bytes) - return result - - -class ResourceBase(object): - def __init__(self, finder, name): - self.finder = finder - self.name = name - - -class Resource(ResourceBase): - """ - A class representing an in-package resource, such as a data file. This is - not normally instantiated by user code, but rather by a - :class:`ResourceFinder` which manages the resource. - """ - is_container = False # Backwards compatibility - - def as_stream(self): - """ - Get the resource as a stream. - - This is not a property to make it obvious that it returns a new stream - each time. - """ - return self.finder.get_stream(self) - - @cached_property - def file_path(self): - global cache - if cache is None: - cache = ResourceCache() - return cache.get(self) - - @cached_property - def bytes(self): - return self.finder.get_bytes(self) - - @cached_property - def size(self): - return self.finder.get_size(self) - - -class ResourceContainer(ResourceBase): - is_container = True # Backwards compatibility - - @cached_property - def resources(self): - return self.finder.get_resources(self) - - -class ResourceFinder(object): - """ - Resource finder for file system resources. - """ - def __init__(self, module): - self.module = module - self.loader = getattr(module, '__loader__', None) - self.base = os.path.dirname(getattr(module, '__file__', '')) - - def _adjust_path(self, path): - return os.path.realpath(path) - - def _make_path(self, resource_name): - # Issue #50: need to preserve type of path on Python 2.x - # like os.path._get_sep - if isinstance(resource_name, bytes): # should only happen on 2.x - sep = b'/' - else: - sep = '/' - parts = resource_name.split(sep) - parts.insert(0, self.base) - result = os.path.join(*parts) - return self._adjust_path(result) - - def _find(self, path): - return os.path.exists(path) - - def get_cache_info(self, resource): - return None, resource.path - - def find(self, resource_name): - path = self._make_path(resource_name) - if not self._find(path): - result = None - else: - if self._is_directory(path): - result = ResourceContainer(self, resource_name) - else: - result = Resource(self, resource_name) - result.path = path - return result - - def get_stream(self, resource): - return open(resource.path, 'rb') - - def get_bytes(self, resource): - with open(resource.path, 'rb') as f: - return f.read() - - def get_size(self, resource): - return os.path.getsize(resource.path) - - def get_resources(self, resource): - def allowed(f): - return f != '__pycache__' and not f.endswith(('.pyc', '.pyo')) - return set([f for f in os.listdir(resource.path) if allowed(f)]) - - def is_container(self, resource): - return self._is_directory(resource.path) - - _is_directory = staticmethod(os.path.isdir) - - -class ZipResourceFinder(ResourceFinder): - """ - Resource finder for resources in .zip files. - """ - def __init__(self, module): - super(ZipResourceFinder, self).__init__(module) - archive = self.loader.archive - self.prefix_len = 1 + len(archive) - # PyPy doesn't have a _files attr on zipimporter, and you can't set one - if hasattr(self.loader, '_files'): - self._files = self.loader._files - else: - self._files = zipimport._zip_directory_cache[archive] - self.index = sorted(self._files) - - def _adjust_path(self, path): - return path - - def _find(self, path): - path = path[self.prefix_len:] - if path in self._files: - result = True - else: - if path and path[-1] != os.sep: - path = path + os.sep - i = bisect.bisect(self.index, path) - try: - result = self.index[i].startswith(path) - except IndexError: - result = False - if not result: - logger.debug('_find failed: %r %r', path, self.loader.prefix) - else: - logger.debug('_find worked: %r %r', path, self.loader.prefix) - return result - - def get_cache_info(self, resource): - prefix = self.loader.archive - path = resource.path[1 + len(prefix):] - return prefix, path - - def get_bytes(self, resource): - return self.loader.get_data(resource.path) - - def get_stream(self, resource): - return io.BytesIO(self.get_bytes(resource)) - - def get_size(self, resource): - path = resource.path[self.prefix_len:] - return self._files[path][3] - - def get_resources(self, resource): - path = resource.path[self.prefix_len:] - if path and path[-1] != os.sep: - path += os.sep - plen = len(path) - result = set() - i = bisect.bisect(self.index, path) - while i < len(self.index): - if not self.index[i].startswith(path): - break - s = self.index[i][plen:] - result.add(s.split(os.sep, 1)[0]) # only immediate children - i += 1 - return result - - def _is_directory(self, path): - path = path[self.prefix_len:] - if path and path[-1] != os.sep: - path += os.sep - i = bisect.bisect(self.index, path) - try: - result = self.index[i].startswith(path) - except IndexError: - result = False - return result - -_finder_registry = { - type(None): ResourceFinder, - zipimport.zipimporter: ZipResourceFinder -} - -try: - import _frozen_importlib - _finder_registry[_frozen_importlib.SourceFileLoader] = ResourceFinder - _finder_registry[_frozen_importlib.FileFinder] = ResourceFinder -except (ImportError, AttributeError): - pass - - -def register_finder(loader, finder_maker): - _finder_registry[type(loader)] = finder_maker - -_finder_cache = {} - - -def finder(package): - """ - Return a resource finder for a package. - :param package: The name of the package. - :return: A :class:`ResourceFinder` instance for the package. - """ - if package in _finder_cache: - result = _finder_cache[package] - else: - if package not in sys.modules: - __import__(package) - module = sys.modules[package] - path = getattr(module, '__path__', None) - if path is None: - raise DistlibException('You cannot get a finder for a module, ' - 'only for a package') - loader = getattr(module, '__loader__', None) - finder_maker = _finder_registry.get(type(loader)) - if finder_maker is None: - raise DistlibException('Unable to locate finder for %r' % package) - result = finder_maker(module) - _finder_cache[package] = result - return result - - -_dummy_module = types.ModuleType(str('__dummy__')) - - -def finder_for_path(path): - """ - Return a resource finder for a path, which should represent a container. - - :param path: The path. - :return: A :class:`ResourceFinder` instance for the path. - """ - result = None - # calls any path hooks, gets importer into cache - pkgutil.get_importer(path) - loader = sys.path_importer_cache.get(path) - finder = _finder_registry.get(type(loader)) - if finder: - module = _dummy_module - module.__file__ = os.path.join(path, '') - module.__loader__ = loader - result = finder(module) - return result diff --git a/src/build_utils/distlib/scripts.py b/src/build_utils/distlib/scripts.py deleted file mode 100644 index d212f047d..000000000 --- a/src/build_utils/distlib/scripts.py +++ /dev/null @@ -1,335 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -from io import BytesIO -import logging -import os -import re -import struct -import sys - -from .compat import sysconfig, detect_encoding, ZipFile -from .resources import finder -from .util import (FileOperator, get_export_entry, convert_path, - get_executable, in_venv) - -logger = logging.getLogger(__name__) - -_DEFAULT_MANIFEST = ''' - - - - - - - - - - - - -'''.strip() - -# check if Python is called on the first line with this expression -FIRST_LINE_RE = re.compile(b'^#!.*pythonw?[0-9.]*([ \t].*)?$') -SCRIPT_TEMPLATE = '''# -*- coding: utf-8 -*- -if __name__ == '__main__': - import sys, re - - def _resolve(module, func): - __import__(module) - mod = sys.modules[module] - parts = func.split('.') - result = getattr(mod, parts.pop(0)) - for p in parts: - result = getattr(result, p) - return result - - try: - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - - func = _resolve('%(module)s', '%(func)s') - rc = func() # None interpreted as 0 - except Exception as e: # only supporting Python >= 2.6 - sys.stderr.write('%%s\\n' %% e) - rc = 1 - sys.exit(rc) -''' - - -class ScriptMaker(object): - """ - A class to copy or create scripts from source scripts or callable - specifications. - """ - script_template = SCRIPT_TEMPLATE - - executable = None # for shebangs - - def __init__(self, source_dir, target_dir, add_launchers=True, - dry_run=False, fileop=None): - self.source_dir = source_dir - self.target_dir = target_dir - self.add_launchers = add_launchers - self.force = False - self.clobber = False - # It only makes sense to set mode bits on POSIX. - self.set_mode = (os.name == 'posix') - self.variants = set(('', 'X.Y')) - self._fileop = fileop or FileOperator(dry_run) - - def _get_alternate_executable(self, executable, options): - if options.get('gui', False) and os.name == 'nt': - dn, fn = os.path.split(executable) - fn = fn.replace('python', 'pythonw') - executable = os.path.join(dn, fn) - return executable - - def _get_shebang(self, encoding, post_interp=b'', options=None): - enquote = True - if self.executable: - executable = self.executable - enquote = False # assume this will be taken care of - elif not sysconfig.is_python_build(): - executable = get_executable() - elif in_venv(): - executable = os.path.join(sysconfig.get_path('scripts'), - 'python%s' % sysconfig.get_config_var('EXE')) - else: - executable = os.path.join( - sysconfig.get_config_var('BINDIR'), - 'python%s%s' % (sysconfig.get_config_var('VERSION'), - sysconfig.get_config_var('EXE'))) - if options: - executable = self._get_alternate_executable(executable, options) - - # If the user didn't specify an executable, it may be necessary to - # cater for executable paths with spaces (not uncommon on Windows) - if enquote and ' ' in executable: - executable = '"%s"' % executable - # Issue #51: don't use fsencode, since we later try to - # check that the shebang is decodable using utf-8. - executable = executable.encode('utf-8') - # in case of IronPython, play safe and enable frames support - if (sys.platform == 'cli' and '-X:Frames' not in post_interp - and '-X:FullFrames' not in post_interp): - post_interp += b' -X:Frames' - shebang = b'#!' + executable + post_interp + b'\n' - # Python parser starts to read a script using UTF-8 until - # it gets a #coding:xxx cookie. The shebang has to be the - # first line of a file, the #coding:xxx cookie cannot be - # written before. So the shebang has to be decodable from - # UTF-8. - try: - shebang.decode('utf-8') - except UnicodeDecodeError: - raise ValueError( - 'The shebang (%r) is not decodable from utf-8' % shebang) - # If the script is encoded to a custom encoding (use a - # #coding:xxx cookie), the shebang has to be decodable from - # the script encoding too. - if encoding != 'utf-8': - try: - shebang.decode(encoding) - except UnicodeDecodeError: - raise ValueError( - 'The shebang (%r) is not decodable ' - 'from the script encoding (%r)' % (shebang, encoding)) - return shebang - - def _get_script_text(self, entry): - return self.script_template % dict(module=entry.prefix, - func=entry.suffix) - - manifest = _DEFAULT_MANIFEST - - def get_manifest(self, exename): - base = os.path.basename(exename) - return self.manifest % base - - def _write_script(self, names, shebang, script_bytes, filenames, ext): - use_launcher = self.add_launchers and os.name == 'nt' - linesep = os.linesep.encode('utf-8') - if not use_launcher: - script_bytes = shebang + linesep + script_bytes - else: - if ext == 'py': - launcher = self._get_launcher('t') - else: - launcher = self._get_launcher('w') - stream = BytesIO() - with ZipFile(stream, 'w') as zf: - zf.writestr('__main__.py', script_bytes) - zip_data = stream.getvalue() - script_bytes = launcher + shebang + linesep + zip_data - for name in names: - outname = os.path.join(self.target_dir, name) - if use_launcher: - n, e = os.path.splitext(outname) - if e.startswith('.py'): - outname = n - outname = '%s.exe' % outname - try: - self._fileop.write_binary_file(outname, script_bytes) - except Exception: - # Failed writing an executable - it might be in use. - logger.warning('Failed to write executable - trying to ' - 'use .deleteme logic') - dfname = '%s.deleteme' % outname - if os.path.exists(dfname): - os.remove(dfname) # Not allowed to fail here - os.rename(outname, dfname) # nor here - self._fileop.write_binary_file(outname, script_bytes) - logger.debug('Able to replace executable using ' - '.deleteme logic') - try: - os.remove(dfname) - except Exception: - pass # still in use - ignore error - else: - if os.name == 'nt' and not outname.endswith('.' + ext): - outname = '%s.%s' % (outname, ext) - if os.path.exists(outname) and not self.clobber: - logger.warning('Skipping existing file %s', outname) - continue - self._fileop.write_binary_file(outname, script_bytes) - if self.set_mode: - self._fileop.set_executable_mode([outname]) - filenames.append(outname) - - def _make_script(self, entry, filenames, options=None): - post_interp = b'' - if options: - args = options.get('interpreter_args', []) - if args: - args = ' %s' % ' '.join(args) - post_interp = args.encode('utf-8') - shebang = self._get_shebang('utf-8', post_interp, options=options) - script = self._get_script_text(entry).encode('utf-8') - name = entry.name - scriptnames = set() - if '' in self.variants: - scriptnames.add(name) - if 'X' in self.variants: - scriptnames.add('%s%s' % (name, sys.version[0])) - if 'X.Y' in self.variants: - scriptnames.add('%s-%s' % (name, sys.version[:3])) - if options and options.get('gui', False): - ext = 'pyw' - else: - ext = 'py' - self._write_script(scriptnames, shebang, script, filenames, ext) - - def _copy_script(self, script, filenames): - adjust = False - script = os.path.join(self.source_dir, convert_path(script)) - outname = os.path.join(self.target_dir, os.path.basename(script)) - if not self.force and not self._fileop.newer(script, outname): - logger.debug('not copying %s (up-to-date)', script) - return - - # Always open the file, but ignore failures in dry-run mode -- - # that way, we'll get accurate feedback if we can read the - # script. - try: - f = open(script, 'rb') - except IOError: - if not self.dry_run: - raise - f = None - else: - encoding, lines = detect_encoding(f.readline) - f.seek(0) - first_line = f.readline() - if not first_line: - logger.warning('%s: %s is an empty file (skipping)', - self.get_command_name(), script) - return - - match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n')) - if match: - adjust = True - post_interp = match.group(1) or b'' - - if not adjust: - if f: - f.close() - self._fileop.copy_file(script, outname) - if self.set_mode: - self._fileop.set_executable_mode([outname]) - filenames.append(outname) - else: - logger.info('copying and adjusting %s -> %s', script, - self.target_dir) - if not self._fileop.dry_run: - shebang = self._get_shebang(encoding, post_interp) - if b'pythonw' in first_line: - ext = 'pyw' - else: - ext = 'py' - n = os.path.basename(outname) - self._write_script([n], shebang, f.read(), filenames, ext) - if f: - f.close() - - @property - def dry_run(self): - return self._fileop.dry_run - - @dry_run.setter - def dry_run(self, value): - self._fileop.dry_run = value - - if os.name == 'nt': - # Executable launcher support. - # Launchers are from https://bitbucket.org/vinay.sajip/simple_launcher/ - - def _get_launcher(self, kind): - if struct.calcsize('P') == 8: # 64-bit - bits = '64' - else: - bits = '32' - name = '%s%s.exe' % (kind, bits) - # Issue 31: don't hardcode an absolute package name, but - # determine it relative to the current package - distlib_package = __name__.rsplit('.', 1)[0] - result = finder(distlib_package).find(name).bytes - return result - - # Public API follows - - def make(self, specification, options=None): - """ - Make a script. - - :param specification: The specification, which is either a valid export - entry specification (to make a script from a - callable) or a filename (to make a script by - copying from a source location). - :param options: A dictionary of options controlling script generation. - :return: A list of all absolute pathnames written to. - """ - filenames = [] - entry = get_export_entry(specification) - if entry is None: - self._copy_script(specification, filenames) - else: - self._make_script(entry, filenames, options=options) - return filenames - - def make_multiple(self, specifications, options=None): - """ - Take a list of specifications and make scripts from them, - :param specifications: A list of specifications. - :return: A list of all absolute pathnames written to, - """ - filenames = [] - for specification in specifications: - filenames.extend(self.make(specification, options)) - return filenames diff --git a/src/build_utils/distlib/t32.exe b/src/build_utils/distlib/t32.exe deleted file mode 100644 index bdc9d1ec895b5e2e5bce66c7e9941ee9b7523edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91648 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 PLuc=&`yBZH;=q3a9Wlw0 diff --git a/src/build_utils/distlib/util.py b/src/build_utils/distlib/util.py deleted file mode 100644 index 425606e7c..000000000 --- a/src/build_utils/distlib/util.py +++ /dev/null @@ -1,1575 +0,0 @@ -# -# Copyright (C) 2012-2013 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -import codecs -from collections import deque -import contextlib -import csv -from glob import iglob as std_iglob -import io -import json -import logging -import os -import py_compile -import re -import shutil -import socket -import ssl -import subprocess -import sys -import tarfile -import tempfile -try: - import threading -except ImportError: - import dummy_threading as threading -import time - -from . import DistlibException -from .compat import (string_types, text_type, shutil, raw_input, StringIO, - cache_from_source, urlopen, httplib, xmlrpclib, splittype, - HTTPHandler, HTTPSHandler as BaseHTTPSHandler, - BaseConfigurator, valid_ident, Container, configparser, - URLError, match_hostname, CertificateError, ZipFile) - -logger = logging.getLogger(__name__) - -# -# Requirement parsing code for name + optional constraints + optional extras -# -# e.g. 'foo >= 1.2, < 2.0 [bar, baz]' -# -# The regex can seem a bit hairy, so we build it up out of smaller pieces -# which are manageable. -# - -COMMA = r'\s*,\s*' -COMMA_RE = re.compile(COMMA) - -IDENT = r'(\w|[.-])+' -EXTRA_IDENT = r'(\*|:(\*|\w+):|' + IDENT + ')' -VERSPEC = IDENT + r'\*?' - -RELOP = '([<>=!~]=)|[<>]' - -# -# The first relop is optional - if absent, will be taken as '~=' -# -BARE_CONSTRAINTS = ('(' + RELOP + r')?\s*(' + VERSPEC + ')(' + COMMA + '(' + - RELOP + r')\s*(' + VERSPEC + '))*') - -DIRECT_REF = '(from\s+(?P.*))' - -# -# Either the bare constraints or the bare constraints in parentheses -# -CONSTRAINTS = (r'\(\s*(?P' + BARE_CONSTRAINTS + '|' + DIRECT_REF + - r')\s*\)|(?P' + BARE_CONSTRAINTS + '\s*)') - -EXTRA_LIST = EXTRA_IDENT + '(' + COMMA + EXTRA_IDENT + ')*' -EXTRAS = r'\[\s*(?P' + EXTRA_LIST + r')?\s*\]' -REQUIREMENT = ('(?P' + IDENT + r')\s*(' + EXTRAS + r'\s*)?(\s*' + - CONSTRAINTS + ')?$') -REQUIREMENT_RE = re.compile(REQUIREMENT) - -# -# Used to scan through the constraints -# -RELOP_IDENT = '(?P' + RELOP + r')\s*(?P' + VERSPEC + ')' -RELOP_IDENT_RE = re.compile(RELOP_IDENT) - -def parse_requirement(s): - - def get_constraint(m): - d = m.groupdict() - return d['op'], d['vn'] - - result = None - m = REQUIREMENT_RE.match(s) - if m: - d = m.groupdict() - name = d['dn'] - cons = d['c1'] or d['c2'] - if not d['diref']: - url = None - else: - # direct reference - cons = None - url = d['diref'].strip() - if not cons: - cons = None - constr = '' - rs = d['dn'] - else: - if cons[0] not in '<>!=': - cons = '~=' + cons - iterator = RELOP_IDENT_RE.finditer(cons) - cons = [get_constraint(m) for m in iterator] - rs = '%s (%s)' % (name, ', '.join(['%s %s' % con for con in cons])) - if not d['ex']: - extras = None - else: - extras = COMMA_RE.split(d['ex']) - result = Container(name=name, constraints=cons, extras=extras, - requirement=rs, source=s, url=url) - return result - - -def get_resources_dests(resources_root, rules): - """Find destinations for resources files""" - - def get_rel_path(base, path): - # normalizes and returns a lstripped-/-separated path - base = base.replace(os.path.sep, '/') - path = path.replace(os.path.sep, '/') - assert path.startswith(base) - return path[len(base):].lstrip('/') - - - destinations = {} - for base, suffix, dest in rules: - prefix = os.path.join(resources_root, base) - for abs_base in iglob(prefix): - abs_glob = os.path.join(abs_base, suffix) - for abs_path in iglob(abs_glob): - resource_file = get_rel_path(resources_root, abs_path) - if dest is None: # remove the entry if it was here - destinations.pop(resource_file, None) - else: - rel_path = get_rel_path(abs_base, abs_path) - rel_dest = dest.replace(os.path.sep, '/').rstrip('/') - destinations[resource_file] = rel_dest + '/' + rel_path - return destinations - - -def in_venv(): - if hasattr(sys, 'real_prefix'): - # virtualenv venvs - result = True - else: - # PEP 405 venvs - result = sys.prefix != getattr(sys, 'base_prefix', sys.prefix) - return result - - -def get_executable(): - if sys.platform == 'darwin' and ('__PYVENV_LAUNCHER__' - in os.environ): - result = os.environ['__PYVENV_LAUNCHER__'] - else: - result = sys.executable - return result - - -def proceed(prompt, allowed_chars, error_prompt=None, default=None): - p = prompt - while True: - s = raw_input(p) - p = prompt - if not s and default: - s = default - if s: - c = s[0].lower() - if c in allowed_chars: - break - if error_prompt: - p = '%c: %s\n%s' % (c, error_prompt, prompt) - return c - - -def extract_by_key(d, keys): - if isinstance(keys, string_types): - keys = keys.split() - result = {} - for key in keys: - if key in d: - result[key] = d[key] - return result - -def read_exports(stream): - if sys.version_info[0] >= 3: - # needs to be a text stream - stream = codecs.getreader('utf-8')(stream) - # Try to load as JSON, falling back on legacy format - data = stream.read() - stream = StringIO(data) - try: - data = json.load(stream) - result = data['extensions']['python.exports']['exports'] - for group, entries in result.items(): - for k, v in entries.items(): - s = '%s = %s' % (k, v) - entry = get_export_entry(s) - assert entry is not None - entries[k] = entry - return result - except Exception: - stream.seek(0, 0) - cp = configparser.ConfigParser() - if hasattr(cp, 'read_file'): - cp.read_file(stream) - else: - cp.readfp(stream) - result = {} - for key in cp.sections(): - result[key] = entries = {} - for name, value in cp.items(key): - s = '%s = %s' % (name, value) - entry = get_export_entry(s) - assert entry is not None - #entry.dist = self - entries[name] = entry - return result - - -def write_exports(exports, stream): - if sys.version_info[0] >= 3: - # needs to be a text stream - stream = codecs.getwriter('utf-8')(stream) - cp = configparser.ConfigParser() - for k, v in exports.items(): - # TODO check k, v for valid values - cp.add_section(k) - for entry in v.values(): - if entry.suffix is None: - s = entry.prefix - else: - s = '%s:%s' % (entry.prefix, entry.suffix) - if entry.flags: - s = '%s [%s]' % (s, ', '.join(entry.flags)) - cp.set(k, entry.name, s) - cp.write(stream) - - -@contextlib.contextmanager -def tempdir(): - td = tempfile.mkdtemp() - try: - yield td - finally: - shutil.rmtree(td) - -@contextlib.contextmanager -def chdir(d): - cwd = os.getcwd() - try: - os.chdir(d) - yield - finally: - os.chdir(cwd) - - -@contextlib.contextmanager -def socket_timeout(seconds=15): - cto = socket.getdefaulttimeout() - try: - socket.setdefaulttimeout(seconds) - yield - finally: - socket.setdefaulttimeout(cto) - - -class cached_property(object): - def __init__(self, func): - self.func = func - #for attr in ('__name__', '__module__', '__doc__'): - # setattr(self, attr, getattr(func, attr, None)) - - def __get__(self, obj, cls=None): - if obj is None: - return self - value = self.func(obj) - object.__setattr__(obj, self.func.__name__, value) - #obj.__dict__[self.func.__name__] = value = self.func(obj) - return value - -def convert_path(pathname): - """Return 'pathname' as a name that will work on the native filesystem. - - The path is split on '/' and put back together again using the current - directory separator. Needed because filenames in the setup script are - always supplied in Unix style, and have to be converted to the local - convention before we can actually use them in the filesystem. Raises - ValueError on non-Unix-ish systems if 'pathname' either starts or - ends with a slash. - """ - if os.sep == '/': - return pathname - if not pathname: - return pathname - if pathname[0] == '/': - raise ValueError("path '%s' cannot be absolute" % pathname) - if pathname[-1] == '/': - raise ValueError("path '%s' cannot end with '/'" % pathname) - - paths = pathname.split('/') - while os.curdir in paths: - paths.remove(os.curdir) - if not paths: - return os.curdir - return os.path.join(*paths) - - -class FileOperator(object): - def __init__(self, dry_run=False): - self.dry_run = dry_run - self.ensured = set() - self._init_record() - - def _init_record(self): - self.record = False - self.files_written = set() - self.dirs_created = set() - - def record_as_written(self, path): - if self.record: - self.files_written.add(path) - - def newer(self, source, target): - """Tell if the target is newer than the source. - - Returns true if 'source' exists and is more recently modified than - 'target', or if 'source' exists and 'target' doesn't. - - Returns false if both exist and 'target' is the same age or younger - than 'source'. Raise PackagingFileError if 'source' does not exist. - - Note that this test is not very accurate: files created in the same - second will have the same "age". - """ - if not os.path.exists(source): - raise DistlibException("file '%r' does not exist" % - os.path.abspath(source)) - if not os.path.exists(target): - return True - - return os.stat(source).st_mtime > os.stat(target).st_mtime - - def copy_file(self, infile, outfile, check=True): - """Copy a file respecting dry-run and force flags. - """ - self.ensure_dir(os.path.dirname(outfile)) - logger.info('Copying %s to %s', infile, outfile) - if not self.dry_run: - msg = None - if check: - if os.path.islink(outfile): - msg = '%s is a symlink' % outfile - elif os.path.exists(outfile) and not os.path.isfile(outfile): - msg = '%s is a non-regular file' % outfile - if msg: - raise ValueError(msg + ' which would be overwritten') - shutil.copyfile(infile, outfile) - self.record_as_written(outfile) - - def copy_stream(self, instream, outfile, encoding=None): - assert not os.path.isdir(outfile) - self.ensure_dir(os.path.dirname(outfile)) - logger.info('Copying stream %s to %s', instream, outfile) - if not self.dry_run: - if encoding is None: - outstream = open(outfile, 'wb') - else: - outstream = codecs.open(outfile, 'w', encoding=encoding) - try: - shutil.copyfileobj(instream, outstream) - finally: - outstream.close() - self.record_as_written(outfile) - - def write_binary_file(self, path, data): - self.ensure_dir(os.path.dirname(path)) - if not self.dry_run: - with open(path, 'wb') as f: - f.write(data) - self.record_as_written(path) - - def write_text_file(self, path, data, encoding): - self.ensure_dir(os.path.dirname(path)) - if not self.dry_run: - with open(path, 'wb') as f: - f.write(data.encode(encoding)) - self.record_as_written(path) - - def set_mode(self, bits, mask, files): - if os.name == 'posix': - # Set the executable bits (owner, group, and world) on - # all the files specified. - for f in files: - if self.dry_run: - logger.info("changing mode of %s", f) - else: - mode = (os.stat(f).st_mode | bits) & mask - logger.info("changing mode of %s to %o", f, mode) - os.chmod(f, mode) - - set_executable_mode = lambda s, f: s.set_mode(0o555, 0o7777, f) - - def ensure_dir(self, path): - path = os.path.abspath(path) - if path not in self.ensured and not os.path.exists(path): - self.ensured.add(path) - d, f = os.path.split(path) - self.ensure_dir(d) - logger.info('Creating %s' % path) - if not self.dry_run: - os.mkdir(path) - if self.record: - self.dirs_created.add(path) - - def byte_compile(self, path, optimize=False, force=False, prefix=None): - dpath = cache_from_source(path, not optimize) - logger.info('Byte-compiling %s to %s', path, dpath) - if not self.dry_run: - if force or self.newer(path, dpath): - if not prefix: - diagpath = None - else: - assert path.startswith(prefix) - diagpath = path[len(prefix):] - py_compile.compile(path, dpath, diagpath, True) # raise error - self.record_as_written(dpath) - return dpath - - def ensure_removed(self, path): - if os.path.exists(path): - if os.path.isdir(path) and not os.path.islink(path): - logger.debug('Removing directory tree at %s', path) - if not self.dry_run: - shutil.rmtree(path) - if self.record: - if path in self.dirs_created: - self.dirs_created.remove(path) - else: - if os.path.islink(path): - s = 'link' - else: - s = 'file' - logger.debug('Removing %s %s', s, path) - if not self.dry_run: - os.remove(path) - if self.record: - if path in self.files_written: - self.files_written.remove(path) - - def is_writable(self, path): - result = False - while not result: - if os.path.exists(path): - result = os.access(path, os.W_OK) - break - parent = os.path.dirname(path) - if parent == path: - break - path = parent - return result - - def commit(self): - """ - Commit recorded changes, turn off recording, return - changes. - """ - assert self.record - result = self.files_written, self.dirs_created - self._init_record() - return result - - def rollback(self): - if not self.dry_run: - for f in list(self.files_written): - if os.path.exists(f): - os.remove(f) - # dirs should all be empty now, except perhaps for - # __pycache__ subdirs - # reverse so that subdirs appear before their parents - dirs = sorted(self.dirs_created, reverse=True) - for d in dirs: - flist = os.listdir(d) - if flist: - assert flist == ['__pycache__'] - sd = os.path.join(d, flist[0]) - os.rmdir(sd) - os.rmdir(d) # should fail if non-empty - self._init_record() - -def resolve(module_name, dotted_path): - if module_name in sys.modules: - mod = sys.modules[module_name] - else: - mod = __import__(module_name) - if dotted_path is None: - result = mod - else: - parts = dotted_path.split('.') - result = getattr(mod, parts.pop(0)) - for p in parts: - result = getattr(result, p) - return result - - -class ExportEntry(object): - def __init__(self, name, prefix, suffix, flags): - self.name = name - self.prefix = prefix - self.suffix = suffix - self.flags = flags - - @cached_property - def value(self): - return resolve(self.prefix, self.suffix) - - def __repr__(self): - return '' % (self.name, self.prefix, - self.suffix, self.flags) - - def __eq__(self, other): - if not isinstance(other, ExportEntry): - result = False - else: - result = (self.name == other.name and - self.prefix == other.prefix and - self.suffix == other.suffix and - self.flags == other.flags) - return result - - __hash__ = object.__hash__ - - -ENTRY_RE = re.compile(r'''(?P(\w|[-.])+) - \s*=\s*(?P(\w+)([:\.]\w+)*) - \s*(\[\s*(?P\w+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])? - ''', re.VERBOSE) - - -def get_export_entry(specification): - m = ENTRY_RE.search(specification) - if not m: - result = None - if '[' in specification or ']' in specification: - raise DistlibException('Invalid specification ' - '%r' % specification) - else: - d = m.groupdict() - name = d['name'] - path = d['callable'] - colons = path.count(':') - if colons == 0: - prefix, suffix = path, None - else: - if colons != 1: - raise DistlibException('Invalid specification ' - '%r' % specification) - prefix, suffix = path.split(':') - flags = d['flags'] - if flags is None: - if '[' in specification or ']' in specification: - raise DistlibException('Invalid specification ' - '%r' % specification) - flags = [] - else: - flags = [f.strip() for f in flags.split(',')] - result = ExportEntry(name, prefix, suffix, flags) - return result - - -def get_cache_base(suffix=None): - """ - Return the default base location for distlib caches. If the directory does - not exist, it is created. Use the suffix provided for the base directory, - and default to '.distlib' if it isn't provided. - - On Windows, if LOCALAPPDATA is defined in the environment, then it is - assumed to be a directory, and will be the parent directory of the result. - On POSIX, and on Windows if LOCALAPPDATA is not defined, the user's home - directory - using os.expanduser('~') - will be the parent directory of - the result. - - The result is just the directory '.distlib' in the parent directory as - determined above, or with the name specified with ``suffix``. - """ - if suffix is None: - suffix = '.distlib' - if os.name == 'nt' and 'LOCALAPPDATA' in os.environ: - result = os.path.expandvars('$localappdata') - else: - # Assume posix, or old Windows - result = os.path.expanduser('~') - # we use 'isdir' instead of 'exists', because we want to - # fail if there's a file with that name - if os.path.isdir(result): - usable = os.access(result, os.W_OK) - if not usable: - logger.warning('Directory exists but is not writable: %s', result) - else: - try: - os.makedirs(result) - usable = True - except OSError: - logger.warning('Unable to create %s', result, exc_info=True) - usable = False - if not usable: - result = tempfile.mkdtemp() - logger.warning('Default location unusable, using %s', result) - return os.path.join(result, suffix) - - -def path_to_cache_dir(path): - """ - Convert an absolute path to a directory name for use in a cache. - - The algorithm used is: - - #. On Windows, any ``':'`` in the drive is replaced with ``'---'``. - #. Any occurrence of ``os.sep`` is replaced with ``'--'``. - #. ``'.cache'`` is appended. - """ - d, p = os.path.splitdrive(os.path.abspath(path)) - if d: - d = d.replace(':', '---') - p = p.replace(os.sep, '--') - return d + p + '.cache' - - -def ensure_slash(s): - if not s.endswith('/'): - return s + '/' - return s - - -def parse_credentials(netloc): - username = password = None - if '@' in netloc: - prefix, netloc = netloc.split('@', 1) - if ':' not in prefix: - username = prefix - else: - username, password = prefix.split(':', 1) - return username, password, netloc - - -def get_process_umask(): - result = os.umask(0o22) - os.umask(result) - return result - -def is_string_sequence(seq): - result = True - i = None - for i, s in enumerate(seq): - if not isinstance(s, string_types): - result = False - break - assert i is not None - return result - -PROJECT_NAME_AND_VERSION = re.compile('([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-' - '([a-z0-9_.+-]+)', re.I) -PYTHON_VERSION = re.compile(r'-py(\d\.?\d?)') - - -def split_filename(filename, project_name=None): - """ - Extract name, version, python version from a filename (no extension) - - Return name, version, pyver or None - """ - result = None - pyver = None - m = PYTHON_VERSION.search(filename) - if m: - pyver = m.group(1) - filename = filename[:m.start()] - if project_name and len(filename) > len(project_name) + 1: - m = re.match(re.escape(project_name) + r'\b', filename) - if m: - n = m.end() - result = filename[:n], filename[n + 1:], pyver - if result is None: - m = PROJECT_NAME_AND_VERSION.match(filename) - if m: - result = m.group(1), m.group(3), pyver - return result - -# Allow spaces in name because of legacy dists like "Twisted Core" -NAME_VERSION_RE = re.compile(r'(?P[\w .-]+)\s*' - r'\(\s*(?P[^\s)]+)\)$') - -def parse_name_and_version(p): - """ - A utility method used to get name and version from a string. - - From e.g. a Provides-Dist value. - - :param p: A value in a form 'foo (1.0)' - :return: The name and version as a tuple. - """ - m = NAME_VERSION_RE.match(p) - if not m: - raise DistlibException('Ill-formed name/version string: \'%s\'' % p) - d = m.groupdict() - return d['name'].strip().lower(), d['ver'] - -def get_extras(requested, available): - result = set() - requested = set(requested or []) - available = set(available or []) - if '*' in requested: - requested.remove('*') - result |= available - for r in requested: - if r == '-': - result.add(r) - elif r.startswith('-'): - unwanted = r[1:] - if unwanted not in available: - logger.warning('undeclared extra: %s' % unwanted) - if unwanted in result: - result.remove(unwanted) - else: - if r not in available: - logger.warning('undeclared extra: %s' % r) - result.add(r) - return result -# -# Extended metadata functionality -# - -def _get_external_data(url): - result = {} - try: - # urlopen might fail if it runs into redirections, - # because of Python issue #13696. Fixed in locators - # using a custom redirect handler. - resp = urlopen(url) - headers = resp.info() - if headers.get('Content-Type') != 'application/json': - logger.debug('Unexpected response for JSON request') - else: - reader = codecs.getreader('utf-8')(resp) - #data = reader.read().decode('utf-8') - #result = json.loads(data) - result = json.load(reader) - except Exception as e: - logger.exception('Failed to get external data for %s: %s', url, e) - return result - - -def get_project_data(name): - url = ('https://www.red-dove.com/pypi/projects/' - '%s/%s/project.json' % (name[0].upper(), name)) - result = _get_external_data(url) - return result - -def get_package_data(name, version): - url = ('https://www.red-dove.com/pypi/projects/' - '%s/%s/package-%s.json' % (name[0].upper(), name, version)) - return _get_external_data(url) - - -class Cache(object): - """ - A class implementing a cache for resources that need to live in the file system - e.g. shared libraries. This class was moved from resources to here because it - could be used by other modules, e.g. the wheel module. - """ - - def __init__(self, base): - """ - Initialise an instance. - - :param base: The base directory where the cache should be located. - """ - # we use 'isdir' instead of 'exists', because we want to - # fail if there's a file with that name - if not os.path.isdir(base): - os.makedirs(base) - if (os.stat(base).st_mode & 0o77) != 0: - logger.warning('Directory \'%s\' is not private', base) - self.base = os.path.abspath(os.path.normpath(base)) - - def prefix_to_dir(self, prefix): - """ - Converts a resource prefix to a directory name in the cache. - """ - return path_to_cache_dir(prefix) - - def clear(self): - """ - Clear the cache. - """ - not_removed = [] - for fn in os.listdir(self.base): - fn = os.path.join(self.base, fn) - try: - if os.path.islink(fn) or os.path.isfile(fn): - os.remove(fn) - elif os.path.isdir(fn): - shutil.rmtree(fn) - except Exception: - not_removed.append(fn) - return not_removed - - -class EventMixin(object): - """ - A very simple publish/subscribe system. - """ - def __init__(self): - self._subscribers = {} - - def add(self, event, subscriber, append=True): - """ - Add a subscriber for an event. - - :param event: The name of an event. - :param subscriber: The subscriber to be added (and called when the - event is published). - :param append: Whether to append or prepend the subscriber to an - existing subscriber list for the event. - """ - subs = self._subscribers - if event not in subs: - subs[event] = deque([subscriber]) - else: - sq = subs[event] - if append: - sq.append(subscriber) - else: - sq.appendleft(subscriber) - - def remove(self, event, subscriber): - """ - Remove a subscriber for an event. - - :param event: The name of an event. - :param subscriber: The subscriber to be removed. - """ - subs = self._subscribers - if event not in subs: - raise ValueError('No subscribers: %r' % event) - subs[event].remove(subscriber) - - def get_subscribers(self, event): - """ - Return an iterator for the subscribers for an event. - :param event: The event to return subscribers for. - """ - return iter(self._subscribers.get(event, ())) - - def publish(self, event, *args, **kwargs): - """ - Publish a event and return a list of values returned by its - subscribers. - - :param event: The event to publish. - :param args: The positional arguments to pass to the event's - subscribers. - :param kwargs: The keyword arguments to pass to the event's - subscribers. - """ - result = [] - for subscriber in self.get_subscribers(event): - try: - value = subscriber(event, *args, **kwargs) - except Exception: - logger.exception('Exception during event publication') - value = None - result.append(value) - logger.debug('publish %s: args = %s, kwargs = %s, result = %s', - event, args, kwargs, result) - return result - -# -# Simple sequencing -# -class Sequencer(object): - def __init__(self): - self._preds = {} - self._succs = {} - self._nodes = set() # nodes with no preds/succs - - def add_node(self, node): - self._nodes.add(node) - - def remove_node(self, node, edges=False): - if node in self._nodes: - self._nodes.remove(node) - if edges: - for p in set(self._preds.get(node, ())): - self.remove(p, node) - for s in set(self._succs.get(node, ())): - self.remove(node, s) - # Remove empties - for k, v in list(self._preds.items()): - if not v: - del self._preds[k] - for k, v in list(self._succs.items()): - if not v: - del self._succs[k] - - def add(self, pred, succ): - assert pred != succ - self._preds.setdefault(succ, set()).add(pred) - self._succs.setdefault(pred, set()).add(succ) - - def remove(self, pred, succ): - assert pred != succ - try: - preds = self._preds[succ] - succs = self._succs[pred] - except KeyError: - raise ValueError('%r not a successor of anything' % succ) - try: - preds.remove(pred) - succs.remove(succ) - except KeyError: - raise ValueError('%r not a successor of %r' % (succ, pred)) - - def is_step(self, step): - return (step in self._preds or step in self._succs or - step in self._nodes) - - def get_steps(self, final): - if not self.is_step(final): - raise ValueError('Unknown: %r' % final) - result = [] - todo = [] - seen = set() - todo.append(final) - while todo: - step = todo.pop(0) - if step in seen: - # if a step was already seen, - # move it to the end (so it will appear earlier - # when reversed on return) ... but not for the - # final step, as that would be confusing for - # users - if step != final: - result.remove(step) - result.append(step) - else: - seen.add(step) - result.append(step) - preds = self._preds.get(step, ()) - todo.extend(preds) - return reversed(result) - - @property - def strong_connections(self): - #http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm - index_counter = [0] - stack = [] - lowlinks = {} - index = {} - result = [] - - graph = self._succs - - def strongconnect(node): - # set the depth index for this node to the smallest unused index - index[node] = index_counter[0] - lowlinks[node] = index_counter[0] - index_counter[0] += 1 - stack.append(node) - - # Consider successors - try: - successors = graph[node] - except Exception: - successors = [] - for successor in successors: - if successor not in lowlinks: - # Successor has not yet been visited - strongconnect(successor) - lowlinks[node] = min(lowlinks[node],lowlinks[successor]) - elif successor in stack: - # the successor is in the stack and hence in the current - # strongly connected component (SCC) - lowlinks[node] = min(lowlinks[node],index[successor]) - - # If `node` is a root node, pop the stack and generate an SCC - if lowlinks[node] == index[node]: - connected_component = [] - - while True: - successor = stack.pop() - connected_component.append(successor) - if successor == node: break - component = tuple(connected_component) - # storing the result - result.append(component) - - for node in graph: - if node not in lowlinks: - strongconnect(node) - - return result - - @property - def dot(self): - result = ['digraph G {'] - for succ in self._preds: - preds = self._preds[succ] - for pred in preds: - result.append(' %s -> %s;' % (pred, succ)) - for node in self._nodes: - result.append(' %s;' % node) - result.append('}') - return '\n'.join(result) - -# -# Unarchiving functionality for zip, tar, tgz, tbz, whl -# - -ARCHIVE_EXTENSIONS = ('.tar.gz', '.tar.bz2', '.tar', '.zip', - '.tgz', '.tbz', '.whl') - -def unarchive(archive_filename, dest_dir, format=None, check=True): - - def check_path(path): - if not isinstance(path, text_type): - path = path.decode('utf-8') - p = os.path.abspath(os.path.join(dest_dir, path)) - if not p.startswith(dest_dir) or p[plen] != os.sep: - raise ValueError('path outside destination: %r' % p) - - dest_dir = os.path.abspath(dest_dir) - plen = len(dest_dir) - archive = None - if format is None: - if archive_filename.endswith(('.zip', '.whl')): - format = 'zip' - elif archive_filename.endswith(('.tar.gz', '.tgz')): - format = 'tgz' - mode = 'r:gz' - elif archive_filename.endswith(('.tar.bz2', '.tbz')): - format = 'tbz' - mode = 'r:bz2' - elif archive_filename.endswith('.tar'): - format = 'tar' - mode = 'r' - else: - raise ValueError('Unknown format for %r' % archive_filename) - try: - if format == 'zip': - archive = ZipFile(archive_filename, 'r') - if check: - names = archive.namelist() - for name in names: - check_path(name) - else: - archive = tarfile.open(archive_filename, mode) - if check: - names = archive.getnames() - for name in names: - check_path(name) - if format != 'zip' and sys.version_info[0] < 3: - # See Python issue 17153. If the dest path contains Unicode, - # tarfile extraction fails on Python 2.x if a member path name - # contains non-ASCII characters - it leads to an implicit - # bytes -> unicode conversion using ASCII to decode. - for tarinfo in archive.getmembers(): - if not isinstance(tarinfo.name, text_type): - tarinfo.name = tarinfo.name.decode('utf-8') - archive.extractall(dest_dir) - - finally: - if archive: - archive.close() - - -def zip_dir(directory): - """zip a directory tree into a BytesIO object""" - result = io.BytesIO() - dlen = len(directory) - with ZipFile(result, "w") as zf: - for root, dirs, files in os.walk(directory): - for name in files: - full = os.path.join(root, name) - rel = root[dlen:] - dest = os.path.join(rel, name) - zf.write(full, dest) - return result - -# -# Simple progress bar -# - -UNITS = ('', 'K', 'M', 'G','T','P') - - -class Progress(object): - unknown = 'UNKNOWN' - - def __init__(self, minval=0, maxval=100): - assert maxval is None or maxval >= minval - self.min = self.cur = minval - self.max = maxval - self.started = None - self.elapsed = 0 - self.done = False - - def update(self, curval): - assert self.min <= curval - assert self.max is None or curval <= self.max - self.cur = curval - now = time.time() - if self.started is None: - self.started = now - else: - self.elapsed = now - self.started - - def increment(self, incr): - assert incr >= 0 - self.update(self.cur + incr) - - def start(self): - self.update(self.min) - return self - - def stop(self): - if self.max is not None: - self.update(self.max) - self.done = True - - @property - def maximum(self): - return self.unknown if self.max is None else self.max - - @property - def percentage(self): - if self.done: - result = '100 %' - elif self.max is None: - result = ' ?? %' - else: - v = 100.0 * (self.cur - self.min) / (self.max - self.min) - result = '%3d %%' % v - return result - - def format_duration(self, duration): - if (duration <= 0) and self.max is None or self.cur == self.min: - result = '??:??:??' - #elif duration < 1: - # result = '--:--:--' - else: - result = time.strftime('%H:%M:%S', time.gmtime(duration)) - return result - - @property - def ETA(self): - if self.done: - prefix = 'Done' - t = self.elapsed - #import pdb; pdb.set_trace() - else: - prefix = 'ETA ' - if self.max is None: - t = -1 - elif self.elapsed == 0 or (self.cur == self.min): - t = 0 - else: - #import pdb; pdb.set_trace() - t = float(self.max - self.min) - t /= self.cur - self.min - t = (t - 1) * self.elapsed - return '%s: %s' % (prefix, self.format_duration(t)) - - @property - def speed(self): - if self.elapsed == 0: - result = 0.0 - else: - result = (self.cur - self.min) / self.elapsed - for unit in UNITS: - if result < 1000: - break - result /= 1000.0 - return '%d %sB/s' % (result, unit) - -# -# Glob functionality -# - -RICH_GLOB = re.compile(r'\{([^}]*)\}') -_CHECK_RECURSIVE_GLOB = re.compile(r'[^/\\,{]\*\*|\*\*[^/\\,}]') -_CHECK_MISMATCH_SET = re.compile(r'^[^{]*\}|\{[^}]*$') - - -def iglob(path_glob): - """Extended globbing function that supports ** and {opt1,opt2,opt3}.""" - if _CHECK_RECURSIVE_GLOB.search(path_glob): - msg = """invalid glob %r: recursive glob "**" must be used alone""" - raise ValueError(msg % path_glob) - if _CHECK_MISMATCH_SET.search(path_glob): - msg = """invalid glob %r: mismatching set marker '{' or '}'""" - raise ValueError(msg % path_glob) - return _iglob(path_glob) - - -def _iglob(path_glob): - rich_path_glob = RICH_GLOB.split(path_glob, 1) - if len(rich_path_glob) > 1: - assert len(rich_path_glob) == 3, rich_path_glob - prefix, set, suffix = rich_path_glob - for item in set.split(','): - for path in _iglob(''.join((prefix, item, suffix))): - yield path - else: - if '**' not in path_glob: - for item in std_iglob(path_glob): - yield item - else: - prefix, radical = path_glob.split('**', 1) - if prefix == '': - prefix = '.' - if radical == '': - radical = '*' - else: - # we support both - radical = radical.lstrip('/') - radical = radical.lstrip('\\') - for path, dir, files in os.walk(prefix): - path = os.path.normpath(path) - for fn in _iglob(os.path.join(path, radical)): - yield fn - - - -# -# HTTPSConnection which verifies certificates/matches domains -# - -class HTTPSConnection(httplib.HTTPSConnection): - ca_certs = None # set this to the path to the certs file (.pem) - check_domain = True # only used if ca_certs is not None - - # noinspection PyPropertyAccess - def connect(self): - sock = socket.create_connection((self.host, self.port), self.timeout) - if getattr(self, '_tunnel_host', False): - self.sock = sock - self._tunnel() - - if not hasattr(ssl, 'SSLContext'): - # For 2.x - if self.ca_certs: - cert_reqs = ssl.CERT_REQUIRED - else: - cert_reqs = ssl.CERT_NONE - self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, - cert_reqs=cert_reqs, - ssl_version=ssl.PROTOCOL_SSLv23, - ca_certs=self.ca_certs) - else: - context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) - context.options |= ssl.OP_NO_SSLv2 - if self.cert_file: - context.load_cert_chain(self.cert_file, self.key_file) - kwargs = {} - if self.ca_certs: - context.verify_mode = ssl.CERT_REQUIRED - context.load_verify_locations(cafile=self.ca_certs) - if getattr(ssl, 'HAS_SNI', False): - kwargs['server_hostname'] = self.host - self.sock = context.wrap_socket(sock, **kwargs) - if self.ca_certs and self.check_domain: - try: - match_hostname(self.sock.getpeercert(), self.host) - logger.debug('Host verified: %s', self.host) - except CertificateError: - self.sock.shutdown(socket.SHUT_RDWR) - self.sock.close() - raise - -class HTTPSHandler(BaseHTTPSHandler): - def __init__(self, ca_certs, check_domain=True): - BaseHTTPSHandler.__init__(self) - self.ca_certs = ca_certs - self.check_domain = check_domain - - def _conn_maker(self, *args, **kwargs): - """ - This is called to create a connection instance. Normally you'd - pass a connection class to do_open, but it doesn't actually check for - a class, and just expects a callable. As long as we behave just as a - constructor would have, we should be OK. If it ever changes so that - we *must* pass a class, we'll create an UnsafeHTTPSConnection class - which just sets check_domain to False in the class definition, and - choose which one to pass to do_open. - """ - result = HTTPSConnection(*args, **kwargs) - if self.ca_certs: - result.ca_certs = self.ca_certs - result.check_domain = self.check_domain - return result - - def https_open(self, req): - try: - return self.do_open(self._conn_maker, req) - except URLError as e: - if 'certificate verify failed' in str(e.reason): - raise CertificateError('Unable to verify server certificate ' - 'for %s' % req.host) - else: - raise - -# -# To prevent against mixing HTTP traffic with HTTPS (examples: A Man-In-The- -# Middle proxy using HTTP listens on port 443, or an index mistakenly serves -# HTML containing a http://xyz link when it should be https://xyz), -# you can use the following handler class, which does not allow HTTP traffic. -# -# It works by inheriting from HTTPHandler - so build_opener won't add a -# handler for HTTP itself. -# -class HTTPSOnlyHandler(HTTPSHandler, HTTPHandler): - def http_open(self, req): - raise URLError('Unexpected HTTP request on what should be a secure ' - 'connection: %s' % req) - -# -# XML-RPC with timeouts -# - -_ver_info = sys.version_info[:2] - -if _ver_info == (2, 6): - class HTTP(httplib.HTTP): - def __init__(self, host='', port=None, **kwargs): - if port == 0: # 0 means use port 0, not the default port - port = None - self._setup(self._connection_class(host, port, **kwargs)) - - - class HTTPS(httplib.HTTPS): - def __init__(self, host='', port=None, **kwargs): - if port == 0: # 0 means use port 0, not the default port - port = None - self._setup(self._connection_class(host, port, **kwargs)) - - -class Transport(xmlrpclib.Transport): - def __init__(self, timeout, use_datetime=0): - self.timeout = timeout - xmlrpclib.Transport.__init__(self, use_datetime) - - def make_connection(self, host): - h, eh, x509 = self.get_host_info(host) - if _ver_info == (2, 6): - result = HTTP(h, timeout=self.timeout) - else: - if not self._connection or host != self._connection[0]: - self._extra_headers = eh - self._connection = host, httplib.HTTPConnection(h) - result = self._connection[1] - return result - -class SafeTransport(xmlrpclib.SafeTransport): - def __init__(self, timeout, use_datetime=0): - self.timeout = timeout - xmlrpclib.SafeTransport.__init__(self, use_datetime) - - def make_connection(self, host): - h, eh, kwargs = self.get_host_info(host) - if not kwargs: - kwargs = {} - kwargs['timeout'] = self.timeout - if _ver_info == (2, 6): - result = HTTPS(host, None, **kwargs) - else: - if not self._connection or host != self._connection[0]: - self._extra_headers = eh - self._connection = host, httplib.HTTPSConnection(h, None, - **kwargs) - result = self._connection[1] - return result - - -class ServerProxy(xmlrpclib.ServerProxy): - def __init__(self, uri, **kwargs): - self.timeout = timeout = kwargs.pop('timeout', None) - # The above classes only come into play if a timeout - # is specified - if timeout is not None: - scheme, _ = splittype(uri) - use_datetime = kwargs.get('use_datetime', 0) - if scheme == 'https': - tcls = SafeTransport - else: - tcls = Transport - kwargs['transport'] = t = tcls(timeout, use_datetime=use_datetime) - self.transport = t - xmlrpclib.ServerProxy.__init__(self, uri, **kwargs) - -# -# CSV functionality. This is provided because on 2.x, the csv module can't -# handle Unicode. However, we need to deal with Unicode in e.g. RECORD files. -# - -def _csv_open(fn, mode, **kwargs): - if sys.version_info[0] < 3: - mode += 'b' - else: - kwargs['newline'] = '' - return open(fn, mode, **kwargs) - - -class CSVBase(object): - defaults = { - 'delimiter': str(','), # The strs are used because we need native - 'quotechar': str('"'), # str in the csv API (2.x won't take - 'lineterminator': str('\n') # Unicode) - } - - def __enter__(self): - return self - - def __exit__(self, *exc_info): - self.stream.close() - - -class CSVReader(CSVBase): - def __init__(self, **kwargs): - if 'stream' in kwargs: - stream = kwargs['stream'] - if sys.version_info[0] >= 3: - # needs to be a text stream - stream = codecs.getreader('utf-8')(stream) - self.stream = stream - else: - self.stream = _csv_open(kwargs['path'], 'r') - self.reader = csv.reader(self.stream, **self.defaults) - - def __iter__(self): - return self - - def next(self): - result = next(self.reader) - if sys.version_info[0] < 3: - for i, item in enumerate(result): - if not isinstance(item, text_type): - result[i] = item.decode('utf-8') - return result - - __next__ = next - -class CSVWriter(CSVBase): - def __init__(self, fn, **kwargs): - self.stream = _csv_open(fn, 'w') - self.writer = csv.writer(self.stream, **self.defaults) - - def writerow(self, row): - if sys.version_info[0] < 3: - r = [] - for item in row: - if isinstance(item, text_type): - item = item.encode('utf-8') - r.append(item) - row = r - self.writer.writerow(row) - -# -# Configurator functionality -# - -class Configurator(BaseConfigurator): - - value_converters = dict(BaseConfigurator.value_converters) - value_converters['inc'] = 'inc_convert' - - def __init__(self, config, base=None): - super(Configurator, self).__init__(config) - self.base = base or os.getcwd() - - def configure_custom(self, config): - def convert(o): - if isinstance(o, (list, tuple)): - result = type(o)([convert(i) for i in o]) - elif isinstance(o, dict): - if '()' in o: - result = self.configure_custom(o) - else: - result = {} - for k in o: - result[k] = convert(o[k]) - else: - result = self.convert(o) - return result - - c = config.pop('()') - if not callable(c): - c = self.resolve(c) - props = config.pop('.', None) - # Check for valid identifiers - args = config.pop('[]', ()) - if args: - args = tuple([convert(o) for o in args]) - items = [(k, convert(config[k])) for k in config if valid_ident(k)] - kwargs = dict(items) - result = c(*args, **kwargs) - if props: - for n, v in props.items(): - setattr(result, n, convert(v)) - return result - - def __getitem__(self, key): - result = self.config[key] - if isinstance(result, dict) and '()' in result: - self.config[key] = result = self.configure_custom(result) - return result - - def inc_convert(self, value): - """Default converter for the inc:// protocol.""" - if not os.path.isabs(value): - value = os.path.join(self.base, value) - with codecs.open(value, 'r', encoding='utf-8') as f: - result = json.load(f) - return result - -# -# Mixin for running subprocesses and capturing their output -# - -class SubprocessMixin(object): - def __init__(self, verbose=False, progress=None): - self.verbose = verbose - self.progress = progress - - def reader(self, stream, context): - """ - Read lines from a subprocess' output stream and either pass to a progress - callable (if specified) or write progress information to sys.stderr. - """ - progress = self.progress - verbose = self.verbose - while True: - s = stream.readline() - if not s: - break - if progress is not None: - progress(s, context) - else: - if not verbose: - sys.stderr.write('.') - else: - sys.stderr.write(s.decode('utf-8')) - sys.stderr.flush() - stream.close() - - def run_command(self, cmd, **kwargs): - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, - stderr=subprocess.PIPE, **kwargs) - t1 = threading.Thread(target=self.reader, args=(p.stdout, 'stdout')) - t1.start() - t2 = threading.Thread(target=self.reader, args=(p.stderr, 'stderr')) - t2.start() - p.wait() - t1.join() - t2.join() - if self.progress is not None: - self.progress('done.', 'main') - elif self.verbose: - sys.stderr.write('done.\n') - return p diff --git a/src/build_utils/distlib/version.py b/src/build_utils/distlib/version.py deleted file mode 100644 index f0e62c4ee..000000000 --- a/src/build_utils/distlib/version.py +++ /dev/null @@ -1,721 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2013 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -""" -Implementation of a flexible versioning scheme providing support for PEP-386, -distribute-compatible and semantic versioning. -""" - -import logging -import re - -from .compat import string_types - -__all__ = ['NormalizedVersion', 'NormalizedMatcher', - 'LegacyVersion', 'LegacyMatcher', - 'SemanticVersion', 'SemanticMatcher', - 'UnsupportedVersionError', 'get_scheme'] - -logger = logging.getLogger(__name__) - - -class UnsupportedVersionError(ValueError): - """This is an unsupported version.""" - pass - - -class Version(object): - def __init__(self, s): - self._string = s = s.strip() - self._parts = parts = self.parse(s) - assert isinstance(parts, tuple) - assert len(parts) > 0 - - def parse(self, s): - raise NotImplementedError('please implement in a subclass') - - def _check_compatible(self, other): - if type(self) != type(other): - raise TypeError('cannot compare %r and %r' % (self, other)) - - def __eq__(self, other): - self._check_compatible(other) - return self._parts == other._parts - - def __ne__(self, other): - return not self.__eq__(other) - - def __lt__(self, other): - self._check_compatible(other) - return self._parts < other._parts - - def __gt__(self, other): - return not (self.__lt__(other) or self.__eq__(other)) - - def __le__(self, other): - return self.__lt__(other) or self.__eq__(other) - - def __ge__(self, other): - return self.__gt__(other) or self.__eq__(other) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - def __hash__(self): - return hash(self._parts) - - def __repr__(self): - return "%s('%s')" % (self.__class__.__name__, self._string) - - def __str__(self): - return self._string - - @property - def is_prerelease(self): - raise NotImplementedError('Please implement in subclasses.') - - -class Matcher(object): - version_class = None - - dist_re = re.compile(r"^(\w[\s\w'.-]*)(\((.*)\))?") - comp_re = re.compile(r'^(<=|>=|<|>|!=|==|~=)?\s*([^\s,]+)$') - num_re = re.compile(r'^\d+(\.\d+)*$') - - # value is either a callable or the name of a method - _operators = { - '<': lambda v, c, p: v < c, - '>': lambda v, c, p: v > c, - '<=': lambda v, c, p: v == c or v < c, - '>=': lambda v, c, p: v == c or v > c, - '==': lambda v, c, p: v == c, - # by default, compatible => >=. - '~=': lambda v, c, p: v == c or v > c, - '!=': lambda v, c, p: v != c, - } - - def __init__(self, s): - if self.version_class is None: - raise ValueError('Please specify a version class') - self._string = s = s.strip() - m = self.dist_re.match(s) - if not m: - raise ValueError('Not valid: %r' % s) - groups = m.groups('') - self.name = groups[0].strip() - self.key = self.name.lower() # for case-insensitive comparisons - clist = [] - if groups[2]: - constraints = [c.strip() for c in groups[2].split(',')] - for c in constraints: - m = self.comp_re.match(c) - if not m: - raise ValueError('Invalid %r in %r' % (c, s)) - groups = m.groups() - op = groups[0] or '~=' - s = groups[1] - if s.endswith('.*'): - if op not in ('==', '!='): - raise ValueError('\'.*\' not allowed for ' - '%r constraints' % op) - # Could be a partial version (e.g. for '2.*') which - # won't parse as a version, so keep it as a string - vn, prefix = s[:-2], True - if not self.num_re.match(vn): - # Just to check that vn is a valid version - self.version_class(vn) - else: - # Should parse as a version, so we can create an - # instance for the comparison - vn, prefix = self.version_class(s), False - clist.append((op, vn, prefix)) - self._parts = tuple(clist) - - def match(self, version): - """ - Check if the provided version matches the constraints. - - :param version: The version to match against this instance. - :type version: Strring or :class:`Version` instance. - """ - if isinstance(version, string_types): - version = self.version_class(version) - for operator, constraint, prefix in self._parts: - f = self._operators.get(operator) - if isinstance(f, string_types): - f = getattr(self, f) - if not f: - msg = ('%r not implemented ' - 'for %s' % (operator, self.__class__.__name__)) - raise NotImplementedError(msg) - if not f(version, constraint, prefix): - return False - return True - - @property - def exact_version(self): - result = None - if len(self._parts) == 1 and self._parts[0][0] == '==': - result = self._parts[0][1] - return result - - def _check_compatible(self, other): - if type(self) != type(other) or self.name != other.name: - raise TypeError('cannot compare %s and %s' % (self, other)) - - def __eq__(self, other): - self._check_compatible(other) - return self.key == other.key and self._parts == other._parts - - def __ne__(self, other): - return not self.__eq__(other) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - def __hash__(self): - return hash(self.key) + hash(self._parts) - - def __repr__(self): - return "%s(%r)" % (self.__class__.__name__, self._string) - - def __str__(self): - return self._string - - -PEP426_VERSION_RE = re.compile(r'^(\d+(\.\d+)*)((a|b|c|rc)(\d+))?' - r'(\.(post)(\d+))?(\.(dev)(\d+))?' - r'(-(\d+(\.\d+)?))?$') - - -def _pep426_key(s): - s = s.strip() - m = PEP426_VERSION_RE.match(s) - if not m: - raise UnsupportedVersionError('Not a valid version: %s' % s) - groups = m.groups() - nums = tuple(int(v) for v in groups[0].split('.')) - while len(nums) > 1 and nums[-1] == 0: - nums = nums[:-1] - - pre = groups[3:5] - post = groups[6:8] - dev = groups[9:11] - local = groups[12] - if pre == (None, None): - pre = () - else: - pre = pre[0], int(pre[1]) - if post == (None, None): - post = () - else: - post = post[0], int(post[1]) - if dev == (None, None): - dev = () - else: - dev = dev[0], int(dev[1]) - if local is None: - local = () - else: - local = tuple([int(s) for s in local.split('.')]) - if not pre: - # either before pre-release, or final release and after - if not post and dev: - # before pre-release - pre = ('a', -1) # to sort before a0 - else: - pre = ('z',) # to sort after all pre-releases - # now look at the state of post and dev. - if not post: - post = ('_',) # sort before 'a' - if not dev: - dev = ('final',) - - #print('%s -> %s' % (s, m.groups())) - return nums, pre, post, dev, local - - -_normalized_key = _pep426_key - - -class NormalizedVersion(Version): - """A rational version. - - Good: - 1.2 # equivalent to "1.2.0" - 1.2.0 - 1.2a1 - 1.2.3a2 - 1.2.3b1 - 1.2.3c1 - 1.2.3.4 - TODO: fill this out - - Bad: - 1 # mininum two numbers - 1.2a # release level must have a release serial - 1.2.3b - """ - def parse(self, s): - result = _normalized_key(s) - # _normalized_key loses trailing zeroes in the release - # clause, since that's needed to ensure that X.Y == X.Y.0 == X.Y.0.0 - # However, PEP 440 prefix matching needs it: for example, - # (~= 1.4.5.0) matches differently to (~= 1.4.5.0.0). - m = PEP426_VERSION_RE.match(s) # must succeed - groups = m.groups() - self._release_clause = tuple(int(v) for v in groups[0].split('.')) - return result - - PREREL_TAGS = set(['a', 'b', 'c', 'rc', 'dev']) - - @property - def is_prerelease(self): - return any(t[0] in self.PREREL_TAGS for t in self._parts if t) - - -def _match_prefix(x, y): - x = str(x) - y = str(y) - if x == y: - return True - if not x.startswith(y): - return False - n = len(y) - return x[n] == '.' - - -class NormalizedMatcher(Matcher): - version_class = NormalizedVersion - - # value is either a callable or the name of a method - _operators = { - '~=': '_match_compatible', - '<': '_match_lt', - '>': '_match_gt', - '<=': '_match_le', - '>=': '_match_ge', - '==': '_match_eq', - '!=': '_match_ne', - } - - def _adjust_local(self, version, constraint, prefix): - if prefix: - strip_local = '-' not in constraint and version._parts[-1] - else: - # both constraint and version are - # NormalizedVersion instances. - # If constraint does not have a local component, - # ensure the version doesn't, either. - strip_local = not constraint._parts[-1] and version._parts[-1] - if strip_local: - s = version._string.split('-', 1)[0] - version = self.version_class(s) - return version, constraint - - def _match_lt(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if version >= constraint: - return False - release_clause = constraint._release_clause - pfx = '.'.join([str(i) for i in release_clause]) - return not _match_prefix(version, pfx) - - def _match_gt(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if version <= constraint: - return False - release_clause = constraint._release_clause - pfx = '.'.join([str(i) for i in release_clause]) - return not _match_prefix(version, pfx) - - def _match_le(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - return version <= constraint - - def _match_ge(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - return version >= constraint - - def _match_eq(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if not prefix: - result = (version == constraint) - else: - result = _match_prefix(version, constraint) - return result - - def _match_ne(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if not prefix: - result = (version != constraint) - else: - result = not _match_prefix(version, constraint) - return result - - def _match_compatible(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if version == constraint: - return True - if version < constraint: - return False - release_clause = constraint._release_clause - if len(release_clause) > 1: - release_clause = release_clause[:-1] - pfx = '.'.join([str(i) for i in release_clause]) - return _match_prefix(version, pfx) - -_REPLACEMENTS = ( - (re.compile('[.+-]$'), ''), # remove trailing puncts - (re.compile(r'^[.](\d)'), r'0.\1'), # .N -> 0.N at start - (re.compile('^[.-]'), ''), # remove leading puncts - (re.compile(r'^\((.*)\)$'), r'\1'), # remove parentheses - (re.compile(r'^v(ersion)?\s*(\d+)'), r'\2'), # remove leading v(ersion) - (re.compile(r'^r(ev)?\s*(\d+)'), r'\2'), # remove leading v(ersion) - (re.compile('[.]{2,}'), '.'), # multiple runs of '.' - (re.compile(r'\b(alfa|apha)\b'), 'alpha'), # misspelt alpha - (re.compile(r'\b(pre-alpha|prealpha)\b'), - 'pre.alpha'), # standardise - (re.compile(r'\(beta\)$'), 'beta'), # remove parentheses -) - -_SUFFIX_REPLACEMENTS = ( - (re.compile('^[:~._+-]+'), ''), # remove leading puncts - (re.compile('[,*")([\]]'), ''), # remove unwanted chars - (re.compile('[~:+_ -]'), '.'), # replace illegal chars - (re.compile('[.]{2,}'), '.'), # multiple runs of '.' - (re.compile(r'\.$'), ''), # trailing '.' -) - -_NUMERIC_PREFIX = re.compile(r'(\d+(\.\d+)*)') - - -def _suggest_semantic_version(s): - """ - Try to suggest a semantic form for a version for which - _suggest_normalized_version couldn't come up with anything. - """ - result = s.strip().lower() - for pat, repl in _REPLACEMENTS: - result = pat.sub(repl, result) - if not result: - result = '0.0.0' - - # Now look for numeric prefix, and separate it out from - # the rest. - #import pdb; pdb.set_trace() - m = _NUMERIC_PREFIX.match(result) - if not m: - prefix = '0.0.0' - suffix = result - else: - prefix = m.groups()[0].split('.') - prefix = [int(i) for i in prefix] - while len(prefix) < 3: - prefix.append(0) - if len(prefix) == 3: - suffix = result[m.end():] - else: - suffix = '.'.join([str(i) for i in prefix[3:]]) + result[m.end():] - prefix = prefix[:3] - prefix = '.'.join([str(i) for i in prefix]) - suffix = suffix.strip() - if suffix: - #import pdb; pdb.set_trace() - # massage the suffix. - for pat, repl in _SUFFIX_REPLACEMENTS: - suffix = pat.sub(repl, suffix) - - if not suffix: - result = prefix - else: - sep = '-' if 'dev' in suffix else '+' - result = prefix + sep + suffix - if not is_semver(result): - result = None - return result - - -def _suggest_normalized_version(s): - """Suggest a normalized version close to the given version string. - - If you have a version string that isn't rational (i.e. NormalizedVersion - doesn't like it) then you might be able to get an equivalent (or close) - rational version from this function. - - This does a number of simple normalizations to the given string, based - on observation of versions currently in use on PyPI. Given a dump of - those version during PyCon 2009, 4287 of them: - - 2312 (53.93%) match NormalizedVersion without change - with the automatic suggestion - - 3474 (81.04%) match when using this suggestion method - - @param s {str} An irrational version string. - @returns A rational version string, or None, if couldn't determine one. - """ - try: - _normalized_key(s) - return s # already rational - except UnsupportedVersionError: - pass - - rs = s.lower() - - # part of this could use maketrans - for orig, repl in (('-alpha', 'a'), ('-beta', 'b'), ('alpha', 'a'), - ('beta', 'b'), ('rc', 'c'), ('-final', ''), - ('-pre', 'c'), - ('-release', ''), ('.release', ''), ('-stable', ''), - ('+', '.'), ('_', '.'), (' ', ''), ('.final', ''), - ('final', '')): - rs = rs.replace(orig, repl) - - # if something ends with dev or pre, we add a 0 - rs = re.sub(r"pre$", r"pre0", rs) - rs = re.sub(r"dev$", r"dev0", rs) - - # if we have something like "b-2" or "a.2" at the end of the - # version, that is pobably beta, alpha, etc - # let's remove the dash or dot - rs = re.sub(r"([abc]|rc)[\-\.](\d+)$", r"\1\2", rs) - - # 1.0-dev-r371 -> 1.0.dev371 - # 0.1-dev-r79 -> 0.1.dev79 - rs = re.sub(r"[\-\.](dev)[\-\.]?r?(\d+)$", r".\1\2", rs) - - # Clean: 2.0.a.3, 2.0.b1, 0.9.0~c1 - rs = re.sub(r"[.~]?([abc])\.?", r"\1", rs) - - # Clean: v0.3, v1.0 - if rs.startswith('v'): - rs = rs[1:] - - # Clean leading '0's on numbers. - #TODO: unintended side-effect on, e.g., "2003.05.09" - # PyPI stats: 77 (~2%) better - rs = re.sub(r"\b0+(\d+)(?!\d)", r"\1", rs) - - # Clean a/b/c with no version. E.g. "1.0a" -> "1.0a0". Setuptools infers - # zero. - # PyPI stats: 245 (7.56%) better - rs = re.sub(r"(\d+[abc])$", r"\g<1>0", rs) - - # the 'dev-rNNN' tag is a dev tag - rs = re.sub(r"\.?(dev-r|dev\.r)\.?(\d+)$", r".dev\2", rs) - - # clean the - when used as a pre delimiter - rs = re.sub(r"-(a|b|c)(\d+)$", r"\1\2", rs) - - # a terminal "dev" or "devel" can be changed into ".dev0" - rs = re.sub(r"[\.\-](dev|devel)$", r".dev0", rs) - - # a terminal "dev" can be changed into ".dev0" - rs = re.sub(r"(?![\.\-])dev$", r".dev0", rs) - - # a terminal "final" or "stable" can be removed - rs = re.sub(r"(final|stable)$", "", rs) - - # The 'r' and the '-' tags are post release tags - # 0.4a1.r10 -> 0.4a1.post10 - # 0.9.33-17222 -> 0.9.33.post17222 - # 0.9.33-r17222 -> 0.9.33.post17222 - rs = re.sub(r"\.?(r|-|-r)\.?(\d+)$", r".post\2", rs) - - # Clean 'r' instead of 'dev' usage: - # 0.9.33+r17222 -> 0.9.33.dev17222 - # 1.0dev123 -> 1.0.dev123 - # 1.0.git123 -> 1.0.dev123 - # 1.0.bzr123 -> 1.0.dev123 - # 0.1a0dev.123 -> 0.1a0.dev123 - # PyPI stats: ~150 (~4%) better - rs = re.sub(r"\.?(dev|git|bzr)\.?(\d+)$", r".dev\2", rs) - - # Clean '.pre' (normalized from '-pre' above) instead of 'c' usage: - # 0.2.pre1 -> 0.2c1 - # 0.2-c1 -> 0.2c1 - # 1.0preview123 -> 1.0c123 - # PyPI stats: ~21 (0.62%) better - rs = re.sub(r"\.?(pre|preview|-c)(\d+)$", r"c\g<2>", rs) - - # Tcl/Tk uses "px" for their post release markers - rs = re.sub(r"p(\d+)$", r".post\1", rs) - - try: - _normalized_key(rs) - except UnsupportedVersionError: - rs = None - return rs - -# -# Legacy version processing (distribute-compatible) -# - -_VERSION_PART = re.compile(r'([a-z]+|\d+|[\.-])', re.I) -_VERSION_REPLACE = { - 'pre': 'c', - 'preview': 'c', - '-': 'final-', - 'rc': 'c', - 'dev': '@', - '': None, - '.': None, -} - - -def _legacy_key(s): - def get_parts(s): - result = [] - for p in _VERSION_PART.split(s.lower()): - p = _VERSION_REPLACE.get(p, p) - if p: - if '0' <= p[:1] <= '9': - p = p.zfill(8) - else: - p = '*' + p - result.append(p) - result.append('*final') - return result - - result = [] - for p in get_parts(s): - if p.startswith('*'): - if p < '*final': - while result and result[-1] == '*final-': - result.pop() - while result and result[-1] == '00000000': - result.pop() - result.append(p) - return tuple(result) - - -class LegacyVersion(Version): - def parse(self, s): - return _legacy_key(s) - - @property - def is_prerelease(self): - result = False - for x in self._parts: - if (isinstance(x, string_types) and x.startswith('*') and - x < '*final'): - result = True - break - return result - - -class LegacyMatcher(Matcher): - version_class = LegacyVersion - - _operators = dict(Matcher._operators) - _operators['~='] = '_match_compatible' - - numeric_re = re.compile('^(\d+(\.\d+)*)') - - def _match_compatible(self, version, constraint, prefix): - if version < constraint: - return False - m = self.numeric_re.match(str(constraint)) - if not m: - logger.warning('Cannot compute compatible match for version %s ' - ' and constraint %s', version, constraint) - return True - s = m.groups()[0] - if '.' in s: - s = s.rsplit('.', 1)[0] - return _match_prefix(version, s) - -# -# Semantic versioning -# - -_SEMVER_RE = re.compile(r'^(\d+)\.(\d+)\.(\d+)' - r'(-[a-z0-9]+(\.[a-z0-9-]+)*)?' - r'(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$', re.I) - - -def is_semver(s): - return _SEMVER_RE.match(s) - - -def _semantic_key(s): - def make_tuple(s, absent): - if s is None: - result = (absent,) - else: - parts = s[1:].split('.') - # We can't compare ints and strings on Python 3, so fudge it - # by zero-filling numeric values so simulate a numeric comparison - result = tuple([p.zfill(8) if p.isdigit() else p for p in parts]) - return result - - m = is_semver(s) - if not m: - raise UnsupportedVersionError(s) - groups = m.groups() - major, minor, patch = [int(i) for i in groups[:3]] - # choose the '|' and '*' so that versions sort correctly - pre, build = make_tuple(groups[3], '|'), make_tuple(groups[5], '*') - return (major, minor, patch), pre, build - - -class SemanticVersion(Version): - def parse(self, s): - return _semantic_key(s) - - @property - def is_prerelease(self): - return self._parts[1][0] != '|' - - -class SemanticMatcher(Matcher): - version_class = SemanticVersion - - -class VersionScheme(object): - def __init__(self, key, matcher, suggester=None): - self.key = key - self.matcher = matcher - self.suggester = suggester - - def is_valid_version(self, s): - try: - self.matcher.version_class(s) - result = True - except UnsupportedVersionError: - result = False - return result - - def is_valid_matcher(self, s): - try: - self.matcher(s) - result = True - except UnsupportedVersionError: - result = False - return result - - def is_valid_constraint_list(self, s): - """ - Used for processing some metadata fields - """ - return self.is_valid_matcher('dummy_name (%s)' % s) - - def suggest(self, s): - if self.suggester is None: - result = None - else: - result = self.suggester(s) - return result - -_SCHEMES = { - 'normalized': VersionScheme(_normalized_key, NormalizedMatcher, - _suggest_normalized_version), - 'legacy': VersionScheme(_legacy_key, LegacyMatcher, lambda self, s: s), - 'semantic': VersionScheme(_semantic_key, SemanticMatcher, - _suggest_semantic_version), -} - -_SCHEMES['default'] = _SCHEMES['normalized'] - - -def get_scheme(name): - if name not in _SCHEMES: - raise ValueError('unknown scheme name: %r' % name) - return _SCHEMES[name] diff --git a/src/build_utils/distlib/w32.exe b/src/build_utils/distlib/w32.exe deleted file mode 100644 index b6e1a0a238c4a70d002caad6c80c88d49159a759..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88576 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

8HnXK; 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 A[^-]+) --(?P\d+[^-]*) -(-(?P\d+[^-]*))? --(?P\w+\d+(\.\w+\d+)*) --(?P\w+) --(?P\w+) -\.whl$ -''', re.IGNORECASE | re.VERBOSE) - -NAME_VERSION_RE = re.compile(r''' -(?P[^-]+) --(?P\d+[^-]*) -(-(?P\d+[^-]*))?$ -''', re.IGNORECASE | re.VERBOSE) - -SHEBANG_RE = re.compile(br'\s*#![^\r\n]*') -SHEBANG_DETAIL_RE = re.compile(br'^(\s*#!("[^"]+"|\S+))\s+(.*)$') -SHEBANG_PYTHON = b'#!python' -SHEBANG_PYTHONW = b'#!pythonw' - -if os.sep == '/': - to_posix = lambda o: o -else: - to_posix = lambda o: o.replace(os.sep, '/') - - -class Mounter(object): - def __init__(self): - self.impure_wheels = {} - self.libs = {} - - def add(self, pathname, extensions): - self.impure_wheels[pathname] = extensions - self.libs.update(extensions) - - def remove(self, pathname): - extensions = self.impure_wheels.pop(pathname) - for k, v in extensions: - if k in self.libs: - del self.libs[k] - - def find_module(self, fullname, path=None): - if fullname in self.libs: - result = self - else: - result = None - return result - - def load_module(self, fullname): - if fullname in sys.modules: - result = sys.modules[fullname] - else: - if fullname not in self.libs: - raise ImportError('unable to find extension for %s' % fullname) - result = imp.load_dynamic(fullname, self.libs[fullname]) - result.__loader__ = self - parts = fullname.rsplit('.', 1) - if len(parts) > 1: - result.__package__ = parts[0] - return result - -_hook = Mounter() - - -class Wheel(object): - """ - Class to build and install from Wheel files (PEP 427). - """ - - wheel_version = (1, 1) - hash_kind = 'sha256' - - def __init__(self, filename=None, sign=False, verify=False): - """ - Initialise an instance using a (valid) filename. - """ - self.sign = sign - self.should_verify = verify - self.buildver = '' - self.pyver = [PYVER] - self.abi = ['none'] - self.arch = ['any'] - self.dirname = os.getcwd() - if filename is None: - self.name = 'dummy' - self.version = '0.1' - self._filename = self.filename - else: - m = NAME_VERSION_RE.match(filename) - if m: - info = m.groupdict('') - self.name = info['nm'] - # Reinstate the local version separator - self.version = info['vn'].replace('_', '-') - self.buildver = info['bn'] - self._filename = self.filename - else: - dirname, filename = os.path.split(filename) - m = FILENAME_RE.match(filename) - if not m: - raise DistlibException('Invalid name or ' - 'filename: %r' % filename) - if dirname: - self.dirname = os.path.abspath(dirname) - self._filename = filename - info = m.groupdict('') - self.name = info['nm'] - self.version = info['vn'] - self.buildver = info['bn'] - self.pyver = info['py'].split('.') - self.abi = info['bi'].split('.') - self.arch = info['ar'].split('.') - - @property - def filename(self): - """ - Build and return a filename from the various components. - """ - if self.buildver: - buildver = '-' + self.buildver - else: - buildver = '' - pyver = '.'.join(self.pyver) - abi = '.'.join(self.abi) - arch = '.'.join(self.arch) - # replace - with _ as a local version separator - version = self.version.replace('-', '_') - return '%s-%s%s-%s-%s-%s.whl' % (self.name, version, buildver, - pyver, abi, arch) - - @property - def exists(self): - path = os.path.join(self.dirname, self.filename) - return os.path.isfile(path) - - @property - def tags(self): - for pyver in self.pyver: - for abi in self.abi: - for arch in self.arch: - yield pyver, abi, arch - - @cached_property - def metadata(self): - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - wrapper = codecs.getreader('utf-8') - with ZipFile(pathname, 'r') as zf: - wheel_metadata = self.get_wheel_metadata(zf) - wv = wheel_metadata['Wheel-Version'].split('.', 1) - file_version = tuple([int(i) for i in wv]) - if file_version < (1, 1): - fn = 'METADATA' - else: - fn = METADATA_FILENAME - try: - metadata_filename = posixpath.join(info_dir, fn) - with zf.open(metadata_filename) as bf: - wf = wrapper(bf) - result = Metadata(fileobj=wf) - except KeyError: - raise ValueError('Invalid wheel, because %s is ' - 'missing' % fn) - return result - - def get_wheel_metadata(self, zf): - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - metadata_filename = posixpath.join(info_dir, 'WHEEL') - with zf.open(metadata_filename) as bf: - wf = codecs.getreader('utf-8')(bf) - message = message_from_file(wf) - return dict(message) - - @cached_property - def info(self): - pathname = os.path.join(self.dirname, self.filename) - with ZipFile(pathname, 'r') as zf: - result = self.get_wheel_metadata(zf) - return result - - def process_shebang(self, data): - m = SHEBANG_RE.match(data) - if m: - end = m.end() - shebang, data_after_shebang = data[:end], data[end:] - # Preserve any arguments after the interpreter - if b'pythonw' in shebang.lower(): - shebang_python = SHEBANG_PYTHONW - else: - shebang_python = SHEBANG_PYTHON - m = SHEBANG_DETAIL_RE.match(shebang) - if m: - args = b' ' + m.groups()[-1] - else: - args = b'' - shebang = shebang_python + args - data = shebang + data_after_shebang - else: - cr = data.find(b'\r') - lf = data.find(b'\n') - if cr < 0 or cr > lf: - term = b'\n' - else: - if data[cr:cr + 2] == b'\r\n': - term = b'\r\n' - else: - term = b'\r' - data = SHEBANG_PYTHON + term + data - return data - - def get_hash(self, data, hash_kind=None): - if hash_kind is None: - hash_kind = self.hash_kind - try: - hasher = getattr(hashlib, hash_kind) - except AttributeError: - raise DistlibException('Unsupported hash algorithm: %r' % hash_kind) - result = hasher(data).digest() - result = base64.urlsafe_b64encode(result).rstrip(b'=').decode('ascii') - return hash_kind, result - - def write_record(self, records, record_path, base): - with CSVWriter(record_path) as writer: - for row in records: - writer.writerow(row) - p = to_posix(os.path.relpath(record_path, base)) - writer.writerow((p, '', '')) - - def write_records(self, info, libdir, archive_paths): - records = [] - distinfo, info_dir = info - hasher = getattr(hashlib, self.hash_kind) - for ap, p in archive_paths: - with open(p, 'rb') as f: - data = f.read() - digest = '%s=%s' % self.get_hash(data) - size = os.path.getsize(p) - records.append((ap, digest, size)) - - p = os.path.join(distinfo, 'RECORD') - self.write_record(records, p, libdir) - ap = to_posix(os.path.join(info_dir, 'RECORD')) - archive_paths.append((ap, p)) - - def build_zip(self, pathname, archive_paths): - with ZipFile(pathname, 'w', zipfile.ZIP_DEFLATED) as zf: - for ap, p in archive_paths: - logger.debug('Wrote %s to %s in wheel', p, ap) - zf.write(p, ap) - - def build(self, paths, tags=None, wheel_version=None): - """ - Build a wheel from files in specified paths, and use any specified tags - when determining the name of the wheel. - """ - if tags is None: - tags = {} - - libkey = list(filter(lambda o: o in paths, ('purelib', 'platlib')))[0] - if libkey == 'platlib': - is_pure = 'false' - default_pyver = [IMPVER] - default_abi = [ABI] - default_arch = [ARCH] - else: - is_pure = 'true' - default_pyver = [PYVER] - default_abi = ['none'] - default_arch = ['any'] - - self.pyver = tags.get('pyver', default_pyver) - self.abi = tags.get('abi', default_abi) - self.arch = tags.get('arch', default_arch) - - libdir = paths[libkey] - - name_ver = '%s-%s' % (self.name, self.version) - data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver - - archive_paths = [] - - # First, stuff which is not in site-packages - for key in ('data', 'headers', 'scripts'): - if key not in paths: - continue - path = paths[key] - if os.path.isdir(path): - for root, dirs, files in os.walk(path): - for fn in files: - p = fsdecode(os.path.join(root, fn)) - rp = os.path.relpath(p, path) - ap = to_posix(os.path.join(data_dir, key, rp)) - archive_paths.append((ap, p)) - if key == 'scripts' and not p.endswith('.exe'): - with open(p, 'rb') as f: - data = f.read() - data = self.process_shebang(data) - with open(p, 'wb') as f: - f.write(data) - - # Now, stuff which is in site-packages, other than the - # distinfo stuff. - path = libdir - distinfo = None - for root, dirs, files in os.walk(path): - if root == path: - # At the top level only, save distinfo for later - # and skip it for now - for i, dn in enumerate(dirs): - dn = fsdecode(dn) - if dn.endswith('.dist-info'): - distinfo = os.path.join(root, dn) - del dirs[i] - break - assert distinfo, '.dist-info directory expected, not found' - - for fn in files: - # comment out next suite to leave .pyc files in - if fsdecode(fn).endswith(('.pyc', '.pyo')): - continue - p = os.path.join(root, fn) - rp = to_posix(os.path.relpath(p, path)) - archive_paths.append((rp, p)) - - # Now distinfo. Assumed to be flat, i.e. os.listdir is enough. - files = os.listdir(distinfo) - for fn in files: - if fn not in ('RECORD', 'INSTALLER', 'SHARED', 'WHEEL'): - p = fsdecode(os.path.join(distinfo, fn)) - ap = to_posix(os.path.join(info_dir, fn)) - archive_paths.append((ap, p)) - - wheel_metadata = [ - 'Wheel-Version: %d.%d' % (wheel_version or self.wheel_version), - 'Generator: distlib %s' % __version__, - 'Root-Is-Purelib: %s' % is_pure, - ] - for pyver, abi, arch in self.tags: - wheel_metadata.append('Tag: %s-%s-%s' % (pyver, abi, arch)) - p = os.path.join(distinfo, 'WHEEL') - with open(p, 'w') as f: - f.write('\n'.join(wheel_metadata)) - ap = to_posix(os.path.join(info_dir, 'WHEEL')) - archive_paths.append((ap, p)) - - # Now, at last, RECORD. - # Paths in here are archive paths - nothing else makes sense. - self.write_records((distinfo, info_dir), libdir, archive_paths) - # Now, ready to build the zip file - pathname = os.path.join(self.dirname, self.filename) - self.build_zip(pathname, archive_paths) - return pathname - - def install(self, paths, maker, **kwargs): - """ - Install a wheel to the specified paths. If kwarg ``warner`` is - specified, it should be a callable, which will be called with two - tuples indicating the wheel version of this software and the wheel - version in the file, if there is a discrepancy in the versions. - This can be used to issue any warnings to raise any exceptions. - If kwarg ``lib_only`` is True, only the purelib/platlib files are - installed, and the headers, scripts, data and dist-info metadata are - not written. - - The return value is a :class:`InstalledDistribution` instance unless - ``options.lib_only`` is True, in which case the return value is ``None``. - """ - - dry_run = maker.dry_run - warner = kwargs.get('warner') - lib_only = kwargs.get('lib_only', False) - - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver - - metadata_name = posixpath.join(info_dir, METADATA_FILENAME) - wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') - record_name = posixpath.join(info_dir, 'RECORD') - - wrapper = codecs.getreader('utf-8') - - with ZipFile(pathname, 'r') as zf: - with zf.open(wheel_metadata_name) as bwf: - wf = wrapper(bwf) - message = message_from_file(wf) - wv = message['Wheel-Version'].split('.', 1) - file_version = tuple([int(i) for i in wv]) - if (file_version != self.wheel_version) and warner: - warner(self.wheel_version, file_version) - - if message['Root-Is-Purelib'] == 'true': - libdir = paths['purelib'] - else: - libdir = paths['platlib'] - - records = {} - with zf.open(record_name) as bf: - with CSVReader(stream=bf) as reader: - for row in reader: - p = row[0] - records[p] = row - - data_pfx = posixpath.join(data_dir, '') - info_pfx = posixpath.join(info_dir, '') - script_pfx = posixpath.join(data_dir, 'scripts', '') - - # make a new instance rather than a copy of maker's, - # as we mutate it - fileop = FileOperator(dry_run=dry_run) - fileop.record = True # so we can rollback if needed - - bc = not sys.dont_write_bytecode # Double negatives. Lovely! - - outfiles = [] # for RECORD writing - - # for script copying/shebang processing - workdir = tempfile.mkdtemp() - # set target dir later - # we default add_launchers to False, as the - # Python Launcher should be used instead - maker.source_dir = workdir - maker.target_dir = None - try: - for zinfo in zf.infolist(): - arcname = zinfo.filename - if isinstance(arcname, text_type): - u_arcname = arcname - else: - u_arcname = arcname.decode('utf-8') - # The signature file won't be in RECORD, - # and we don't currently don't do anything with it - if u_arcname.endswith('/RECORD.jws'): - continue - row = records[u_arcname] - if row[2] and str(zinfo.file_size) != row[2]: - raise DistlibException('size mismatch for ' - '%s' % u_arcname) - if row[1]: - kind, value = row[1].split('=', 1) - with zf.open(arcname) as bf: - data = bf.read() - _, digest = self.get_hash(data, kind) - if digest != value: - raise DistlibException('digest mismatch for ' - '%s' % arcname) - - if lib_only and u_arcname.startswith((info_pfx, data_pfx)): - logger.debug('lib_only: skipping %s', u_arcname) - continue - is_script = (u_arcname.startswith(script_pfx) - and not u_arcname.endswith('.exe')) - - if u_arcname.startswith(data_pfx): - _, where, rp = u_arcname.split('/', 2) - outfile = os.path.join(paths[where], convert_path(rp)) - else: - # meant for site-packages. - if u_arcname in (wheel_metadata_name, record_name): - continue - outfile = os.path.join(libdir, convert_path(u_arcname)) - if not is_script: - with zf.open(arcname) as bf: - fileop.copy_stream(bf, outfile) - outfiles.append(outfile) - # Double check the digest of the written file - if not dry_run and row[1]: - with open(outfile, 'rb') as bf: - data = bf.read() - _, newdigest = self.get_hash(data, kind) - if newdigest != digest: - raise DistlibException('digest mismatch ' - 'on write for ' - '%s' % outfile) - if bc and outfile.endswith('.py'): - try: - pyc = fileop.byte_compile(outfile) - outfiles.append(pyc) - except Exception: - # Don't give up if byte-compilation fails, - # but log it and perhaps warn the user - logger.warning('Byte-compilation failed', - exc_info=True) - else: - fn = os.path.basename(convert_path(arcname)) - workname = os.path.join(workdir, fn) - with zf.open(arcname) as bf: - fileop.copy_stream(bf, workname) - - dn, fn = os.path.split(outfile) - maker.target_dir = dn - filenames = maker.make(fn) - fileop.set_executable_mode(filenames) - outfiles.extend(filenames) - - if lib_only: - logger.debug('lib_only: returning None') - dist = None - else: - # Generate scripts - - # Try to get pydist.json so we can see if there are - # any commands to generate. If this fails (e.g. because - # of a legacy wheel), log a warning but don't give up. - commands = None - file_version = self.info['Wheel-Version'] - if file_version == '1.0': - # Use legacy info - ep = posixpath.join(info_dir, 'entry_points.txt') - try: - with zf.open(ep) as bwf: - epdata = read_exports(bwf) - commands = {} - for key in ('console', 'gui'): - k = '%s_scripts' % key - if k in epdata: - commands['wrap_%s' % key] = d = {} - for v in epdata[k].values(): - s = '%s:%s' % (v.prefix, v.suffix) - if v.flags: - s += ' %s' % v.flags - d[v.name] = s - except Exception: - logger.warning('Unable to read legacy script ' - 'metadata, so cannot generate ' - 'scripts') - else: - try: - with zf.open(metadata_name) as bwf: - wf = wrapper(bwf) - commands = json.load(wf).get('extensions') - if commands: - commands = commands.get('python.commands') - except Exception: - logger.warning('Unable to read JSON metadata, so ' - 'cannot generate scripts') - if commands: - console_scripts = commands.get('wrap_console', {}) - gui_scripts = commands.get('wrap_gui', {}) - if console_scripts or gui_scripts: - script_dir = paths.get('scripts', '') - if not os.path.isdir(script_dir): - raise ValueError('Valid script path not ' - 'specified') - maker.target_dir = script_dir - for k, v in console_scripts.items(): - script = '%s = %s' % (k, v) - filenames = maker.make(script) - fileop.set_executable_mode(filenames) - - if gui_scripts: - options = {'gui': True } - for k, v in gui_scripts.items(): - script = '%s = %s' % (k, v) - filenames = maker.make(script, options) - fileop.set_executable_mode(filenames) - - p = os.path.join(libdir, info_dir) - dist = InstalledDistribution(p) - - # Write SHARED - paths = dict(paths) # don't change passed in dict - del paths['purelib'] - del paths['platlib'] - paths['lib'] = libdir - p = dist.write_shared_locations(paths, dry_run) - if p: - outfiles.append(p) - - # Write RECORD - dist.write_installed_files(outfiles, paths['prefix'], - dry_run) - return dist - except Exception: # pragma: no cover - logger.exception('installation failed.') - fileop.rollback() - raise - finally: - shutil.rmtree(workdir) - - def _get_dylib_cache(self): - global cache - if cache is None: - # Use native string to avoid issues on 2.x: see Python #20140. - base = os.path.join(get_cache_base(), str('dylib-cache'), - sys.version[:3]) - cache = Cache(base) - return cache - - def _get_extensions(self): - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - arcname = posixpath.join(info_dir, 'EXTENSIONS') - wrapper = codecs.getreader('utf-8') - result = [] - with ZipFile(pathname, 'r') as zf: - try: - with zf.open(arcname) as bf: - wf = wrapper(bf) - extensions = json.load(wf) - cache = self._get_dylib_cache() - prefix = cache.prefix_to_dir(pathname) - cache_base = os.path.join(cache.base, prefix) - if not os.path.isdir(cache_base): - os.makedirs(cache_base) - for name, relpath in extensions.items(): - dest = os.path.join(cache_base, convert_path(relpath)) - if not os.path.exists(dest): - extract = True - else: - file_time = os.stat(dest).st_mtime - file_time = datetime.datetime.fromtimestamp(file_time) - info = zf.getinfo(relpath) - wheel_time = datetime.datetime(*info.date_time) - extract = wheel_time > file_time - if extract: - zf.extract(relpath, cache_base) - result.append((name, dest)) - except KeyError: - pass - return result - - def is_compatible(self): - """ - Determine if a wheel is compatible with the running system. - """ - return is_compatible(self) - - def is_mountable(self): - """ - Determine if a wheel is asserted as mountable by its metadata. - """ - return True # for now - metadata details TBD - - def mount(self, append=False): - pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) - if not self.is_compatible(): - msg = 'Wheel %s not compatible with this Python.' % pathname - raise DistlibException(msg) - if not self.is_mountable(): - msg = 'Wheel %s is marked as not mountable.' % pathname - raise DistlibException(msg) - if pathname in sys.path: - logger.debug('%s already in path', pathname) - else: - if append: - sys.path.append(pathname) - else: - sys.path.insert(0, pathname) - extensions = self._get_extensions() - if extensions: - if _hook not in sys.meta_path: - sys.meta_path.append(_hook) - _hook.add(pathname, extensions) - - def unmount(self): - pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) - if pathname not in sys.path: - logger.debug('%s not in path', pathname) - else: - sys.path.remove(pathname) - if pathname in _hook.impure_wheels: - _hook.remove(pathname) - if not _hook.impure_wheels: - if _hook in sys.meta_path: - sys.meta_path.remove(_hook) - - def verify(self): - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver - - metadata_name = posixpath.join(info_dir, METADATA_FILENAME) - wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') - record_name = posixpath.join(info_dir, 'RECORD') - - wrapper = codecs.getreader('utf-8') - - with ZipFile(pathname, 'r') as zf: - with zf.open(wheel_metadata_name) as bwf: - wf = wrapper(bwf) - message = message_from_file(wf) - wv = message['Wheel-Version'].split('.', 1) - file_version = tuple([int(i) for i in wv]) - # TODO version verification - - records = {} - with zf.open(record_name) as bf: - with CSVReader(stream=bf) as reader: - for row in reader: - p = row[0] - records[p] = row - - for zinfo in zf.infolist(): - arcname = zinfo.filename - if isinstance(arcname, text_type): - u_arcname = arcname - else: - u_arcname = arcname.decode('utf-8') - if '..' in u_arcname: - raise DistlibException('invalid entry in ' - 'wheel: %r' % u_arcname) - - # The signature file won't be in RECORD, - # and we don't currently don't do anything with it - if u_arcname.endswith('/RECORD.jws'): - continue - row = records[u_arcname] - if row[2] and str(zinfo.file_size) != row[2]: - raise DistlibException('size mismatch for ' - '%s' % u_arcname) - if row[1]: - kind, value = row[1].split('=', 1) - with zf.open(arcname) as bf: - data = bf.read() - _, digest = self.get_hash(data, kind) - if digest != value: - raise DistlibException('digest mismatch for ' - '%s' % arcname) - - def update(self, modifier, dest_dir=None, **kwargs): - """ - Update the contents of a wheel in a generic way. The modifier should - be a callable which expects a dictionary argument: its keys are - archive-entry paths, and its values are absolute filesystem paths - where the contents the corresponding archive entries can be found. The - modifier is free to change the contents of the files pointed to, add - new entries and remove entries, before returning. This method will - extract the entire contents of the wheel to a temporary location, call - the modifier, and then use the passed (and possibly updated) - dictionary to write a new wheel. If ``dest_dir`` is specified, the new - wheel is written there -- otherwise, the original wheel is overwritten. - - The modifier should return True if it updated the wheel, else False. - This method returns the same value the modifier returns. - """ - - def get_version(path_map, info_dir): - version = path = None - key = '%s/%s' % (info_dir, METADATA_FILENAME) - if key not in path_map: - key = '%s/PKG-INFO' % info_dir - if key in path_map: - path = path_map[key] - version = Metadata(path=path).version - return version, path - - def update_version(version, path): - updated = None - try: - v = NormalizedVersion(version) - i = version.find('-') - if i < 0: - updated = '%s-1' % version - else: - parts = [int(s) for s in version[i + 1:].split('.')] - parts[-1] += 1 - updated = '%s-%s' % (version[:i], - '.'.join(str(i) for i in parts)) - except UnsupportedVersionError: - logger.debug('Cannot update non-compliant (PEP-440) ' - 'version %r', version) - if updated: - md = Metadata(path=path) - md.version = updated - legacy = not path.endswith(METADATA_FILENAME) - md.write(path=path, legacy=legacy) - logger.debug('Version updated from %r to %r', version, - updated) - - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - record_name = posixpath.join(info_dir, 'RECORD') - with tempdir() as workdir: - with ZipFile(pathname, 'r') as zf: - path_map = {} - for zinfo in zf.infolist(): - arcname = zinfo.filename - if isinstance(arcname, text_type): - u_arcname = arcname - else: - u_arcname = arcname.decode('utf-8') - if u_arcname == record_name: - continue - if '..' in u_arcname: - raise DistlibException('invalid entry in ' - 'wheel: %r' % u_arcname) - zf.extract(zinfo, workdir) - path = os.path.join(workdir, convert_path(u_arcname)) - path_map[u_arcname] = path - - # Remember the version. - original_version, _ = get_version(path_map, info_dir) - # Files extracted. Call the modifier. - modified = modifier(path_map, **kwargs) - if modified: - # Something changed - need to build a new wheel. - current_version, path = get_version(path_map, info_dir) - if current_version and (current_version == original_version): - # Add or update local version to signify changes. - update_version(current_version, path) - # Decide where the new wheel goes. - if dest_dir is None: - fd, newpath = tempfile.mkstemp(suffix='.whl', - prefix='wheel-update-', - dir=workdir) - os.close(fd) - else: - if not os.path.isdir(dest_dir): - raise DistlibException('Not a directory: %r' % dest_dir) - newpath = os.path.join(dest_dir, self.filename) - archive_paths = list(path_map.items()) - distinfo = os.path.join(workdir, info_dir) - info = distinfo, info_dir - self.write_records(info, workdir, archive_paths) - self.build_zip(newpath, archive_paths) - if dest_dir is None: - shutil.copyfile(newpath, pathname) - return modified - -def compatible_tags(): - """ - Return (pyver, abi, arch) tuples compatible with this Python. - """ - versions = [VER_SUFFIX] - major = VER_SUFFIX[0] - for minor in range(sys.version_info[1] - 1, - 1, -1): - versions.append(''.join([major, str(minor)])) - - abis = [] - for suffix, _, _ in imp.get_suffixes(): - if suffix.startswith('.abi'): - abis.append(suffix.split('.', 2)[1]) - abis.sort() - if ABI != 'none': - abis.insert(0, ABI) - abis.append('none') - result = [] - - arches = [ARCH] - if sys.platform == 'darwin': - m = re.match('(\w+)_(\d+)_(\d+)_(\w+)$', ARCH) - if m: - name, major, minor, arch = m.groups() - minor = int(minor) - matches = [arch] - if arch in ('i386', 'ppc'): - matches.append('fat') - if arch in ('i386', 'ppc', 'x86_64'): - matches.append('fat3') - if arch in ('ppc64', 'x86_64'): - matches.append('fat64') - if arch in ('i386', 'x86_64'): - matches.append('intel') - if arch in ('i386', 'x86_64', 'intel', 'ppc', 'ppc64'): - matches.append('universal') - while minor >= 0: - for match in matches: - s = '%s_%s_%s_%s' % (name, major, minor, match) - if s != ARCH: # already there - arches.append(s) - minor -= 1 - - # Most specific - our Python version, ABI and arch - for abi in abis: - for arch in arches: - result.append((''.join((IMP_PREFIX, versions[0])), abi, arch)) - - # where no ABI / arch dependency, but IMP_PREFIX dependency - for i, version in enumerate(versions): - result.append((''.join((IMP_PREFIX, version)), 'none', 'any')) - if i == 0: - result.append((''.join((IMP_PREFIX, version[0])), 'none', 'any')) - - # no IMP_PREFIX, ABI or arch dependency - for i, version in enumerate(versions): - result.append((''.join(('py', version)), 'none', 'any')) - if i == 0: - result.append((''.join(('py', version[0])), 'none', 'any')) - return set(result) - - -COMPATIBLE_TAGS = compatible_tags() - -del compatible_tags - - -def is_compatible(wheel, tags=None): - if not isinstance(wheel, Wheel): - wheel = Wheel(wheel) # assume it's a filename - result = False - if tags is None: - tags = COMPATIBLE_TAGS - for ver, abi, arch in tags: - if ver in wheel.pyver and abi in wheel.abi and arch in wheel.arch: - result = True - break - return result diff --git a/src/rez/utils/_version.py b/src/rez/utils/_version.py index 811d1c40a..b916dc06f 100644 --- a/src/rez/utils/_version.py +++ b/src/rez/utils/_version.py @@ -1,7 +1,7 @@ # Update this value to version up Rez. Do not place anything else in this file. -_rez_version = "2.35.0" +_rez_version = "2.36.0" try: from rez.vendor.version.version import Version From a3d53ead01d46b98f39d1938936d2e1bcf37a99a Mon Sep 17 00:00:00 2001 From: ajohns Date: Fri, 12 Jul 2019 09:22:35 +1000 Subject: [PATCH 2/9] -updated to latest virtualenv --- src/build_utils/virtualenv/LICENSE.txt | 2 +- src/build_utils/virtualenv/virtualenv.py | 3053 +++++++++-------- .../virtualenv/virtualenv_support/__init__.py | 0 .../pip-19.1.1-py2.py3-none-any.whl | Bin 0 -> 1360957 bytes .../setuptools-41.0.1-py2.py3-none-any.whl | Bin 0 -> 575966 bytes .../wheel-0.33.4-py2.py3-none-any.whl | Bin 0 -> 21524 bytes src/build_utils/virtualenv_old/LICENSE.txt | 22 + src/build_utils/virtualenv_old/__init__.py | 0 src/build_utils/virtualenv_old/virtualenv.py | 2342 +++++++++++++ .../pip-1.5.6-py2.py3-none-any.whl | Bin .../setuptools-3.6-py2.py3-none-any.whl | Bin 11 files changed, 4026 insertions(+), 1393 deletions(-) create mode 100644 src/build_utils/virtualenv/virtualenv_support/__init__.py create mode 100644 src/build_utils/virtualenv/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl create mode 100644 src/build_utils/virtualenv/virtualenv_support/setuptools-41.0.1-py2.py3-none-any.whl create mode 100644 src/build_utils/virtualenv/virtualenv_support/wheel-0.33.4-py2.py3-none-any.whl create mode 100644 src/build_utils/virtualenv_old/LICENSE.txt create mode 100644 src/build_utils/virtualenv_old/__init__.py create mode 100755 src/build_utils/virtualenv_old/virtualenv.py rename src/build_utils/{virtualenv => virtualenv_old}/virtualenv_support/pip-1.5.6-py2.py3-none-any.whl (100%) rename src/build_utils/{virtualenv => virtualenv_old}/virtualenv_support/setuptools-3.6-py2.py3-none-any.whl (100%) diff --git a/src/build_utils/virtualenv/LICENSE.txt b/src/build_utils/virtualenv/LICENSE.txt index 7e00d5d51..ab145001f 100644 --- a/src/build_utils/virtualenv/LICENSE.txt +++ b/src/build_utils/virtualenv/LICENSE.txt @@ -1,6 +1,6 @@ Copyright (c) 2007 Ian Bicking and Contributors Copyright (c) 2009 Ian Bicking, The Open Planning Project -Copyright (c) 2011-2014 The virtualenv developers +Copyright (c) 2011-2016 The virtualenv developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/src/build_utils/virtualenv/virtualenv.py b/src/build_utils/virtualenv/virtualenv.py index 0329fc98c..3ccbed6df 100755 --- a/src/build_utils/virtualenv/virtualenv.py +++ b/src/build_utils/virtualenv/virtualenv.py @@ -1,301 +1,241 @@ #!/usr/bin/env python -"""Create a "virtual" Python installation -""" - -__version__ = "1.11.6" -virtualenv_version = __version__ # legacy - +"""Create a "virtual" Python installation""" + +# fmt: off +import os # isort:skip +import sys # isort:skip + +# If we are running in a new interpreter to create a virtualenv, +# we do NOT want paths from our existing location interfering with anything, +# So we remove this file's directory from sys.path - most likely to be +# the previous interpreter's site-packages. Solves #705, #763, #779 +if os.environ.get("VIRTUALENV_INTERPRETER_RUNNING"): + for path in sys.path[:]: + if os.path.realpath(os.path.dirname(__file__)) == os.path.realpath(path): + sys.path.remove(path) +# fmt: on + +import ast import base64 -import sys -import os import codecs +import contextlib +import distutils.spawn +import distutils.sysconfig +import errno +import glob +import logging import optparse +import os import re import shutil -import logging +import struct +import subprocess +import sys import tempfile +import textwrap +import zipfile import zlib -import errno -import glob -import distutils.sysconfig from distutils.util import strtobool -import struct -import subprocess -import tarfile +from os.path import join -if sys.version_info < (2, 6): - print('ERROR: %s' % sys.exc_info()[1]) - print('ERROR: this script requires Python 2.6 or greater.') +try: + import ConfigParser +except ImportError: + # noinspection PyPep8Naming + import configparser as ConfigParser + +__version__ = "16.6.1" +virtualenv_version = __version__ # legacy +DEBUG = os.environ.get("_VIRTUALENV_DEBUG", None) == "1" +if sys.version_info < (2, 7): + print("ERROR: {}".format(sys.exc_info()[1])) + print("ERROR: this script requires Python 2.7 or greater.") sys.exit(101) +HERE = os.path.dirname(os.path.abspath(__file__)) +IS_ZIPAPP = os.path.isfile(HERE) + try: - set -except NameError: - from sets import Set as set -try: + # noinspection PyUnresolvedReferences,PyUnboundLocalVariable basestring except NameError: basestring = str -try: - import ConfigParser -except ImportError: - import configparser as ConfigParser - -join = os.path.join -py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1]) +PY_VERSION = "python{}.{}".format(sys.version_info[0], sys.version_info[1]) -is_jython = sys.platform.startswith('java') -is_pypy = hasattr(sys, 'pypy_version_info') -is_win = (sys.platform == 'win32') -is_cygwin = (sys.platform == 'cygwin') -is_darwin = (sys.platform == 'darwin') -abiflags = getattr(sys, 'abiflags', '') +IS_PYPY = hasattr(sys, "pypy_version_info") +IS_WIN = sys.platform == "win32" +IS_CYGWIN = sys.platform == "cygwin" +IS_DARWIN = sys.platform == "darwin" +ABI_FLAGS = getattr(sys, "abiflags", "") -user_dir = os.path.expanduser('~') -if is_win: - default_storage_dir = os.path.join(user_dir, 'virtualenv') +USER_DIR = os.path.expanduser("~") +if IS_WIN: + DEFAULT_STORAGE_DIR = os.path.join(USER_DIR, "virtualenv") else: - default_storage_dir = os.path.join(user_dir, '.virtualenv') -default_config_file = os.path.join(default_storage_dir, 'virtualenv.ini') + DEFAULT_STORAGE_DIR = os.path.join(USER_DIR, ".virtualenv") +DEFAULT_CONFIG_FILE = os.path.join(DEFAULT_STORAGE_DIR, "virtualenv.ini") -if is_pypy: - expected_exe = 'pypy' -elif is_jython: - expected_exe = 'jython' +if IS_PYPY: + EXPECTED_EXE = "pypy" else: - expected_exe = 'python' + EXPECTED_EXE = "python" # Return a mapping of version -> Python executable # Only provided for Windows, where the information in the registry is used -if not is_win: +if not IS_WIN: + def get_installed_pythons(): return {} + + else: try: import winreg except ImportError: + # noinspection PyUnresolvedReferences import _winreg as winreg def get_installed_pythons(): - python_core = winreg.CreateKey(winreg.HKEY_LOCAL_MACHINE, - "Software\\Python\\PythonCore") - i = 0 - versions = [] - while True: + final_exes = dict() + + # Grab exes from 32-bit registry view + exes = _get_installed_pythons_for_view("-32", winreg.KEY_WOW64_32KEY) + # Grab exes from 64-bit registry view + exes_64 = _get_installed_pythons_for_view("-64", winreg.KEY_WOW64_64KEY) + # Check if exes are unique + if set(exes.values()) != set(exes_64.values()): + exes.update(exes_64) + + # Create dict with all versions found + for version, bitness in sorted(exes): + exe = exes[(version, bitness)] + # Add minor version (X.Y-32 or X.Y-64) + final_exes[version + bitness] = exe + # Add minor extensionless version (X.Y); 3.2-64 wins over 3.2-32 + final_exes[version] = exe + # Add major version (X-32 or X-64) + final_exes[version[0] + bitness] = exe + # Add major extensionless version (X); 3.3-32 wins over 3.2-64 + final_exes[version[0]] = exe + + return final_exes + + def _get_installed_pythons_for_view(bitness, view): + exes = dict() + # If both system and current user installations are found for a + # particular Python version, the current user one is used + for key in (winreg.HKEY_LOCAL_MACHINE, winreg.HKEY_CURRENT_USER): try: - versions.append(winreg.EnumKey(python_core, i)) - i = i + 1 + python_core = winreg.OpenKey(key, "Software\\Python\\PythonCore", 0, view | winreg.KEY_READ) except WindowsError: - break - exes = dict() - for ver in versions: - path = winreg.QueryValue(python_core, "%s\\InstallPath" % ver) - exes[ver] = join(path, "python.exe") - - winreg.CloseKey(python_core) - - # Add the major versions - # Sort the keys, then repeatedly update the major version entry - # Last executable (i.e., highest version) wins with this approach - for ver in sorted(exes): - exes[ver[0]] = exes[ver] + # No registered Python installations + continue + i = 0 + while True: + try: + version = winreg.EnumKey(python_core, i) + i += 1 + try: + at_path = winreg.QueryValue(python_core, "{}\\InstallPath".format(version)) + except WindowsError: + continue + # Remove bitness from version + if version.endswith(bitness): + version = version[: -len(bitness)] + exes[(version, bitness)] = join(at_path, "python.exe") + except WindowsError: + break + winreg.CloseKey(python_core) return exes -REQUIRED_MODULES = ['os', 'posix', 'posixpath', 'nt', 'ntpath', 'genericpath', - 'fnmatch', 'locale', 'encodings', 'codecs', - 'stat', 'UserDict', 'readline', 'copy_reg', 'types', - 're', 'sre', 'sre_parse', 'sre_constants', 'sre_compile', - 'zlib'] - -REQUIRED_FILES = ['lib-dynload', 'config'] - -majver, minver = sys.version_info[:2] -if majver == 2: - if minver >= 6: - REQUIRED_MODULES.extend(['warnings', 'linecache', '_abcoll', 'abc']) - if minver >= 7: - REQUIRED_MODULES.extend(['_weakrefset']) - if minver <= 3: - REQUIRED_MODULES.extend(['sets', '__future__']) -elif majver == 3: + +REQUIRED_MODULES = [ + "os", + "posix", + "posixpath", + "nt", + "ntpath", + "genericpath", + "fnmatch", + "locale", + "encodings", + "codecs", + "stat", + "UserDict", + "readline", + "copy_reg", + "types", + "re", + "sre", + "sre_parse", + "sre_constants", + "sre_compile", + "zlib", +] + +REQUIRED_FILES = ["lib-dynload", "config"] + +MAJOR, MINOR = sys.version_info[:2] +if MAJOR == 2: + if MINOR >= 6: + REQUIRED_MODULES.extend(["warnings", "linecache", "_abcoll", "abc"]) + if MINOR >= 7: + REQUIRED_MODULES.extend(["_weakrefset"]) +elif MAJOR == 3: # Some extra modules are needed for Python 3, but different ones # for different versions. - REQUIRED_MODULES.extend(['_abcoll', 'warnings', 'linecache', 'abc', 'io', - '_weakrefset', 'copyreg', 'tempfile', 'random', - '__future__', 'collections', 'keyword', 'tarfile', - 'shutil', 'struct', 'copy', 'tokenize', 'token', - 'functools', 'heapq', 'bisect', 'weakref', - 'reprlib']) - if minver >= 2: - REQUIRED_FILES[-1] = 'config-%s' % majver - if minver >= 3: + REQUIRED_MODULES.extend( + [ + "_abcoll", + "warnings", + "linecache", + "abc", + "io", + "_weakrefset", + "copyreg", + "tempfile", + "random", + "__future__", + "collections", + "keyword", + "tarfile", + "shutil", + "struct", + "copy", + "tokenize", + "token", + "functools", + "heapq", + "bisect", + "weakref", + "reprlib", + ] + ) + if MINOR >= 2: + REQUIRED_FILES[-1] = "config-{}".format(MAJOR) + if MINOR >= 3: import sysconfig - platdir = sysconfig.get_config_var('PLATDIR') - REQUIRED_FILES.append(platdir) - # The whole list of 3.3 modules is reproduced below - the current - # uncommented ones are required for 3.3 as of now, but more may be - # added as 3.3 development continues. - REQUIRED_MODULES.extend([ - #"aifc", - #"antigravity", - #"argparse", - #"ast", - #"asynchat", - #"asyncore", - "base64", - #"bdb", - #"binhex", - #"bisect", - #"calendar", - #"cgi", - #"cgitb", - #"chunk", - #"cmd", - #"codeop", - #"code", - #"colorsys", - #"_compat_pickle", - #"compileall", - #"concurrent", - #"configparser", - #"contextlib", - #"cProfile", - #"crypt", - #"csv", - #"ctypes", - #"curses", - #"datetime", - #"dbm", - #"decimal", - #"difflib", - #"dis", - #"doctest", - #"dummy_threading", - "_dummy_thread", - #"email", - #"filecmp", - #"fileinput", - #"formatter", - #"fractions", - #"ftplib", - #"functools", - #"getopt", - #"getpass", - #"gettext", - #"glob", - #"gzip", - "hashlib", - #"heapq", - "hmac", - #"html", - #"http", - #"idlelib", - #"imaplib", - #"imghdr", - "imp", - "importlib", - #"inspect", - #"json", - #"lib2to3", - #"logging", - #"macpath", - #"macurl2path", - #"mailbox", - #"mailcap", - #"_markupbase", - #"mimetypes", - #"modulefinder", - #"multiprocessing", - #"netrc", - #"nntplib", - #"nturl2path", - #"numbers", - #"opcode", - #"optparse", - #"os2emxpath", - #"pdb", - #"pickle", - #"pickletools", - #"pipes", - #"pkgutil", - #"platform", - #"plat-linux2", - #"plistlib", - #"poplib", - #"pprint", - #"profile", - #"pstats", - #"pty", - #"pyclbr", - #"py_compile", - #"pydoc_data", - #"pydoc", - #"_pyio", - #"queue", - #"quopri", - #"reprlib", - "rlcompleter", - #"runpy", - #"sched", - #"shelve", - #"shlex", - #"smtpd", - #"smtplib", - #"sndhdr", - #"socket", - #"socketserver", - #"sqlite3", - #"ssl", - #"stringprep", - #"string", - #"_strptime", - #"subprocess", - #"sunau", - #"symbol", - #"symtable", - #"sysconfig", - #"tabnanny", - #"telnetlib", - #"test", - #"textwrap", - #"this", - #"_threading_local", - #"threading", - #"timeit", - #"tkinter", - #"tokenize", - #"token", - #"traceback", - #"trace", - #"tty", - #"turtledemo", - #"turtle", - #"unittest", - #"urllib", - #"uuid", - #"uu", - #"wave", - #"weakref", - #"webbrowser", - #"wsgiref", - #"xdrlib", - #"xml", - #"xmlrpc", - #"zipfile", - ]) - if minver >= 4: - REQUIRED_MODULES.extend([ - 'operator', - '_collections_abc', - '_bootlocale', - ]) - -if is_pypy: + + platform_dir = sysconfig.get_config_var("PLATDIR") + REQUIRED_FILES.append(platform_dir) + REQUIRED_MODULES.extend(["base64", "_dummy_thread", "hashlib", "hmac", "imp", "importlib", "rlcompleter"]) + if MINOR >= 4: + REQUIRED_MODULES.extend(["operator", "_collections_abc", "_bootlocale"]) + if MINOR >= 6: + REQUIRED_MODULES.extend(["enum"]) + +if IS_PYPY: # these are needed to correctly display the exceptions that may happen # during the bootstrap - REQUIRED_MODULES.extend(['traceback', 'linecache']) + REQUIRED_MODULES.extend(["traceback", "linecache"]) + + if MAJOR == 3: + # _functools is needed to import locale during stdio initialization and + # needs to be copied on PyPy because it's not built in + REQUIRED_MODULES.append("_functools") + class Logger(object): @@ -306,7 +246,7 @@ class Logger(object): DEBUG = logging.DEBUG INFO = logging.INFO - NOTIFY = (logging.INFO+logging.WARN)/2 + NOTIFY = (logging.INFO + logging.WARN) / 2 WARN = WARNING = logging.WARN ERROR = logging.ERROR FATAL = logging.FATAL @@ -321,63 +261,66 @@ def __init__(self, consumers): def debug(self, msg, *args, **kw): self.log(self.DEBUG, msg, *args, **kw) + def info(self, msg, *args, **kw): self.log(self.INFO, msg, *args, **kw) + def notify(self, msg, *args, **kw): self.log(self.NOTIFY, msg, *args, **kw) + def warn(self, msg, *args, **kw): self.log(self.WARN, msg, *args, **kw) + def error(self, msg, *args, **kw): self.log(self.ERROR, msg, *args, **kw) + def fatal(self, msg, *args, **kw): self.log(self.FATAL, msg, *args, **kw) + def log(self, level, msg, *args, **kw): if args: if kw: - raise TypeError( - "You may give positional or keyword arguments, not both") + raise TypeError("You may give positional or keyword arguments, not both") args = args or kw rendered = None for consumer_level, consumer in self.consumers: if self.level_matches(level, consumer_level): - if (self.in_progress_hanging - and consumer in (sys.stdout, sys.stderr)): + if self.in_progress_hanging and consumer in (sys.stdout, sys.stderr): self.in_progress_hanging = False - sys.stdout.write('\n') + print("") sys.stdout.flush() if rendered is None: if args: rendered = msg % args else: rendered = msg - rendered = ' '*self.indent + rendered - if hasattr(consumer, 'write'): - consumer.write(rendered+'\n') + rendered = " " * self.indent + rendered + if hasattr(consumer, "write"): + consumer.write(rendered + "\n") else: consumer(rendered) def start_progress(self, msg): - assert not self.in_progress, ( - "Tried to start_progress(%r) while in_progress %r" - % (msg, self.in_progress)) + assert not self.in_progress, "Tried to start_progress({!r}) while in_progress {!r}".format( + msg, self.in_progress + ) if self.level_matches(self.NOTIFY, self._stdout_level()): - sys.stdout.write(msg) + print(msg) sys.stdout.flush() self.in_progress_hanging = True else: self.in_progress_hanging = False self.in_progress = msg - def end_progress(self, msg='done.'): - assert self.in_progress, ( - "Tried to end_progress without start_progress") + def end_progress(self, msg="done."): + assert self.in_progress, "Tried to end_progress without start_progress" if self.stdout_level_matches(self.NOTIFY): if not self.in_progress_hanging: # Some message has been printed out since start_progress - sys.stdout.write('...' + self.in_progress + msg + '\n') + print("...{}{}".format(self.in_progress, msg)) sys.stdout.flush() else: - sys.stdout.write(msg + '\n') + print(msg) sys.stdout.flush() self.in_progress = None self.in_progress_hanging = False @@ -386,7 +329,7 @@ def show_progress(self): """If we are in a progress scope, and no log messages have been shown, write out another '.'""" if self.in_progress_hanging: - sys.stdout.write('.') + print(".") sys.stdout.flush() def stdout_level_matches(self, level): @@ -400,7 +343,8 @@ def _stdout_level(self): return level return self.FATAL - def level_matches(self, level, consumer_level): + @staticmethod + def level_matches(level, consumer_level): """ >>> l = Logger([]) >>> l.level_matches(3, 4) @@ -426,7 +370,7 @@ def level_matches(self, level, consumer_level): else: return level >= consumer_level - #@classmethod + @classmethod def level_for_integer(cls, level): levels = cls.LEVELS if level < 0: @@ -435,107 +379,123 @@ def level_for_integer(cls, level): return levels[-1] return levels[level] - level_for_integer = classmethod(level_for_integer) # create a silent logger just to prevent this from being undefined # will be overridden with requested verbosity main() is called. logger = Logger([(Logger.LEVELS[-1], sys.stdout)]) -def mkdir(path): - if not os.path.exists(path): - logger.info('Creating %s', path) - os.makedirs(path) + +def mkdir(at_path): + if not os.path.exists(at_path): + logger.info("Creating %s", at_path) + os.makedirs(at_path) else: - logger.info('Directory %s already exists', path) + logger.info("Directory %s already exists", at_path) + -def copyfileordir(src, dest, symlink=True): +def copy_file_or_folder(src, dest, symlink=True): if os.path.isdir(src): shutil.copytree(src, dest, symlink) else: shutil.copy2(src, dest) + def copyfile(src, dest, symlink=True): if not os.path.exists(src): # Some bad symlink in the src - logger.warn('Cannot find file %s (bad symlink)', src) + logger.warn("Cannot find file %s (bad symlink)", src) return if os.path.exists(dest): - logger.debug('File %s already exists', dest) + logger.debug("File %s already exists", dest) return if not os.path.exists(os.path.dirname(dest)): - logger.info('Creating parent directories for %s', os.path.dirname(dest)) + logger.info("Creating parent directories for %s", os.path.dirname(dest)) os.makedirs(os.path.dirname(dest)) - if not os.path.islink(src): - srcpath = os.path.abspath(src) - else: - srcpath = os.readlink(src) - if symlink and hasattr(os, 'symlink') and not is_win: - logger.info('Symlinking %s', dest) + if symlink and hasattr(os, "symlink") and not IS_WIN: + logger.info("Symlinking %s", dest) try: - os.symlink(srcpath, dest) + os.symlink(os.path.realpath(src), dest) except (OSError, NotImplementedError): - logger.info('Symlinking failed, copying to %s', dest) - copyfileordir(src, dest, symlink) + logger.info("Symlinking failed, copying to %s", dest) + copy_file_or_folder(src, dest, symlink) else: - logger.info('Copying to %s', dest) - copyfileordir(src, dest, symlink) + logger.info("Copying to %s", dest) + copy_file_or_folder(src, dest, symlink) + def writefile(dest, content, overwrite=True): if not os.path.exists(dest): - logger.info('Writing %s', dest) - f = open(dest, 'wb') - f.write(content.encode('utf-8')) - f.close() + logger.info("Writing %s", dest) + with open(dest, "wb") as f: + f.write(content.encode("utf-8")) return else: - f = open(dest, 'rb') - c = f.read() - f.close() + with open(dest, "rb") as f: + c = f.read() if c != content.encode("utf-8"): if not overwrite: - logger.notify('File %s exists with different content; not overwriting', dest) + logger.notify("File %s exists with different content; not overwriting", dest) return - logger.notify('Overwriting %s with new content', dest) - f = open(dest, 'wb') - f.write(content.encode('utf-8')) - f.close() + logger.notify("Overwriting %s with new content", dest) + with open(dest, "wb") as f: + f.write(content.encode("utf-8")) else: - logger.info('Content %s already in place', dest) + logger.info("Content %s already in place", dest) + -def rmtree(dir): - if os.path.exists(dir): - logger.notify('Deleting tree %s', dir) - shutil.rmtree(dir) +def rm_tree(folder): + if os.path.exists(folder): + logger.notify("Deleting tree %s", folder) + shutil.rmtree(folder) else: - logger.info('Do not need to delete %s; already gone', dir) + logger.info("Do not need to delete %s; already gone", folder) + def make_exe(fn): - if hasattr(os, 'chmod'): - oldmode = os.stat(fn).st_mode & 0xFFF # 0o7777 - newmode = (oldmode | 0x16D) & 0xFFF # 0o555, 0o7777 - os.chmod(fn, newmode) - logger.info('Changed mode of %s to %s', fn, oct(newmode)) - -def _find_file(filename, dirs): - for dir in reversed(dirs): - files = glob.glob(os.path.join(dir, filename)) + if hasattr(os, "chmod"): + old_mode = os.stat(fn).st_mode & 0xFFF # 0o7777 + new_mode = (old_mode | 0x16D) & 0xFFF # 0o555, 0o7777 + os.chmod(fn, new_mode) + logger.info("Changed mode of %s to %s", fn, oct(new_mode)) + + +def _find_file(filename, folders): + for folder in reversed(folders): + files = glob.glob(os.path.join(folder, filename)) if files and os.path.isfile(files[0]): return True, files[0] return False, filename -def file_search_dirs(): - here = os.path.dirname(os.path.abspath(__file__)) - dirs = ['.', here, - join(here, 'virtualenv_support')] - if os.path.splitext(os.path.dirname(__file__))[0] != 'virtualenv': - # Probably some boot script; just in case virtualenv is installed... + +@contextlib.contextmanager +def virtualenv_support_dirs(): + """Context manager yielding either [virtualenv_support_dir] or []""" + + # normal filesystem installation + if os.path.isdir(join(HERE, "virtualenv_support")): + yield [join(HERE, "virtualenv_support")] + elif IS_ZIPAPP: + tmpdir = tempfile.mkdtemp() + try: + with zipfile.ZipFile(HERE) as zipf: + for member in zipf.namelist(): + if os.path.dirname(member) == "virtualenv_support": + zipf.extract(member, tmpdir) + yield [join(tmpdir, "virtualenv_support")] + finally: + shutil.rmtree(tmpdir) + # probably a bootstrap script + elif os.path.splitext(os.path.dirname(__file__))[0] != "virtualenv": try: + # noinspection PyUnresolvedReferences import virtualenv except ImportError: - pass + yield [] else: - dirs.append(os.path.join(os.path.dirname(virtualenv.__file__), 'virtualenv_support')) - return [d for d in dirs if os.path.isdir(d)] + yield [join(os.path.dirname(virtualenv.__file__), "virtualenv_support")] + # we tried! + else: + yield [] class UpdatingDefaultsHelpFormatter(optparse.IndentedHelpFormatter): @@ -544,6 +504,7 @@ class UpdatingDefaultsHelpFormatter(optparse.IndentedHelpFormatter): the defaults before expanding them, allowing them to show up correctly in the help listing """ + def expand_default(self, option): if self.parser is not None: self.parser.update_defaults(self.parser.defaults) @@ -555,17 +516,19 @@ class ConfigOptionParser(optparse.OptionParser): Custom option parser which updates its defaults by checking the configuration files and environmental variables """ + def __init__(self, *args, **kwargs): self.config = ConfigParser.RawConfigParser() self.files = self.get_config_files() self.config.read(self.files) optparse.OptionParser.__init__(self, *args, **kwargs) - def get_config_files(self): - config_file = os.environ.get('VIRTUALENV_CONFIG_FILE', False) + @staticmethod + def get_config_files(): + config_file = os.environ.get("VIRTUALENV_CONFIG_FILE", False) if config_file and os.path.exists(config_file): return [config_file] - return [default_config_file] + return [DEFAULT_CONFIG_FILE] def update_defaults(self, defaults): """ @@ -576,33 +539,33 @@ def update_defaults(self, defaults): # Then go and look for the other sources of configuration: config = {} # 1. config files - config.update(dict(self.get_config_section('virtualenv'))) + config.update(dict(self.get_config_section("virtualenv"))) # 2. environmental variables config.update(dict(self.get_environ_vars())) # Then set the options with those values for key, val in config.items(): - key = key.replace('_', '-') - if not key.startswith('--'): - key = '--%s' % key # only prefer long opts + key = key.replace("_", "-") + if not key.startswith("--"): + key = "--{}".format(key) # only prefer long opts option = self.get_option(key) if option is not None: # ignore empty values if not val: continue # handle multiline configs - if option.action == 'append': + if option.action == "append": val = val.split() else: option.nargs = 1 - if option.action == 'store_false': + if option.action == "store_false": val = not strtobool(val) - elif option.action in ('store_true', 'count'): + elif option.action in ("store_true", "count"): val = strtobool(val) try: val = option.convert_value(key, val) except optparse.OptionValueError: e = sys.exc_info()[1] - print("An error occured during configuration: %s" % e) + print("An error occurred during configuration: {!r}".format(e)) sys.exit(3) defaults[option.dest] = val return defaults @@ -615,17 +578,17 @@ def get_config_section(self, name): return self.config.items(name) return [] - def get_environ_vars(self, prefix='VIRTUALENV_'): + def get_environ_vars(self, prefix="VIRTUALENV_"): """ Returns a generator with all environmental vars with prefix VIRTUALENV """ for key, val in os.environ.items(): if key.startswith(prefix): - yield (key.replace(prefix, '').lower(), val) + yield (key.replace(prefix, "").lower(), val) def get_default_values(self): """ - Overridding to make updating the defaults after instantiation of + Overriding to make updating the defaults after instantiation of the option parser possible, update_defaults() does the dirty work. """ if not self.process_default_values: @@ -643,273 +606,364 @@ def get_default_values(self): def main(): parser = ConfigOptionParser( - version=virtualenv_version, - usage="%prog [OPTIONS] DEST_DIR", - formatter=UpdatingDefaultsHelpFormatter()) + version=virtualenv_version, usage="%prog [OPTIONS] DEST_DIR", formatter=UpdatingDefaultsHelpFormatter() + ) parser.add_option( - '-v', '--verbose', - action='count', - dest='verbose', - default=0, - help="Increase verbosity.") + "-v", "--verbose", action="count", dest="verbose", default=5 if DEBUG else 0, help="Increase verbosity." + ) - parser.add_option( - '-q', '--quiet', - action='count', - dest='quiet', - default=0, - help='Decrease verbosity.') + parser.add_option("-q", "--quiet", action="count", dest="quiet", default=0, help="Decrease verbosity.") parser.add_option( - '-p', '--python', - dest='python', - metavar='PYTHON_EXE', - help='The Python interpreter to use, e.g., --python=python2.5 will use the python2.5 ' - 'interpreter to create the new environment. The default is the interpreter that ' - 'virtualenv was installed with (%s)' % sys.executable) + "-p", + "--python", + dest="python", + metavar="PYTHON_EXE", + help="The Python interpreter to use, e.g., --python=python3.5 will use the python3.5 " + "interpreter to create the new environment. The default is the interpreter that " + "virtualenv was installed with ({})".format(sys.executable), + ) parser.add_option( - '--clear', - dest='clear', - action='store_true', - help="Clear out the non-root install and start from scratch.") + "--clear", dest="clear", action="store_true", help="Clear out the non-root install and start from scratch." + ) parser.set_defaults(system_site_packages=False) parser.add_option( - '--no-site-packages', - dest='system_site_packages', - action='store_false', + "--no-site-packages", + dest="system_site_packages", + action="store_false", help="DEPRECATED. Retained only for backward compatibility. " - "Not having access to global site-packages is now the default behavior.") + "Not having access to global site-packages is now the default behavior.", + ) parser.add_option( - '--system-site-packages', - dest='system_site_packages', - action='store_true', - help="Give the virtual environment access to the global site-packages.") + "--system-site-packages", + dest="system_site_packages", + action="store_true", + help="Give the virtual environment access to the global site-packages.", + ) parser.add_option( - '--always-copy', - dest='symlink', - action='store_false', + "--always-copy", + dest="symlink", + action="store_false", default=True, - help="Always copy files rather than symlinking.") + help="Always copy files rather than symlinking.", + ) parser.add_option( - '--unzip-setuptools', - dest='unzip_setuptools', - action='store_true', - help="Unzip Setuptools when installing it.") + "--relocatable", + dest="relocatable", + action="store_true", + help="Make an EXISTING virtualenv environment relocatable. " + "This fixes up scripts and makes all .pth files relative.", + ) parser.add_option( - '--relocatable', - dest='relocatable', - action='store_true', - help='Make an EXISTING virtualenv environment relocatable. ' - 'This fixes up scripts and makes all .pth files relative.') + "--no-setuptools", + dest="no_setuptools", + action="store_true", + help="Do not install setuptools in the new virtualenv.", + ) - parser.add_option( - '--no-setuptools', - dest='no_setuptools', - action='store_true', - help='Do not install setuptools (or pip) in the new virtualenv.') + parser.add_option("--no-pip", dest="no_pip", action="store_true", help="Do not install pip in the new virtualenv.") parser.add_option( - '--no-pip', - dest='no_pip', - action='store_true', - help='Do not install pip in the new virtualenv.') + "--no-wheel", dest="no_wheel", action="store_true", help="Do not install wheel in the new virtualenv." + ) - default_search_dirs = file_search_dirs() parser.add_option( - '--extra-search-dir', + "--extra-search-dir", dest="search_dirs", action="append", - metavar='DIR', - default=default_search_dirs, - help="Directory to look for setuptools/pip distributions in. " - "This option can be used multiple times.") + metavar="DIR", + default=[], + help="Directory to look for setuptools/pip distributions in. " "This option can be used multiple times.", + ) parser.add_option( - '--never-download', - dest="never_download", - action="store_true", + "--download", + dest="download", default=True, - help="DEPRECATED. Retained only for backward compatibility. This option has no effect. " - "Virtualenv never downloads pip or setuptools.") + action="store_true", + help="Download pre-installed packages from PyPI.", + ) parser.add_option( - '--prompt', - dest='prompt', - help='Provides an alternative prompt prefix for this environment.') + "--no-download", + "--never-download", + dest="download", + action="store_false", + help="Do not download pre-installed packages from PyPI.", + ) + + parser.add_option("--prompt", dest="prompt", help="Provides an alternative prompt prefix for this environment.") + + parser.add_option( + "--setuptools", + dest="setuptools", + action="store_true", + help="DEPRECATED. Retained only for backward compatibility. This option has no effect.", + ) parser.add_option( - '--setuptools', - dest='setuptools', - action='store_true', - help="DEPRECATED. Retained only for backward compatibility. This option has no effect.") + "--distribute", + dest="distribute", + action="store_true", + help="DEPRECATED. Retained only for backward compatibility. This option has no effect.", + ) parser.add_option( - '--distribute', - dest='distribute', - action='store_true', - help="DEPRECATED. Retained only for backward compatibility. This option has no effect.") + "--unzip-setuptools", + action="store_true", + help="DEPRECATED. Retained only for backward compatibility. This option has no effect.", + ) - if 'extend_parser' in globals(): - extend_parser(parser) + if "extend_parser" in globals(): + # noinspection PyUnresolvedReferences + extend_parser(parser) # noqa: F821 options, args = parser.parse_args() global logger - if 'adjust_options' in globals(): - adjust_options(options, args) + if "adjust_options" in globals(): + # noinspection PyUnresolvedReferences + adjust_options(options, args) # noqa: F821 verbosity = options.verbose - options.quiet logger = Logger([(Logger.level_for_integer(2 - verbosity), sys.stdout)]) - if options.python and not os.environ.get('VIRTUALENV_INTERPRETER_RUNNING'): + def should_reinvoke(options): + """Do we need to reinvoke ourself?""" + # Did the user specify the --python option? + if options.python and not os.environ.get("VIRTUALENV_INTERPRETER_RUNNING"): + interpreter = resolve_interpreter(options.python) + if interpreter != sys.executable: + # The user specified a different interpreter, so we have to reinvoke. + return interpreter + + # At this point, we know the user wants to use sys.executable to create the + # virtual environment. But on Windows, sys.executable may be a venv redirector, + # in which case we still need to locate the underlying actual interpreter, and + # reinvoke using that. + if IS_WIN: + # OK. Now things get really fun... + # + # If we are running from a venv, with a redirector, then what happens is as + # follows: + # + # 1. The redirector sets __PYVENV_LAUNCHER__ in the environment to point + # to the redirector executable. + # 2. The redirector launches the "base" Python (from the home value in + # pyvenv.cfg). + # 3. The base Python executable sees __PYVENV_LAUNCHER__ in the environment + # and sets sys.executable to that value. + # 4. If site.py gets run, it sees __PYVENV_LAUNCHER__, and sets + # sys._base_executable to _winapi.GetModuleFileName(0) and removes + # __PYVENV_LAUNCHER__. + # + # Unfortunately, that final step (site.py) may not happen. There are 2 key + # times when that is the case: + # + # 1. Python 3.7.2, which had the redirector but not the site.py code. + # 2. Running a venv from a virtualenv, which uses virtualenv's custom + # site.py. + # + # So, we check for sys._base_executable, but if it's not present and yet we + # hand __PYVENV_LAUNCHER__, we do what site.py would have done and get our + # interpreter from GetModuleFileName(0). We also remove __PYVENV_LAUNCHER__ + # from the environment, to avoid loops (actually, mainly because site.py + # does so, and my head hurts enough buy now that I just want to be safe!) + + # Phew. + + if hasattr(sys, "_base_executable"): + return sys._base_executable + + if "__PYVENV_LAUNCHER__" in os.environ: + import _winapi + + del os.environ["__PYVENV_LAUNCHER__"] + return _winapi.GetModuleFileName(0) + + # We don't need to reinvoke + return None + + interpreter = should_reinvoke(options) + if interpreter is None: + # We don't need to reinvoke - if the user asked us to, tell them why we + # aren't. + if options.python: + logger.warn("Already using interpreter {}".format(sys.executable)) + else: env = os.environ.copy() - interpreter = resolve_interpreter(options.python) - if interpreter == sys.executable: - logger.warn('Already using interpreter %s' % interpreter) - else: - logger.notify('Running virtualenv with interpreter %s' % interpreter) - env['VIRTUALENV_INTERPRETER_RUNNING'] = 'true' - file = __file__ - if file.endswith('.pyc'): - file = file[:-1] - popen = subprocess.Popen([interpreter, file] + sys.argv[1:], env=env) - raise SystemExit(popen.wait()) + logger.notify("Running virtualenv with interpreter {}".format(interpreter)) + env["VIRTUALENV_INTERPRETER_RUNNING"] = "true" + # Remove the variable __PYVENV_LAUNCHER__ if it's present, as it causes the + # interpreter to redirect back to the virtual environment. + if "__PYVENV_LAUNCHER__" in env: + del env["__PYVENV_LAUNCHER__"] + file = __file__ + if file.endswith(".pyc"): + file = file[:-1] + elif IS_ZIPAPP: + file = HERE + sub_process_call = subprocess.Popen([interpreter, file] + sys.argv[1:], env=env) + raise SystemExit(sub_process_call.wait()) if not args: - print('You must provide a DEST_DIR') + print("You must provide a DEST_DIR") parser.print_help() sys.exit(2) if len(args) > 1: - print('There must be only one argument: DEST_DIR (you gave %s)' % ( - ' '.join(args))) + print("There must be only one argument: DEST_DIR (you gave {})".format(" ".join(args))) parser.print_help() sys.exit(2) home_dir = args[0] - if os.environ.get('WORKING_ENV'): - logger.fatal('ERROR: you cannot run virtualenv while in a workingenv') - logger.fatal('Please deactivate your workingenv, then re-run this script') + if os.path.exists(home_dir) and os.path.isfile(home_dir): + logger.fatal("ERROR: File already exists and is not a directory.") + logger.fatal("Please provide a different path or delete the file.") sys.exit(3) - if 'PYTHONHOME' in os.environ: - logger.warn('PYTHONHOME is set. You *must* activate the virtualenv before using it') - del os.environ['PYTHONHOME'] + if os.pathsep in home_dir: + logger.fatal("ERROR: target path contains the operating system path separator '{}'".format(os.pathsep)) + logger.fatal("This is not allowed as would make the activation scripts unusable.".format(os.pathsep)) + sys.exit(3) + + if os.environ.get("WORKING_ENV"): + logger.fatal("ERROR: you cannot run virtualenv while in a working env") + logger.fatal("Please deactivate your working env, then re-run this script") + sys.exit(3) + + if "PYTHONHOME" in os.environ: + logger.warn("PYTHONHOME is set. You *must* activate the virtualenv before using it") + del os.environ["PYTHONHOME"] if options.relocatable: make_environment_relocatable(home_dir) return - if not options.never_download: - logger.warn('The --never-download option is for backward compatibility only.') - logger.warn('Setting it to false is no longer supported, and will be ignored.') - - create_environment(home_dir, - site_packages=options.system_site_packages, - clear=options.clear, - unzip_setuptools=options.unzip_setuptools, - prompt=options.prompt, - search_dirs=options.search_dirs, - never_download=True, - no_setuptools=options.no_setuptools, - no_pip=options.no_pip, - symlink=options.symlink) - if 'after_install' in globals(): - after_install(options, home_dir) - -def call_subprocess(cmd, show_stdout=True, - filter_stdout=None, cwd=None, - raise_on_returncode=True, extra_env=None, - remove_from_env=None): + with virtualenv_support_dirs() as search_dirs: + create_environment( + home_dir, + site_packages=options.system_site_packages, + clear=options.clear, + prompt=options.prompt, + search_dirs=search_dirs + options.search_dirs, + download=options.download, + no_setuptools=options.no_setuptools, + no_pip=options.no_pip, + no_wheel=options.no_wheel, + symlink=options.symlink, + ) + if "after_install" in globals(): + # noinspection PyUnresolvedReferences + after_install(options, home_dir) # noqa: F821 + + +def call_subprocess( + cmd, + show_stdout=True, + filter_stdout=None, + cwd=None, + raise_on_return_code=True, + extra_env=None, + remove_from_env=None, + stdin=None, +): cmd_parts = [] for part in cmd: if len(part) > 45: - part = part[:20]+"..."+part[-20:] - if ' ' in part or '\n' in part or '"' in part or "'" in part: - part = '"%s"' % part.replace('"', '\\"') - if hasattr(part, 'decode'): + part = part[:20] + "..." + part[-20:] + if " " in part or "\n" in part or '"' in part or "'" in part: + part = '"{}"'.format(part.replace('"', '\\"')) + if hasattr(part, "decode"): try: part = part.decode(sys.getdefaultencoding()) except UnicodeDecodeError: part = part.decode(sys.getfilesystemencoding()) cmd_parts.append(part) - cmd_desc = ' '.join(cmd_parts) + cmd_desc = " ".join(cmd_parts) if show_stdout: stdout = None else: stdout = subprocess.PIPE - logger.debug("Running command %s" % cmd_desc) + logger.debug("Running command {}".format(cmd_desc)) if extra_env or remove_from_env: env = os.environ.copy() if extra_env: env.update(extra_env) if remove_from_env: - for varname in remove_from_env: - env.pop(varname, None) + for var_name in remove_from_env: + env.pop(var_name, None) else: env = None try: proc = subprocess.Popen( - cmd, stderr=subprocess.STDOUT, stdin=None, stdout=stdout, - cwd=cwd, env=env) + cmd, + stderr=subprocess.STDOUT, + stdin=None if stdin is None else subprocess.PIPE, + stdout=stdout, + cwd=cwd, + env=env, + ) except Exception: e = sys.exc_info()[1] - logger.fatal( - "Error %s while executing command %s" % (e, cmd_desc)) + logger.fatal("Error {} while executing command {}".format(e, cmd_desc)) raise all_output = [] if stdout is not None: - stdout = proc.stdout + if stdin is not None: + with proc.stdin: + proc.stdin.write(stdin) + encoding = sys.getdefaultencoding() fs_encoding = sys.getfilesystemencoding() - while 1: - line = stdout.readline() - try: - line = line.decode(encoding) - except UnicodeDecodeError: - line = line.decode(fs_encoding) - if not line: - break - line = line.rstrip() - all_output.append(line) - if filter_stdout: - level = filter_stdout(line) - if isinstance(level, tuple): - level, line = level - logger.log(level, line) - if not logger.stdout_level_matches(level): - logger.show_progress() - else: - logger.info(line) + with proc.stdout as stdout: + while 1: + line = stdout.readline() + try: + line = line.decode(encoding) + except UnicodeDecodeError: + line = line.decode(fs_encoding) + if not line: + break + line = line.rstrip() + all_output.append(line) + if filter_stdout: + level = filter_stdout(line) + if isinstance(level, tuple): + level, line = level + logger.log(level, line) + if not logger.stdout_level_matches(level): + logger.show_progress() + else: + logger.info(line) else: - proc.communicate() + proc.communicate(stdin) proc.wait() if proc.returncode: - if raise_on_returncode: + if raise_on_return_code: if all_output: - logger.notify('Complete output from command %s:' % cmd_desc) - logger.notify('\n'.join(all_output) + '\n----------------------------------------') - raise OSError( - "Command %s failed with error code %s" - % (cmd_desc, proc.returncode)) + logger.notify("Complete output from command {}:".format(cmd_desc)) + logger.notify("\n".join(all_output) + "\n----------------------------------------") + raise OSError("Command {} failed with error code {}".format(cmd_desc, proc.returncode)) else: - logger.warn( - "Command %s had error code %s" - % (cmd_desc, proc.returncode)) + logger.warn("Command {} had error code {}".format(cmd_desc, proc.returncode)) + return all_output + def filter_install_output(line): - if line.strip().startswith('running'): + if line.strip().startswith("running"): return Logger.INFO return Logger.DEBUG + def find_wheels(projects, search_dirs): """Find wheels from which we can import PROJECTS. @@ -926,48 +980,148 @@ def find_wheels(projects, search_dirs): for dirname in search_dirs: # This relies on only having "universal" wheels available. # The pattern could be tightened to require -py2.py3-none-any.whl. - files = glob.glob(os.path.join(dirname, project + '-*.whl')) + files = glob.glob(os.path.join(dirname, project + "-*.whl")) if files: wheels.append(os.path.abspath(files[0])) break else: # We're out of luck, so quit with a suitable error - logger.fatal('Cannot find a wheel for %s' % (project,)) + logger.fatal("Cannot find a wheel for {}".format(project)) return wheels -def install_wheel(project_names, py_executable, search_dirs=None): + +def install_wheel(project_names, py_executable, search_dirs=None, download=False): if search_dirs is None: - search_dirs = file_search_dirs() + search_dirs_context = virtualenv_support_dirs + else: - wheels = find_wheels(['setuptools', 'pip'], search_dirs) - pythonpath = os.pathsep.join(wheels) - findlinks = ' '.join(search_dirs) + @contextlib.contextmanager + def search_dirs_context(): + yield search_dirs - cmd = [ - py_executable, '-c', - 'import sys, pip; sys.exit(pip.main(["install", "--ignore-installed"] + sys.argv[1:]))', - ] + project_names - logger.start_progress('Installing %s...' % (', '.join(project_names))) - logger.indent += 2 + with search_dirs_context() as search_dirs: + _install_wheel_with_search_dir(download, project_names, py_executable, search_dirs) + + +def _install_wheel_with_search_dir(download, project_names, py_executable, search_dirs): + wheels = find_wheels(["setuptools", "pip"], search_dirs) + python_path = os.pathsep.join(wheels) + + # PIP_FIND_LINKS uses space as the path separator and thus cannot have paths + # with spaces in them. Convert any of those to local file:// URL form. try: - call_subprocess(cmd, show_stdout=False, - extra_env = { - 'PYTHONPATH': pythonpath, - 'PIP_FIND_LINKS': findlinks, - 'PIP_USE_WHEEL': '1', - 'PIP_PRE': '1', - 'PIP_NO_INDEX': '1' - } + from urlparse import urljoin + from urllib import pathname2url + except ImportError: + from urllib.parse import urljoin + from urllib.request import pathname2url + + def space_path2url(p): + if " " not in p: + return p + return urljoin("file:", pathname2url(os.path.abspath(p))) + + find_links = " ".join(space_path2url(d) for d in search_dirs) + + extra_args = ["--ignore-installed"] + if DEBUG: + extra_args.append("-v") + + config = _pip_config(py_executable, python_path) + defined_cert = bool(config.get("install.cert") or config.get(":env:.cert") or config.get("global.cert")) + + script = textwrap.dedent( + """ + import sys + import pkgutil + import tempfile + import os + + defined_cert = {defined_cert} + + try: + from pip._internal import main as _main + cert_data = pkgutil.get_data("pip._vendor.certifi", "cacert.pem") + except ImportError: + from pip import main as _main + cert_data = pkgutil.get_data("pip._vendor.requests", "cacert.pem") + except IOError: + cert_data = None + + if not defined_cert and cert_data is not None: + cert_file = tempfile.NamedTemporaryFile(delete=False) + cert_file.write(cert_data) + cert_file.close() + else: + cert_file = None + + try: + args = ["install"] + [{extra_args}] + if cert_file is not None: + args += ["--cert", cert_file.name] + args += sys.argv[1:] + + sys.exit(_main(args)) + finally: + if cert_file is not None: + os.remove(cert_file.name) + """.format( + defined_cert=defined_cert, extra_args=", ".join(repr(i) for i in extra_args) ) + ).encode("utf8") + + cmd = [py_executable, "-"] + project_names + logger.start_progress("Installing {}...".format(", ".join(project_names))) + logger.indent += 2 + + env = { + "PYTHONPATH": python_path, + "PIP_FIND_LINKS": find_links, + "PIP_USE_WHEEL": "1", + "PIP_ONLY_BINARY": ":all:", + "PIP_USER": "0", + "PIP_NO_INPUT": "1", + } + + if not download: + env["PIP_NO_INDEX"] = "1" + + try: + call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=script) finally: logger.indent -= 2 logger.end_progress() -def create_environment(home_dir, site_packages=False, clear=False, - unzip_setuptools=False, - prompt=None, search_dirs=None, never_download=False, - no_setuptools=False, no_pip=False, symlink=True): + +def _pip_config(py_executable, python_path): + cmd = [py_executable, "-m", "pip", "config", "list"] + config = {} + for line in call_subprocess( + cmd, + show_stdout=False, + extra_env={"PYTHONPATH": python_path}, + remove_from_env=["PIP_VERBOSE", "PIP_QUIET"], + raise_on_return_code=False, + ): + key, _, value = line.partition("=") + if value: + config[key] = ast.literal_eval(value) + return config + + +def create_environment( + home_dir, + site_packages=False, + clear=False, + prompt=None, + search_dirs=None, + download=False, + no_setuptools=False, + no_pip=False, + no_wheel=False, + symlink=True, +): """ Creates a new environment in ``home_dir``. @@ -979,150 +1133,243 @@ def create_environment(home_dir, site_packages=False, clear=False, """ home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir) - py_executable = os.path.abspath(install_python( - home_dir, lib_dir, inc_dir, bin_dir, - site_packages=site_packages, clear=clear, symlink=symlink)) + py_executable = os.path.abspath( + install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages=site_packages, clear=clear, symlink=symlink) + ) install_distutils(home_dir) + to_install = [] + if not no_setuptools: - to_install = ['setuptools'] - if not no_pip: - to_install.append('pip') - install_wheel(to_install, py_executable, search_dirs) + to_install.append("setuptools") + + if not no_pip: + to_install.append("pip") + + if not no_wheel: + to_install.append("wheel") + + if to_install: + install_wheel(to_install, py_executable, search_dirs, download=download) install_activate(home_dir, bin_dir, prompt) + install_python_config(home_dir, bin_dir, prompt) + + def is_executable_file(fpath): - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) + return os.path.isfile(fpath) and is_executable(fpath) -def path_locations(home_dir): + +def path_locations(home_dir, dry_run=False): """Return the path locations for the environment (where libraries are, where scripts go, etc)""" + home_dir = os.path.abspath(home_dir) + lib_dir, inc_dir, bin_dir = None, None, None # XXX: We'd use distutils.sysconfig.get_python_inc/lib but its # prefix arg is broken: http://bugs.python.org/issue3386 - if is_win: + if IS_WIN: # Windows has lots of problems with executables with spaces in # the name; this function will remove them (using the ~1 # format): - mkdir(home_dir) - if ' ' in home_dir: + if not dry_run: + mkdir(home_dir) + if " " in home_dir: import ctypes - GetShortPathName = ctypes.windll.kernel32.GetShortPathNameW - size = max(len(home_dir)+1, 256) + + get_short_path_name = ctypes.windll.kernel32.GetShortPathNameW + size = max(len(home_dir) + 1, 256) buf = ctypes.create_unicode_buffer(size) try: + # noinspection PyUnresolvedReferences u = unicode except NameError: u = str - ret = GetShortPathName(u(home_dir), buf, size) + ret = get_short_path_name(u(home_dir), buf, size) if not ret: - print('Error: the path "%s" has a space in it' % home_dir) - print('We could not determine the short pathname for it.') - print('Exiting.') + print('Error: the path "{}" has a space in it'.format(home_dir)) + print("We could not determine the short pathname for it.") + print("Exiting.") sys.exit(3) home_dir = str(buf.value) - lib_dir = join(home_dir, 'Lib') - inc_dir = join(home_dir, 'Include') - bin_dir = join(home_dir, 'Scripts') - if is_jython: - lib_dir = join(home_dir, 'Lib') - inc_dir = join(home_dir, 'Include') - bin_dir = join(home_dir, 'bin') - elif is_pypy: + lib_dir = join(home_dir, "Lib") + inc_dir = join(home_dir, "Include") + bin_dir = join(home_dir, "Scripts") + elif IS_PYPY: lib_dir = home_dir - inc_dir = join(home_dir, 'include') - bin_dir = join(home_dir, 'bin') - elif not is_win: - lib_dir = join(home_dir, 'lib', py_version) - multiarch_exec = '/usr/bin/multiarch-platform' - if is_executable_file(multiarch_exec): - # In Mageia (2) and Mandriva distros the include dir must be like: - # virtualenv/include/multiarch-x86_64-linux/python2.7 - # instead of being virtualenv/include/python2.7 - p = subprocess.Popen(multiarch_exec, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - stdout, stderr = p.communicate() - # stdout.strip is needed to remove newline character - inc_dir = join(home_dir, 'include', stdout.strip(), py_version + abiflags) - else: - inc_dir = join(home_dir, 'include', py_version + abiflags) - bin_dir = join(home_dir, 'bin') + inc_dir = join(home_dir, "include") + bin_dir = join(home_dir, "bin") + elif not IS_WIN: + lib_dir = join(home_dir, "lib", PY_VERSION) + inc_dir = join(home_dir, "include", PY_VERSION + ABI_FLAGS) + bin_dir = join(home_dir, "bin") return home_dir, lib_dir, inc_dir, bin_dir def change_prefix(filename, dst_prefix): prefixes = [sys.prefix] - if is_darwin: - prefixes.extend(( - os.path.join("/Library/Python", sys.version[:3], "site-packages"), - os.path.join(sys.prefix, "Extras", "lib", "python"), - os.path.join("~", "Library", "Python", sys.version[:3], "site-packages"), - # Python 2.6 no-frameworks - os.path.join("~", ".local", "lib","python", sys.version[:3], "site-packages"), - # System Python 2.7 on OSX Mountain Lion - os.path.join("~", "Library", "Python", sys.version[:3], "lib", "python", "site-packages"))) - - if hasattr(sys, 'real_prefix'): + if IS_DARWIN: + prefixes.extend( + ( + os.path.join("/Library/Python", sys.version[:3], "site-packages"), + os.path.join(sys.prefix, "Extras", "lib", "python"), + os.path.join("~", "Library", "Python", sys.version[:3], "site-packages"), + # Python 2.6 no-frameworks + os.path.join("~", ".local", "lib", "python", sys.version[:3], "site-packages"), + # System Python 2.7 on OSX Mountain Lion + os.path.join("~", "Library", "Python", sys.version[:3], "lib", "python", "site-packages"), + ) + ) + + if hasattr(sys, "real_prefix"): prefixes.append(sys.real_prefix) - if hasattr(sys, 'base_prefix'): + if hasattr(sys, "base_prefix"): prefixes.append(sys.base_prefix) prefixes = list(map(os.path.expanduser, prefixes)) prefixes = list(map(os.path.abspath, prefixes)) # Check longer prefixes first so we don't split in the middle of a filename prefixes = sorted(prefixes, key=len, reverse=True) filename = os.path.abspath(filename) + # On Windows, make sure drive letter is uppercase + if IS_WIN and filename[0] in "abcdefghijklmnopqrstuvwxyz": + filename = filename[0].upper() + filename[1:] + for i, prefix in enumerate(prefixes): + if IS_WIN and prefix[0] in "abcdefghijklmnopqrstuvwxyz": + prefixes[i] = prefix[0].upper() + prefix[1:] for src_prefix in prefixes: if filename.startswith(src_prefix): - _, relpath = filename.split(src_prefix, 1) - if src_prefix != os.sep: # sys.prefix == "/" - assert relpath[0] == os.sep - relpath = relpath[1:] - return join(dst_prefix, relpath) - assert False, "Filename %s does not start with any of these prefixes: %s" % \ - (filename, prefixes) + _, relative_path = filename.split(src_prefix, 1) + if src_prefix != os.sep: # sys.prefix == "/" + assert relative_path[0] == os.sep + relative_path = relative_path[1:] + return join(dst_prefix, relative_path) + assert False, "Filename {} does not start with any of these prefixes: {}".format(filename, prefixes) + + +def find_module_filename(modname): + + if sys.version_info < (3, 4): + # noinspection PyDeprecation + import imp + + try: + file_handler, filepath, _ = imp.find_module(modname) + except ImportError: + return None + else: + if file_handler is not None: + file_handler.close() + return filepath + else: + import importlib.util + + if sys.version_info < (3, 5): + + def find_spec(modname): + # noinspection PyDeprecation + loader = importlib.find_loader(modname) + if loader is None: + return None + else: + return importlib.util.spec_from_loader(modname, loader) + + else: + find_spec = importlib.util.find_spec + + spec = find_spec(modname) + if spec is None: + return None + if not os.path.exists(spec.origin): + # https://bitbucket.org/pypy/pypy/issues/2944/origin-for-several-builtin-modules + # on pypy3, some builtin modules have a bogus build-time file path, ignore them + return None + filepath = spec.origin + # https://www.python.org/dev/peps/pep-3147/#file guarantee to be non-cached + if os.path.basename(filepath) == "__init__.py": + filepath = os.path.dirname(filepath) + return filepath + def copy_required_modules(dst_prefix, symlink): - import imp - # If we are running under -p, we need to remove the current - # directory from sys.path temporarily here, so that we - # definitely get the modules from the site directory of - # the interpreter we are running under, not the one - # virtualenv.py is installed under (which might lead to py2/py3 - # incompatibility issues) - _prev_sys_path = sys.path - if os.environ.get('VIRTUALENV_INTERPRETER_RUNNING'): - sys.path = sys.path[1:] - try: - for modname in REQUIRED_MODULES: - if modname in sys.builtin_module_names: - logger.info("Ignoring built-in bootstrap module: %s" % modname) - continue - try: - f, filename, _ = imp.find_module(modname) - except ImportError: - logger.info("Cannot import bootstrap module: %s" % modname) + for modname in REQUIRED_MODULES: + if modname in sys.builtin_module_names: + logger.info("Ignoring built-in bootstrap module: %s" % modname) + continue + filename = find_module_filename(modname) + if filename is None: + logger.info("Cannot import bootstrap module: %s" % modname) + else: + # special-case custom readline.so on OS X, but not for pypy: + if ( + modname == "readline" + and IS_DARWIN + and not (IS_PYPY or filename.endswith(join("lib-dynload", "readline.so"))) + ): + dst_filename = join(dst_prefix, "lib", "python{}".format(sys.version[:3]), "readline.so") + elif modname == "readline" and IS_WIN: + # special-case for Windows, where readline is not a standard module, though it may have been installed + # in site-packages by a third-party package + dst_filename = None else: - if f is not None: - f.close() - # special-case custom readline.so on OS X, but not for pypy: - if modname == 'readline' and sys.platform == 'darwin' and not ( - is_pypy or filename.endswith(join('lib-dynload', 'readline.so'))): - dst_filename = join(dst_prefix, 'lib', 'python%s' % sys.version[:3], 'readline.so') - elif modname == 'readline' and sys.platform == 'win32': - # special-case for Windows, where readline is not a - # standard module, though it may have been installed in - # site-packages by a third-party package - pass - else: - dst_filename = change_prefix(filename, dst_prefix) + dst_filename = change_prefix(filename, dst_prefix) + if dst_filename is not None: copyfile(filename, dst_filename, symlink) - if filename.endswith('.pyc'): - pyfile = filename[:-1] - if os.path.exists(pyfile): - copyfile(pyfile, dst_filename[:-1], symlink) - finally: - sys.path = _prev_sys_path + if filename.endswith(".pyc"): + py_file = filename[:-1] + if os.path.exists(py_file): + copyfile(py_file, dst_filename[:-1], symlink) + + +def copy_required_files(src_dir, lib_dir, symlink): + if not os.path.isdir(src_dir): + return + for fn in os.listdir(src_dir): + bn = os.path.splitext(fn)[0] + if fn != "site-packages" and bn in REQUIRED_FILES: + copyfile(join(src_dir, fn), join(lib_dir, fn), symlink) + + +def copy_license(prefix, dst_prefix, lib_dir, symlink): + """Copy the license file so `license()` builtin works""" + for license_path in ( + # posix cpython + os.path.join(prefix, os.path.relpath(lib_dir, dst_prefix), "LICENSE.txt"), + # windows cpython + os.path.join(prefix, "LICENSE.txt"), + # pypy + os.path.join(prefix, "LICENSE"), + ): + if os.path.exists(license_path): + dest = subst_path(license_path, prefix, dst_prefix) + copyfile(license_path, dest, symlink) + return + logger.warn("No LICENSE.txt / LICENSE found in source") + + +def copy_include_dir(include_src, include_dest, symlink): + """Copy headers from *include_src* to *include_dest* symlinking if required""" + if not os.path.isdir(include_src): + return + # PyPy headers are located in ``pypy-dir/include`` and following code + # avoids making ``venv-dir/include`` symlink to it + if IS_PYPY: + for fn in os.listdir(include_src): + copyfile(join(include_src, fn), join(include_dest, fn), symlink) + else: + copyfile(include_src, include_dest, symlink) + + +def copy_tcltk(src, dest, symlink): + """ copy tcl/tk libraries on Windows (issue #93) """ + for lib_version in "8.5", "8.6": + for libname in "tcl", "tk": + src_dir = join(src, "tcl", libname + lib_version) + dest_dir = join(dest, "tcl", libname + lib_version) + # Only copy the dirs from the above combinations that exist + if os.path.exists(src_dir) and not os.path.exists(dest_dir): + copy_file_or_folder(src_dir, dest_dir, symlink) def subst_path(prefix_path, prefix, home_dir): @@ -1130,7 +1377,7 @@ def subst_path(prefix_path, prefix, home_dir): prefix = os.path.normpath(prefix) home_dir = os.path.normpath(home_dir) if not prefix_path.startswith(prefix): - logger.warn('Path not in prefix %r %r', prefix_path, prefix) + logger.warn("Path not in prefix %r %r", prefix_path, prefix) return return prefix_path.replace(prefix, home_dir, 1) @@ -1138,257 +1385,254 @@ def subst_path(prefix_path, prefix, home_dir): def install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages, clear, symlink=True): """Install just the base environment, no distutils patches etc""" if sys.executable.startswith(bin_dir): - print('Please use the *system* python to run this script') + print("Please use the *system* python to run this script") return if clear: - rmtree(lib_dir) - ## FIXME: why not delete it? - ## Maybe it should delete everything with #!/path/to/venv/python in it - logger.notify('Not deleting %s', bin_dir) + rm_tree(lib_dir) + # FIXME: why not delete it? + # Maybe it should delete everything with #!/path/to/venv/python in it + logger.notify("Not deleting %s", bin_dir) - if hasattr(sys, 'real_prefix'): - logger.notify('Using real prefix %r' % sys.real_prefix) + if hasattr(sys, "real_prefix"): + logger.notify("Using real prefix %r", sys.real_prefix) prefix = sys.real_prefix - elif hasattr(sys, 'base_prefix'): - logger.notify('Using base prefix %r' % sys.base_prefix) + elif hasattr(sys, "base_prefix"): + logger.notify("Using base prefix %r", sys.base_prefix) prefix = sys.base_prefix else: prefix = sys.prefix + prefix = os.path.abspath(prefix) mkdir(lib_dir) fix_lib64(lib_dir, symlink) stdlib_dirs = [os.path.dirname(os.__file__)] - if is_win: - stdlib_dirs.append(join(os.path.dirname(stdlib_dirs[0]), 'DLLs')) - elif is_darwin: - stdlib_dirs.append(join(stdlib_dirs[0], 'site-packages')) - if hasattr(os, 'symlink'): - logger.info('Symlinking Python bootstrap modules') + if IS_WIN: + stdlib_dirs.append(join(os.path.dirname(stdlib_dirs[0]), "DLLs")) + elif IS_DARWIN: + stdlib_dirs.append(join(stdlib_dirs[0], "site-packages")) + if hasattr(os, "symlink"): + logger.info("Symlinking Python bootstrap modules") else: - logger.info('Copying Python bootstrap modules') + logger.info("Copying Python bootstrap modules") logger.indent += 2 try: # copy required files... for stdlib_dir in stdlib_dirs: - if not os.path.isdir(stdlib_dir): - continue - for fn in os.listdir(stdlib_dir): - bn = os.path.splitext(fn)[0] - if fn != 'site-packages' and bn in REQUIRED_FILES: - copyfile(join(stdlib_dir, fn), join(lib_dir, fn), symlink) + copy_required_files(stdlib_dir, lib_dir, symlink) # ...and modules copy_required_modules(home_dir, symlink) + copy_license(prefix, home_dir, lib_dir, symlink) finally: logger.indent -= 2 - mkdir(join(lib_dir, 'site-packages')) + # ...copy tcl/tk + if IS_WIN: + copy_tcltk(prefix, home_dir, symlink) + mkdir(join(lib_dir, "site-packages")) import site + site_filename = site.__file__ - if site_filename.endswith('.pyc'): + if site_filename.endswith(".pyc") or site_filename.endswith(".pyo"): site_filename = site_filename[:-1] - elif site_filename.endswith('$py.class'): - site_filename = site_filename.replace('$py.class', '.py') + elif site_filename.endswith("$py.class"): + site_filename = site_filename.replace("$py.class", ".py") site_filename_dst = change_prefix(site_filename, home_dir) site_dir = os.path.dirname(site_filename_dst) writefile(site_filename_dst, SITE_PY) - writefile(join(site_dir, 'orig-prefix.txt'), prefix) - site_packages_filename = join(site_dir, 'no-global-site-packages.txt') + writefile(join(site_dir, "orig-prefix.txt"), prefix) + site_packages_filename = join(site_dir, "no-global-site-packages.txt") if not site_packages: - writefile(site_packages_filename, '') + writefile(site_packages_filename, "") - if is_pypy or is_win: - stdinc_dir = join(prefix, 'include') + if IS_PYPY or IS_WIN: + standard_lib_include_dir = join(prefix, "include") else: - stdinc_dir = join(prefix, 'include', py_version + abiflags) - if os.path.exists(stdinc_dir): - copyfile(stdinc_dir, inc_dir, symlink) + standard_lib_include_dir = join(prefix, "include", PY_VERSION + ABI_FLAGS) + if os.path.exists(standard_lib_include_dir): + copy_include_dir(standard_lib_include_dir, inc_dir, symlink) else: - logger.debug('No include dir %s' % stdinc_dir) + logger.debug("No include dir %s", standard_lib_include_dir) - platinc_dir = distutils.sysconfig.get_python_inc(plat_specific=1) - if platinc_dir != stdinc_dir: - platinc_dest = distutils.sysconfig.get_python_inc( - plat_specific=1, prefix=home_dir) - if platinc_dir == platinc_dest: + platform_include_dir = distutils.sysconfig.get_python_inc(plat_specific=1) + if platform_include_dir != standard_lib_include_dir: + platform_include_dest = distutils.sysconfig.get_python_inc(plat_specific=1, prefix=home_dir) + if platform_include_dir == platform_include_dest: # Do platinc_dest manually due to a CPython bug; # not http://bugs.python.org/issue3386 but a close cousin - platinc_dest = subst_path(platinc_dir, prefix, home_dir) - if platinc_dest: + platform_include_dest = subst_path(platform_include_dir, prefix, home_dir) + if platform_include_dest: # PyPy's stdinc_dir and prefix are relative to the original binary # (traversing virtualenvs), whereas the platinc_dir is relative to # the inner virtualenv and ignores the prefix argument. # This seems more evolved than designed. - copyfile(platinc_dir, platinc_dest, symlink) + copy_include_dir(platform_include_dir, platform_include_dest, symlink) # pypy never uses exec_prefix, just ignore it - if sys.exec_prefix != prefix and not is_pypy: - if is_win: - exec_dir = join(sys.exec_prefix, 'lib') - elif is_jython: - exec_dir = join(sys.exec_prefix, 'Lib') + if os.path.realpath(sys.exec_prefix) != os.path.realpath(prefix) and not IS_PYPY: + if IS_WIN: + exec_dir = join(sys.exec_prefix, "lib") else: - exec_dir = join(sys.exec_prefix, 'lib', py_version) - for fn in os.listdir(exec_dir): - copyfile(join(exec_dir, fn), join(lib_dir, fn), symlink) - - if is_jython: - # Jython has either jython-dev.jar and javalib/ dir, or just - # jython.jar - for name in 'jython-dev.jar', 'javalib', 'jython.jar': - src = join(prefix, name) - if os.path.exists(src): - copyfile(src, join(home_dir, name), symlink) - # XXX: registry should always exist after Jython 2.5rc1 - src = join(prefix, 'registry') - if os.path.exists(src): - copyfile(src, join(home_dir, 'registry'), symlink=False) - copyfile(join(prefix, 'cachedir'), join(home_dir, 'cachedir'), - symlink=False) + exec_dir = join(sys.exec_prefix, "lib", PY_VERSION) + copy_required_files(exec_dir, lib_dir, symlink) mkdir(bin_dir) py_executable = join(bin_dir, os.path.basename(sys.executable)) - if 'Python.framework' in prefix: + if "Python.framework" in prefix: # OS X framework builds cause validation to break # https://github.com/pypa/virtualenv/issues/322 - if os.environ.get('__PYVENV_LAUNCHER__'): + if os.environ.get("__PYVENV_LAUNCHER__"): del os.environ["__PYVENV_LAUNCHER__"] - if re.search(r'/Python(?:-32|-64)*$', py_executable): + if re.search(r"/Python(?:-32|-64)*$", py_executable): # The name of the python executable is not quite what # we want, rename it. - py_executable = os.path.join( - os.path.dirname(py_executable), 'python') - - logger.notify('New %s executable in %s', expected_exe, py_executable) - pcbuild_dir = os.path.dirname(sys.executable) - pyd_pth = os.path.join(lib_dir, 'site-packages', 'virtualenv_builddir_pyd.pth') - if is_win and os.path.exists(os.path.join(pcbuild_dir, 'build.bat')): - logger.notify('Detected python running from build directory %s', pcbuild_dir) - logger.notify('Writing .pth file linking to build directory for *.pyd files') - writefile(pyd_pth, pcbuild_dir) + py_executable = os.path.join(os.path.dirname(py_executable), "python") + + logger.notify("New %s executable in %s", EXPECTED_EXE, py_executable) + pc_build_dir = os.path.dirname(sys.executable) + pyd_pth = os.path.join(lib_dir, "site-packages", "virtualenv_builddir_pyd.pth") + if IS_WIN and os.path.exists(os.path.join(pc_build_dir, "build.bat")): + logger.notify("Detected python running from build directory %s", pc_build_dir) + logger.notify("Writing .pth file linking to build directory for *.pyd files") + writefile(pyd_pth, pc_build_dir) else: - pcbuild_dir = None if os.path.exists(pyd_pth): - logger.info('Deleting %s (not Windows env or not build directory python)' % pyd_pth) + logger.info("Deleting %s (not Windows env or not build directory python)", pyd_pth) os.unlink(pyd_pth) if sys.executable != py_executable: - ## FIXME: could I just hard link? + # FIXME: could I just hard link? executable = sys.executable shutil.copyfile(executable, py_executable) make_exe(py_executable) - if is_win or is_cygwin: - pythonw = os.path.join(os.path.dirname(sys.executable), 'pythonw.exe') - if os.path.exists(pythonw): - logger.info('Also created pythonw.exe') - shutil.copyfile(pythonw, os.path.join(os.path.dirname(py_executable), 'pythonw.exe')) - python_d = os.path.join(os.path.dirname(sys.executable), 'python_d.exe') - python_d_dest = os.path.join(os.path.dirname(py_executable), 'python_d.exe') + if IS_WIN or IS_CYGWIN: + python_w = os.path.join(os.path.dirname(sys.executable), "pythonw.exe") + if os.path.exists(python_w): + logger.info("Also created pythonw.exe") + shutil.copyfile(python_w, os.path.join(os.path.dirname(py_executable), "pythonw.exe")) + python_d = os.path.join(os.path.dirname(sys.executable), "python_d.exe") + python_d_dest = os.path.join(os.path.dirname(py_executable), "python_d.exe") if os.path.exists(python_d): - logger.info('Also created python_d.exe') + logger.info("Also created python_d.exe") shutil.copyfile(python_d, python_d_dest) elif os.path.exists(python_d_dest): - logger.info('Removed python_d.exe as it is no longer at the source') + logger.info("Removed python_d.exe as it is no longer at the source") os.unlink(python_d_dest) + # we need to copy the DLL to enforce that windows will load the correct one. # may not exist if we are cygwin. - py_executable_dll = 'python%s%s.dll' % ( - sys.version_info[0], sys.version_info[1]) - py_executable_dll_d = 'python%s%s_d.dll' % ( - sys.version_info[0], sys.version_info[1]) - pythondll = os.path.join(os.path.dirname(sys.executable), py_executable_dll) - pythondll_d = os.path.join(os.path.dirname(sys.executable), py_executable_dll_d) - pythondll_d_dest = os.path.join(os.path.dirname(py_executable), py_executable_dll_d) - if os.path.exists(pythondll): - logger.info('Also created %s' % py_executable_dll) - shutil.copyfile(pythondll, os.path.join(os.path.dirname(py_executable), py_executable_dll)) - if os.path.exists(pythondll_d): - logger.info('Also created %s' % py_executable_dll_d) - shutil.copyfile(pythondll_d, pythondll_d_dest) - elif os.path.exists(pythondll_d_dest): - logger.info('Removed %s as the source does not exist' % pythondll_d_dest) - os.unlink(pythondll_d_dest) - if is_pypy: + if IS_PYPY: + py_executable_dll_s = [("libpypy-c.dll", "libpypy_d-c.dll")] + else: + py_executable_dll_s = [ + ("python{}.dll".format(sys.version_info[0]), "python{}_d.dll".format(sys.version_info[0])), + ( + "python{}{}.dll".format(sys.version_info[0], sys.version_info[1]), + "python{}{}_d.dll".format(sys.version_info[0], sys.version_info[1]), + ), + ] + + for py_executable_dll, py_executable_dll_d in py_executable_dll_s: + python_dll = os.path.join(os.path.dirname(sys.executable), py_executable_dll) + python_dll_d = os.path.join(os.path.dirname(sys.executable), py_executable_dll_d) + python_dll_d_dest = os.path.join(os.path.dirname(py_executable), py_executable_dll_d) + if os.path.exists(python_dll): + logger.info("Also created %s", py_executable_dll) + shutil.copyfile(python_dll, os.path.join(os.path.dirname(py_executable), py_executable_dll)) + if os.path.exists(python_dll_d): + logger.info("Also created %s", py_executable_dll_d) + shutil.copyfile(python_dll_d, python_dll_d_dest) + elif os.path.exists(python_dll_d_dest): + logger.info("Removed %s as the source does not exist", python_dll_d_dest) + os.unlink(python_dll_d_dest) + if IS_PYPY: # make a symlink python --> pypy-c - python_executable = os.path.join(os.path.dirname(py_executable), 'python') - if sys.platform in ('win32', 'cygwin'): - python_executable += '.exe' - logger.info('Also created executable %s' % python_executable) + python_executable = os.path.join(os.path.dirname(py_executable), "python") + if IS_WIN or IS_CYGWIN: + python_executable += ".exe" + logger.info("Also created executable %s", python_executable) copyfile(py_executable, python_executable, symlink) - if is_win: - for name in 'libexpat.dll', 'libpypy.dll', 'libpypy-c.dll', 'libeay32.dll', 'ssleay32.dll', 'sqlite.dll': + if IS_WIN: + for name in ["libexpat.dll", "libeay32.dll", "ssleay32.dll", "sqlite3.dll", "tcl85.dll", "tk85.dll"]: src = join(prefix, name) if os.path.exists(src): copyfile(src, join(bin_dir, name), symlink) - if os.path.splitext(os.path.basename(py_executable))[0] != expected_exe: - secondary_exe = os.path.join(os.path.dirname(py_executable), - expected_exe) + for d in sys.path: + if d.endswith("lib_pypy"): + break + else: + logger.fatal("Could not find lib_pypy in sys.path") + raise SystemExit(3) + logger.info("Copying lib_pypy") + copyfile(d, os.path.join(home_dir, "lib_pypy"), symlink) + + if os.path.splitext(os.path.basename(py_executable))[0] != EXPECTED_EXE: + secondary_exe = os.path.join(os.path.dirname(py_executable), EXPECTED_EXE) py_executable_ext = os.path.splitext(py_executable)[1] - if py_executable_ext.lower() == '.exe': + if py_executable_ext.lower() == ".exe": # python2.4 gives an extension of '.4' :P secondary_exe += py_executable_ext if os.path.exists(secondary_exe): - logger.warn('Not overwriting existing %s script %s (you must use %s)' - % (expected_exe, secondary_exe, py_executable)) + logger.warn( + "Not overwriting existing {} script {} (you must use {})".format( + EXPECTED_EXE, secondary_exe, py_executable + ) + ) else: - logger.notify('Also creating executable in %s' % secondary_exe) + logger.notify("Also creating executable in %s", secondary_exe) shutil.copyfile(sys.executable, secondary_exe) make_exe(secondary_exe) - if '.framework' in prefix: - if 'Python.framework' in prefix: - logger.debug('MacOSX Python framework detected') - # Make sure we use the the embedded interpreter inside + if ".framework" in prefix: + original_python = None + if "Python.framework" in prefix: + logger.debug("MacOSX Python framework detected") + # Make sure we use the embedded interpreter inside # the framework, even if sys.executable points to # the stub executable in ${sys.prefix}/bin # See http://groups.google.com/group/python-virtualenv/ # browse_thread/thread/17cab2f85da75951 - original_python = os.path.join( - prefix, 'Resources/Python.app/Contents/MacOS/Python') - if 'EPD' in prefix: - logger.debug('EPD framework detected') - original_python = os.path.join(prefix, 'bin/python') + original_python = os.path.join(prefix, "Resources/Python.app/Contents/MacOS/Python") + if "EPD" in prefix: + logger.debug("EPD framework detected") + original_python = os.path.join(prefix, "bin/python") shutil.copy(original_python, py_executable) # Copy the framework's dylib into the virtual # environment - virtual_lib = os.path.join(home_dir, '.Python') + virtual_lib = os.path.join(home_dir, ".Python") if os.path.exists(virtual_lib): os.unlink(virtual_lib) - copyfile( - os.path.join(prefix, 'Python'), - virtual_lib, - symlink) + copyfile(os.path.join(prefix, "Python"), virtual_lib, symlink) # And then change the install_name of the copied python executable + # noinspection PyBroadException try: - mach_o_change(py_executable, - os.path.join(prefix, 'Python'), - '@executable_path/../.Python') - except: + mach_o_change(py_executable, os.path.join(prefix, "Python"), "@executable_path/../.Python") + except Exception: e = sys.exc_info()[1] - logger.warn("Could not call mach_o_change: %s. " - "Trying to call install_name_tool instead." % e) + logger.warn("Could not call mach_o_change: %s. " "Trying to call install_name_tool instead.", e) try: call_subprocess( - ["install_name_tool", "-change", - os.path.join(prefix, 'Python'), - '@executable_path/../.Python', - py_executable]) - except: - logger.fatal("Could not call install_name_tool -- you must " - "have Apple's development tools installed") + [ + "install_name_tool", + "-change", + os.path.join(prefix, "Python"), + "@executable_path/../.Python", + py_executable, + ] + ) + except Exception: + logger.fatal("Could not call install_name_tool -- you must " "have Apple's development tools installed") raise - if not is_win: + if not IS_WIN: # Ensure that 'python', 'pythonX' and 'pythonX.Y' all exist - py_exe_version_major = 'python%s' % sys.version_info[0] - py_exe_version_major_minor = 'python%s.%s' % ( - sys.version_info[0], sys.version_info[1]) - py_exe_no_version = 'python' - required_symlinks = [ py_exe_no_version, py_exe_version_major, - py_exe_version_major_minor ] + py_exe_version_major = "python{}".format(sys.version_info[0]) + py_exe_version_major_minor = "python{}.{}".format(sys.version_info[0], sys.version_info[1]) + py_exe_no_version = "python" + required_symlinks = [py_exe_no_version, py_exe_version_major, py_exe_version_major_minor] py_executable_base = os.path.basename(py_executable) @@ -1405,117 +1649,125 @@ def install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages, clear, sy else: copyfile(py_executable, full_pth, symlink) - if is_win and ' ' in py_executable: - # There's a bug with subprocess on Windows when using a first - # argument that has a space in it. Instead we have to quote - # the value: - py_executable = '"%s"' % py_executable - # NOTE: keep this check as one line, cmd.exe doesn't cope with line breaks - cmd = [py_executable, '-c', 'import sys;out=sys.stdout;' - 'getattr(out, "buffer", out).write(sys.prefix.encode("utf-8"))'] - logger.info('Testing executable with %s %s "%s"' % tuple(cmd)) + cmd = [ + py_executable, + "-c", + "import sys;out=sys.stdout;" 'getattr(out, "buffer", out).write(sys.prefix.encode("utf-8"))', + ] + logger.info('Testing executable with %s %s "%s"', *cmd) try: - proc = subprocess.Popen(cmd, - stdout=subprocess.PIPE) + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) proc_stdout, proc_stderr = proc.communicate() except OSError: e = sys.exc_info()[1] if e.errno == errno.EACCES: - logger.fatal('ERROR: The executable %s could not be run: %s' % (py_executable, e)) + logger.fatal("ERROR: The executable {} could not be run: {}".format(py_executable, e)) sys.exit(100) else: raise e proc_stdout = proc_stdout.strip().decode("utf-8") - proc_stdout = os.path.normcase(os.path.abspath(proc_stdout)) - norm_home_dir = os.path.normcase(os.path.abspath(home_dir)) - if hasattr(norm_home_dir, 'decode'): + # normalize paths using realpath to ensure that a virtualenv correctly identifies itself even + # when addressed over a symlink + proc_stdout = os.path.normcase(os.path.realpath(proc_stdout)) + norm_home_dir = os.path.normcase(os.path.realpath(home_dir)) + if hasattr(norm_home_dir, "decode"): norm_home_dir = norm_home_dir.decode(sys.getfilesystemencoding()) if proc_stdout != norm_home_dir: - logger.fatal( - 'ERROR: The executable %s is not functioning' % py_executable) - logger.fatal( - 'ERROR: It thinks sys.prefix is %r (should be %r)' - % (proc_stdout, norm_home_dir)) - logger.fatal( - 'ERROR: virtualenv is not compatible with this system or executable') - if is_win: + logger.fatal("ERROR: The executable %s is not functioning", py_executable) + logger.fatal("ERROR: It thinks sys.prefix is {!r} (should be {!r})".format(proc_stdout, norm_home_dir)) + logger.fatal("ERROR: virtualenv is not compatible with this system or executable") + if IS_WIN: logger.fatal( - 'Note: some Windows users have reported this error when they ' + "Note: some Windows users have reported this error when they " 'installed Python for "Only this user" or have multiple ' - 'versions of Python installed. Copying the appropriate ' - 'PythonXX.dll to the virtualenv Scripts/ directory may fix ' - 'this problem.') + "versions of Python installed. Copying the appropriate " + "PythonXX.dll to the virtualenv Scripts/ directory may fix " + "this problem." + ) sys.exit(100) else: - logger.info('Got sys.prefix result: %r' % proc_stdout) + logger.info("Got sys.prefix result: %r", proc_stdout) - pydistutils = os.path.expanduser('~/.pydistutils.cfg') + pydistutils = os.path.expanduser("~/.pydistutils.cfg") if os.path.exists(pydistutils): - logger.notify('Please make sure you remove any previous custom paths from ' - 'your %s file.' % pydistutils) - ## FIXME: really this should be calculated earlier + logger.notify("Please make sure you remove any previous custom paths from " "your %s file.", pydistutils) + # FIXME: really this should be calculated earlier fix_local_scheme(home_dir, symlink) if site_packages: if os.path.exists(site_packages_filename): - logger.info('Deleting %s' % site_packages_filename) + logger.info("Deleting %s", site_packages_filename) os.unlink(site_packages_filename) return py_executable def install_activate(home_dir, bin_dir, prompt=None): - home_dir = os.path.abspath(home_dir) - if is_win or is_jython and os._name == 'nt': - files = { - 'activate.bat': ACTIVATE_BAT, - 'deactivate.bat': DEACTIVATE_BAT, - 'activate.ps1': ACTIVATE_PS, - } + if IS_WIN: + files = {"activate.bat": ACTIVATE_BAT, "deactivate.bat": DEACTIVATE_BAT, "activate.ps1": ACTIVATE_PS} # MSYS needs paths of the form /c/path/to/file - drive, tail = os.path.splitdrive(home_dir.replace(os.sep, '/')) - home_dir_msys = (drive and "/%s%s" or "%s%s") % (drive[:1], tail) + drive, tail = os.path.splitdrive(home_dir.replace(os.sep, "/")) + home_dir_msys = (drive and "/{}{}" or "{}{}").format(drive[:1], tail) # Run-time conditional enables (basic) Cygwin compatibility - home_dir_sh = ("""$(if [ "$OSTYPE" "==" "cygwin" ]; then cygpath -u '%s'; else echo '%s'; fi;)""" % - (home_dir, home_dir_msys)) - files['activate'] = ACTIVATE_SH.replace('__VIRTUAL_ENV__', home_dir_sh) + home_dir_sh = """$(if [ "$OSTYPE" "==" "cygwin" ]; then cygpath -u '{}'; else echo '{}'; fi;)""".format( + home_dir, home_dir_msys + ) + files["activate"] = ACTIVATE_SH.replace("__VIRTUAL_ENV__", home_dir_sh) else: - files = {'activate': ACTIVATE_SH} + files = { + "activate": ACTIVATE_SH, + "activate.fish": ACTIVATE_FISH, + "activate.csh": ACTIVATE_CSH, + "activate.ps1": ACTIVATE_PS, + } + files["activate_this.py"] = ACTIVATE_THIS - # suppling activate.fish in addition to, not instead of, the - # bash script support. - files['activate.fish'] = ACTIVATE_FISH + if sys.version_info >= (3, 4): + # Add xonsh support + files["activate.xsh"] = ACTIVATE_XSH - # same for csh/tcsh support... - files['activate.csh'] = ACTIVATE_CSH + install_files(home_dir, bin_dir, prompt, files) - files['activate_this.py'] = ACTIVATE_THIS - if hasattr(home_dir, 'decode'): + +def install_files(home_dir, bin_dir, prompt, files): + if hasattr(home_dir, "decode"): home_dir = home_dir.decode(sys.getfilesystemencoding()) - vname = os.path.basename(home_dir) + virtualenv_name = os.path.basename(home_dir) for name, content in files.items(): - content = content.replace('__VIRTUAL_PROMPT__', prompt or '') - content = content.replace('__VIRTUAL_WINPROMPT__', prompt or '(%s)' % vname) - content = content.replace('__VIRTUAL_ENV__', home_dir) - content = content.replace('__VIRTUAL_NAME__', vname) - content = content.replace('__BIN_NAME__', os.path.basename(bin_dir)) + content = content.replace("__VIRTUAL_PROMPT__", prompt or "") + content = content.replace("__VIRTUAL_WINPROMPT__", prompt or "({}) ".format(virtualenv_name)) + content = content.replace("__VIRTUAL_ENV__", home_dir) + content = content.replace("__VIRTUAL_NAME__", virtualenv_name) + content = content.replace("__BIN_NAME__", os.path.basename(bin_dir)) + content = content.replace("__PATH_SEP__", os.pathsep) writefile(os.path.join(bin_dir, name), content) + +def install_python_config(home_dir, bin_dir, prompt=None): + if IS_WIN: + files = {} + else: + files = {"python-config": PYTHON_CONFIG} + install_files(home_dir, bin_dir, prompt, files) + for name, _ in files.items(): + make_exe(os.path.join(bin_dir, name)) + + def install_distutils(home_dir): distutils_path = change_prefix(distutils.__path__[0], home_dir) mkdir(distutils_path) - ## FIXME: maybe this prefix setting should only be put in place if - ## there's a local distutils.cfg with a prefix setting? - home_dir = os.path.abspath(home_dir) - ## FIXME: this is breaking things, removing for now: - #distutils_cfg = DISTUTILS_CFG + "\n[install]\nprefix=%s\n" % home_dir - writefile(os.path.join(distutils_path, '__init__.py'), DISTUTILS_INIT) - writefile(os.path.join(distutils_path, 'distutils.cfg'), DISTUTILS_CFG, overwrite=False) + # FIXME: maybe this prefix setting should only be put in place if + # there's a local distutils.cfg with a prefix setting? + # FIXME: this is breaking things, removing for now: + # distutils_cfg = DISTUTILS_CFG + "\n[install]\nprefix=%s\n" home_dir + writefile(os.path.join(distutils_path, "__init__.py"), DISTUTILS_INIT) + writefile(os.path.join(distutils_path, "distutils.cfg"), DISTUTILS_CFG, overwrite=False) + def fix_local_scheme(home_dir, symlink=True): """ @@ -1527,15 +1779,20 @@ def fix_local_scheme(home_dir, symlink=True): except ImportError: pass else: - if sysconfig._get_default_scheme() == 'posix_local': - local_path = os.path.join(home_dir, 'local') + # noinspection PyProtectedMember + if sysconfig._get_default_scheme() == "posix_local": + local_path = os.path.join(home_dir, "local") if not os.path.exists(local_path): os.mkdir(local_path) for subdir_name in os.listdir(home_dir): - if subdir_name == 'local': + if subdir_name == "local": continue - copyfile(os.path.abspath(os.path.join(home_dir, subdir_name)), \ - os.path.join(local_path, subdir_name), symlink) + copyfile( + os.path.abspath(os.path.join(home_dir, subdir_name)), + os.path.join(local_path, subdir_name), + symlink, + ) + def fix_lib64(lib_dir, symlink=True): """ @@ -1543,28 +1800,32 @@ def fix_lib64(lib_dir, symlink=True): instead of lib/pythonX.Y. If this is such a platform we'll just create a symlink so lib64 points to lib """ - if [p for p in distutils.sysconfig.get_config_vars().values() - if isinstance(p, basestring) and 'lib64' in p]: - # PyPy's library path scheme is not affected by this. - # Return early or we will die on the following assert. - if is_pypy: - logger.debug('PyPy detected, skipping lib64 symlinking') - return + # PyPy's library path scheme is not affected by this. + # Return early or we will die on the following assert. + if IS_PYPY: + logger.debug("PyPy detected, skipping lib64 symlinking") + return + # Check we have a lib64 library path + if not [p for p in distutils.sysconfig.get_config_vars().values() if isinstance(p, basestring) and "lib64" in p]: + return + + logger.debug("This system uses lib64; symlinking lib64 to lib") + + assert os.path.basename(lib_dir) == "python{}".format(sys.version[:3]), "Unexpected python lib dir: {!r}".format( + lib_dir + ) + lib_parent = os.path.dirname(lib_dir) + top_level = os.path.dirname(lib_parent) + lib_dir = os.path.join(top_level, "lib") + lib64_link = os.path.join(top_level, "lib64") + assert os.path.basename(lib_parent) == "lib", "Unexpected parent dir: {!r}".format(lib_parent) + if os.path.lexists(lib64_link): + return + if symlink: + os.symlink("lib", lib64_link) + else: + copyfile(lib_dir, lib64_link, symlink=False) - logger.debug('This system uses lib64; symlinking lib64 to lib') - - assert os.path.basename(lib_dir) == 'python%s' % sys.version[:3], ( - "Unexpected python lib dir: %r" % lib_dir) - lib_parent = os.path.dirname(lib_dir) - top_level = os.path.dirname(lib_parent) - lib_dir = os.path.join(top_level, 'lib') - lib64_link = os.path.join(top_level, 'lib64') - assert os.path.basename(lib_parent) == 'lib', ( - "Unexpected parent dir: %r" % lib_parent) - if os.path.lexists(lib64_link): - return - cp_or_ln = (os.symlink if symlink else copyfile) - cp_or_ln('lib', lib64_link) def resolve_interpreter(exe): """ @@ -1572,81 +1833,84 @@ def resolve_interpreter(exe): """ # If the "executable" is a version number, get the installed executable for # that version + orig_exe = exe python_versions = get_installed_pythons() if exe in python_versions: exe = python_versions[exe] if os.path.abspath(exe) != exe: - paths = os.environ.get('PATH', '').split(os.pathsep) - for path in paths: - if os.path.exists(os.path.join(path, exe)): - exe = os.path.join(path, exe) - break + exe = distutils.spawn.find_executable(exe) or exe if not os.path.exists(exe): - logger.fatal('The executable %s (from --python=%s) does not exist' % (exe, exe)) + logger.fatal("The path {} (from --python={}) does not exist".format(exe, orig_exe)) raise SystemExit(3) if not is_executable(exe): - logger.fatal('The executable %s (from --python=%s) is not executable' % (exe, exe)) + logger.fatal("The path {} (from --python={}) is not an executable file".format(exe, orig_exe)) raise SystemExit(3) return exe + def is_executable(exe): """Checks a file is executable""" - return os.access(exe, os.X_OK) + return os.path.isfile(exe) and os.access(exe, os.X_OK) -############################################################ -## Relocating the environment: +# Relocating the environment: def make_environment_relocatable(home_dir): """ Makes the already-existing environment use relative paths, and takes out the #!-based environment selection in scripts. """ home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir) - activate_this = os.path.join(bin_dir, 'activate_this.py') + activate_this = os.path.join(bin_dir, "activate_this.py") if not os.path.exists(activate_this): logger.fatal( - 'The environment doesn\'t have a file %s -- please re-run virtualenv ' - 'on this environment to update it' % activate_this) + "The environment doesn't have a file %s -- please re-run virtualenv " "on this environment to update it", + activate_this, + ) fixup_scripts(home_dir, bin_dir) fixup_pth_and_egg_link(home_dir) - ## FIXME: need to fix up distutils.cfg + # FIXME: need to fix up distutils.cfg + -OK_ABS_SCRIPTS = ['python', 'python%s' % sys.version[:3], - 'activate', 'activate.bat', 'activate_this.py', - 'activate.fish', 'activate.csh'] +OK_ABS_SCRIPTS = [ + "python", + "python{}".format(sys.version[:3]), + "activate", + "activate.bat", + "activate_this.py", + "activate.fish", + "activate.csh", + "activate.xsh", +] -def fixup_scripts(home_dir, bin_dir): - if is_win: - new_shebang_args = ( - '%s /c' % os.path.normcase(os.environ.get('COMSPEC', 'cmd.exe')), - '', '.exe') + +def fixup_scripts(_, bin_dir): + if IS_WIN: + new_shebang_args = ("{} /c".format(os.path.normcase(os.environ.get("COMSPEC", "cmd.exe"))), "", ".exe") else: - new_shebang_args = ('/usr/bin/env', sys.version[:3], '') + new_shebang_args = ("/usr/bin/env", sys.version[:3], "") # This is what we expect at the top of scripts: - shebang = '#!%s' % os.path.normcase(os.path.join( - os.path.abspath(bin_dir), 'python%s' % new_shebang_args[2])) + shebang = "#!{}".format( + os.path.normcase(os.path.join(os.path.abspath(bin_dir), "python{}".format(new_shebang_args[2]))) + ) # This is what we'll put: - new_shebang = '#!%s python%s%s' % new_shebang_args + new_shebang = "#!{} python{}{}".format(*new_shebang_args) for filename in os.listdir(bin_dir): filename = os.path.join(bin_dir, filename) if not os.path.isfile(filename): - # ignore subdirs, e.g. .svn ones. + # ignore child directories, e.g. .svn ones. continue - f = open(filename, 'rb') - try: + with open(filename, "rb") as f: try: - lines = f.read().decode('utf-8').splitlines() + lines = f.read().decode("utf-8").splitlines() except UnicodeDecodeError: # This is probably a binary program instead # of a script, so just ignore it. continue - finally: - f.close() if not lines: - logger.warn('Script %s is an empty file' % filename) + logger.warn("Script %s is an empty file", filename) continue old_shebang = lines[0].strip() @@ -1654,97 +1918,103 @@ def fixup_scripts(home_dir, bin_dir): if not old_shebang.startswith(shebang): if os.path.basename(filename) in OK_ABS_SCRIPTS: - logger.debug('Cannot make script %s relative' % filename) + logger.debug("Cannot make script %s relative", filename) elif lines[0].strip() == new_shebang: - logger.info('Script %s has already been made relative' % filename) + logger.info("Script %s has already been made relative", filename) else: - logger.warn('Script %s cannot be made relative (it\'s not a normal script that starts with %s)' - % (filename, shebang)) + logger.warn( + "Script %s cannot be made relative (it's not a normal script that starts with %s)", + filename, + shebang, + ) continue - logger.notify('Making script %s relative' % filename) + logger.notify("Making script %s relative", filename) script = relative_script([new_shebang] + lines[1:]) - f = open(filename, 'wb') - f.write('\n'.join(script).encode('utf-8')) - f.close() + with open(filename, "wb") as f: + f.write("\n".join(script).encode("utf-8")) + def relative_script(lines): - "Return a script that'll work in a relocatable environment." - activate = "import os; activate_this=os.path.join(os.path.dirname(os.path.realpath(__file__)), 'activate_this.py'); exec(compile(open(activate_this).read(), activate_this, 'exec'), dict(__file__=activate_this)); del os, activate_this" + """Return a script that'll work in a relocatable environment.""" + activate = ( + "import os; " + "activate_this=os.path.join(os.path.dirname(os.path.realpath(__file__)), 'activate_this.py'); " + "exec(compile(open(activate_this).read(), activate_this, 'exec'), { '__file__': activate_this}); " + "del os, activate_this" + ) # Find the last future statement in the script. If we insert the activation # line before a future statement, Python will raise a SyntaxError. activate_at = None for idx, line in reversed(list(enumerate(lines))): - if line.split()[:3] == ['from', '__future__', 'import']: + if line.split()[:3] == ["from", "__future__", "import"]: activate_at = idx + 1 break if activate_at is None: # Activate after the shebang. activate_at = 1 - return lines[:activate_at] + ['', activate, ''] + lines[activate_at:] + return lines[:activate_at] + ["", activate, ""] + lines[activate_at:] + def fixup_pth_and_egg_link(home_dir, sys_path=None): """Makes .pth and .egg-link files use relative paths""" home_dir = os.path.normcase(os.path.abspath(home_dir)) if sys_path is None: sys_path = sys.path - for path in sys_path: - if not path: - path = '.' - if not os.path.isdir(path): + for a_path in sys_path: + if not a_path: + a_path = "." + if not os.path.isdir(a_path): continue - path = os.path.normcase(os.path.abspath(path)) - if not path.startswith(home_dir): - logger.debug('Skipping system (non-environment) directory %s' % path) + a_path = os.path.normcase(os.path.abspath(a_path)) + if not a_path.startswith(home_dir): + logger.debug("Skipping system (non-environment) directory %s", a_path) continue - for filename in os.listdir(path): - filename = os.path.join(path, filename) - if filename.endswith('.pth'): + for filename in os.listdir(a_path): + filename = os.path.join(a_path, filename) + if filename.endswith(".pth"): if not os.access(filename, os.W_OK): - logger.warn('Cannot write .pth file %s, skipping' % filename) + logger.warn("Cannot write .pth file %s, skipping", filename) else: fixup_pth_file(filename) - if filename.endswith('.egg-link'): + if filename.endswith(".egg-link"): if not os.access(filename, os.W_OK): - logger.warn('Cannot write .egg-link file %s, skipping' % filename) + logger.warn("Cannot write .egg-link file %s, skipping", filename) else: fixup_egg_link(filename) + def fixup_pth_file(filename): lines = [] - prev_lines = [] - f = open(filename) - prev_lines = f.readlines() - f.close() + with open(filename) as f: + prev_lines = f.readlines() for line in prev_lines: line = line.strip() - if (not line or line.startswith('#') or line.startswith('import ') - or os.path.abspath(line) != line): + if not line or line.startswith("#") or line.startswith("import ") or os.path.abspath(line) != line: lines.append(line) else: new_value = make_relative_path(filename, line) if line != new_value: - logger.debug('Rewriting path %s as %s (in %s)' % (line, new_value, filename)) + logger.debug("Rewriting path {} as {} (in {})".format(line, new_value, filename)) lines.append(new_value) if lines == prev_lines: - logger.info('No changes to .pth file %s' % filename) + logger.info("No changes to .pth file %s", filename) return - logger.notify('Making paths in .pth file %s relative' % filename) - f = open(filename, 'w') - f.write('\n'.join(lines) + '\n') - f.close() + logger.notify("Making paths in .pth file %s relative", filename) + with open(filename, "w") as f: + f.write("\n".join(lines) + "\n") + def fixup_egg_link(filename): - f = open(filename) - link = f.readline().strip() - f.close() + with open(filename) as f: + link = f.readline().strip() if os.path.abspath(link) != link: - logger.debug('Link in %s already relative' % filename) + logger.debug("Link in %s already relative", filename) return new_link = make_relative_path(filename, link) - logger.notify('Rewriting link %s in %s as %s' % (link, filename, new_link)) - f = open(filename, 'w') - f.write(new_link) - f.close() + logger.notify("Rewriting link {} in {} as {}".format(link, filename, new_link)) + with open(filename, "w") as f: + f.write(new_link) + def make_relative_path(source, dest, dest_is_directory=True): """ @@ -1764,6 +2034,8 @@ def make_relative_path(source, dest, dest_is_directory=True): if not dest_is_directory: dest_filename = os.path.basename(dest) dest = os.path.dirname(dest) + else: + dest_filename = None dest = os.path.normpath(os.path.abspath(dest)) source = os.path.normpath(os.path.abspath(source)) dest_parts = dest.strip(os.path.sep).split(os.path.sep) @@ -1771,20 +2043,20 @@ def make_relative_path(source, dest, dest_is_directory=True): while dest_parts and source_parts and dest_parts[0] == source_parts[0]: dest_parts.pop(0) source_parts.pop(0) - full_parts = ['..']*len(source_parts) + dest_parts - if not dest_is_directory: + full_parts = [".."] * len(source_parts) + dest_parts + if not dest_is_directory and dest_filename is not None: full_parts.append(dest_filename) if not full_parts: # Special case for the current directory (otherwise it'd be '') - return './' + return "./" return os.path.sep.join(full_parts) +FILE_PATH = __file__ if os.path.isabs(__file__) else os.path.join(os.getcwd(), __file__) -############################################################ -## Bootstrap script creation: -def create_bootstrap_script(extra_text, python_version=''): +# Bootstrap script creation: +def create_bootstrap_script(extra_text, python_version=""): """ Creates a bootstrap script, which is like this script but with extend_parser, adjust_options, and after_install hooks. @@ -1824,446 +2096,445 @@ def after_install(options, home_dir): ``#!/usr/bin/env python``. You can use this when the script must be run with a particular Python version. """ - filename = __file__ - if filename.endswith('.pyc'): + filename = FILE_PATH + if filename.endswith(".pyc"): filename = filename[:-1] - f = codecs.open(filename, 'r', encoding='utf-8') - content = f.read() - f.close() - py_exe = 'python%s' % python_version - content = (('#!/usr/bin/env %s\n' % py_exe) - + '## WARNING: This file is generated\n' - + content) - return content.replace('##EXT' 'END##', extra_text) + with codecs.open(filename, "r", encoding="utf-8") as f: + content = f.read() + py_exe = "python{}".format(python_version) + content = "#!/usr/bin/env {}\n# WARNING: This file is generated\n{}".format(py_exe, content) + # we build the string as two, to avoid replacing here, but yes further done + return content.replace("# EXTEND - " "bootstrap here", extra_text) + + +# EXTEND - bootstrap here -##EXTEND## def convert(s): - b = base64.b64decode(s.encode('ascii')) - return zlib.decompress(b).decode('utf-8') - -##file site.py -SITE_PY = convert(""" -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 -Qc7sRHsA1igE/wfVIOdx -""") - -##file activate.sh -ACTIVATE_SH = convert(""" -eJytVVFvokAQfudXTLEPtTlLeo9tvMSmJpq02hSvl7u2wRUG2QR2DSxSe7n/frOACEVNLlceRHa+ -nfl25pvZDswCnoDPQ4QoTRQsENIEPci4CsBMZBq7CAsuLOYqvmYKTTj3YxnBgiXBudGBjUzBZUJI -BXEqgCvweIyuCjeG4eF2F5x14bcB9KQiQQWrjSddI1/oQIx6SYYeoFjzWIoIhYI1izlbhJjkKO7D -M/QEmKfO9O7WeRo/zr4P7pyHwWxkwitcgwpQ5Ej96OX+PmiFwLeVjFUOrNYKaq1Nud3nR2n8nI2m -k9H0friPTGVsUdptaxGrTEfpNVFEskxpXtUkkCkl1UNF9cgLBkx48J4EXyALuBtAwNYIjF5kcmUU -abMKmMq1ULoiRbgsDEkTSsKSGFCJ6Z8vY/2xYiSacmtyAfCDdCNTVZoVF8vSTQOoEwSnOrngBkws -MYGMBMg8/bMBLSYKS7pYEXP0PqT+ZmBT0Xuy+Pplj5yn4aM9nk72JD8/Wi+Gr98sD9eWSMOwkapD -BbUv91XSvmyVkICt2tmXR4tWmrcUCsjWOpw87YidEC8i0gdTSOFhouJUNxR+4NYBG0MftoCTD9F7 -2rTtxG3oPwY1b2HncYwhrlmj6Wq924xtGDWqfdNxap+OYxplEurnMVo9RWks+rH8qKEtx7kZT5zJ -4H7oOFclrN6uFe+d+nW2aIUsSgs/42EIPuOhXq+jEo3S6tX6w2ilNkDnIpHCWdEQhFgwj9pkk7FN -l/y5eQvRSIQ5+TrL05lewxWpt/Lbhes5cJF3mLET1MGhcKCF+40tNWnUulxrpojwDo2sObdje3Bz -N3QeHqf3D7OjEXMVV8LN3ZlvuzoWHqiUcNKHtwNd0IbvPGKYYM31nPKCgkUILw3KL+Y8l7aO1ArS -Ad37nIU0fCj5NE5gQCuC5sOSu+UdI2NeXg/lFkQIlFpdWVaWZRfvqGiirC9o6liJ9FXGYrSY9mI1 -D/Ncozgn13vJvsznr7DnkJWXsyMH7e42ljdJ+aqNDF1bFnKWFLdj31xtaJYK6EXFgqmV/ymD/ROG -+n8O9H8f5vsGOWXsL1+1k3g= -""") - -##file activate.fish -ACTIVATE_FISH = convert(""" -eJydVW2P2jgQ/s6vmAZQoVpA9/WkqqJaTou0u6x2uZVOVWWZZEKsS+yc7UDpr+84bziQbauLxEvs -eXnsZ56ZIWwTYSAWKUJWGAs7hMJgBEdhEwiMKnSIsBNywUMrDtziPBYmCeBDrFUG7v8HmCTW5n8u -Fu7NJJim81Bl08EQTqqAkEupLOhCgrAQCY2hTU+DQVxIiqgkRNiEBphFEKy+kd1BaFvwFOUBuIxA -oy20BKtAKp3xFMo0QNtCK5mhtMEA6BmSpUELKo38TThwLfguRVNaiRgs0llnEoIR29zfstf18/bv -5T17Wm7vAiiN3ONCzfbfwC3DtWXXDqHfAGX0q6z/bO82j3ebh1VwnbrduwTQbvwcRtesAfMGor/W -L3fs6Xnz8LRlm9fV8/P61sM0LDNwCZjl9gSpCokJRzpryGQ5t8kNGFUt51QjOZGu0Mj35FlYlXEr -yC09EVOp4lEXfF84Lz1qbhBsgl59vDedXI3rTV03xipduSgt9kLytI3XmBp3aV6MPoMQGNUU62T6 -uQdeefTy1Hfj10zVHg2pq8fXDoHBiOv94csfXwN49xECqWREy7pwukKfvxdMY2j23vXDPuuxxeE+ -JOdCOhxCE3N44B1ZeSLuZh8Mmkr2wEPAmPfKWHA2uxIRjEopdbQYjDz3BWOf14/scfmwoki1eQvX -ExBdF60Mqh+Y/QcX4uiH4Amwzx79KOVFtbL63sXJbtcvy8/3q5rupmO5CnE91wBviQAhjUUegYpL -vVEbpLt2/W+PklRgq5Ku6mp+rpMhhCo/lXthQTxJ2ysO4Ka0ad97S7VT/n6YXus6fzk3fLnBZW5C -KDC6gSO62QDqgFqLCCtPmjegjnLeAdArtSE8VYGbAJ/aLb+vnQutFhk768E9uRbSxhCMzdgEveYw -IZ5ZqFKl6+kz7UR4U+buqQZXu9SIujrAfD7f0FXpozB4Q0gwp31H9mVTZGGC4b871/wm7lvyDLu1 -FUyvTj/yvD66k3UPTs08x1AQQaGziOl0S1qRkPG9COtBTSTWM9NzQ4R64B+Px/l3tDzCgxv5C6Ni -e+QaF9xFWrxx0V/G5uvYQOdiZzvYpQUVQSIsTr1TTghI33GnPbTA7/GCqcE3oE3GZurq4HeQXQD6 -32XS1ITj/qLjN72ob0hc5C9bzw8MhfmL -""") - -##file activate.csh -ACTIVATE_CSH = convert(""" -eJx9VG1P2zAQ/u5fcYQKNgTNPtN1WxlIQ4KCUEGaxuQ6yYVYSuzKdhqVX7+zk3bpy5YPUXL3PPfc -ne98DLNCWshliVDV1kGCUFvMoJGugMjq2qQIiVSxSJ1cCofD1BYRnOVGV0CfZ0N2DD91DalQSjsw -tQLpIJMGU1euvPe7QeJlkKzgWixlhnAt4aoUVsLnLBiy5NtbJWQ5THX1ZciYKKWwkOFaE04dUm6D -r/zh7pq/3D7Nnid3/HEy+wFHY/gEJydg0aFaQrBFgz1c5DG1IhTs+UZgsBC2GMFBlaeH+8dZXwcW -VPvCjXdlAvCfQsE7al0+07XjZvrSCUevR5dnkVeKlFYZmUztG4BdzL2u9KyLVabTU0bdfg7a0hgs -cSmUg6UwUiQl2iHrcbcVGNvPCiLOe7+cRwG13z9qRGgx2z6DHjfm/Op2yqeT+xvOLzs0PTKHDz2V -tkckFHoQfQRXoGJAj9el0FyJCmEMhzgMS4sB7KPOE2ExoLcSieYwDvR+cP8cg11gKkVJc2wRcm1g -QhYFlXiTaTfO2ki0fQoiFM4tLuO4aZrhOzqR4dIPcWx17hphMBY+Srwh7RTyN83XOWkcSPh1Pg/k -TXX/jbJTbMtUmcxZ+/bbqOsy82suFQg/BhdSOTRhMNBHlUarCpU7JzBhmkKmRejKOQzayQe6MWoa -n1wqWmuh6LZAaHxcdeqIlVLhIBJdO9/kbl0It2oEXQj+eGjJOuvOIR/YGRqvFhttUB2XTvLXYN2H -37CBdbW2W7j2r2+VsCn0doVWcFG1/4y1VwBjfwAyoZhD -""") - -##file activate.bat -ACTIVATE_BAT = convert(""" -eJx9UdEKgjAUfW6wfxjiIH+hEDKUFHSKLCMI7kNOEkIf9P9pTJ3OLJ/03HPPPed4Es9XS9qqwqgT -PbGKKOdXL4aAFS7A4gvAwgijuiKlqOpGlATS2NeMLE+TjJM9RkQ+SmqAXLrBo1LLIeLdiWlD6jZt -r7VNubWkndkXaxg5GO3UaOOKS6drO3luDDiO5my3iA0YAKGzPRV1ack8cOdhysI0CYzIPzjSiH5X -0QcvC8Lfaj0emsVKYF2rhL5L3fCkVjV76kShi59NHwDniAHzkgDgqBcwOgTMx+gDQQqXCw== -""") - -##file deactivate.bat -DEACTIVATE_BAT = convert(""" -eJxzSE3OyFfIT0vj4ipOLVEI8wwKCXX0iXf1C7Pl4spMU0hJTcvMS01RiPf3cYmHyQYE+fsGhCho -cCkAAUibEkTEVhWLMlUlLk6QGixStlyaeCyJDPHw9/Pw93VFsQguim4ZXAJoIUw5DhX47XUM8UCx -EchHtwsohN1bILUgw61c/Vy4AJYPYm4= -""") - -##file activate.ps1 -ACTIVATE_PS = convert(""" -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 -QastYw== -""") - -##file distutils-init.py -DISTUTILS_INIT = convert(""" -eJytV1uL4zYUfvevOE0ottuMW9q3gVDa3aUMXXbLMlDKMBiNrSTqOJKRlMxkf33PkXyRbGe7Dw2E -UXTu37lpxLFV2oIyifAncxmOL0xLIfcG+gv80x9VW6maw7o/CANSWWBwFtqeWMPlGY6qPjV8A0bB -C4eKSTgZ5LRgFeyErMEeOBhbN+Ipgeizhjtnhkn7DdyjuNLPoCS0l/ayQTG0djwZC08cLXozeMss -aG5EzQ0IScpnWtHSTXuxByV/QCmxE7y+eS0uxWeoheaVVfqSJHiU7Mhhi6gULbOHorshkrEnKxpT -0n3A8Y8SMpuwZx6aoix3ouFlmW8gHRSkeSJ2g7hU+kiHLDaQw3bmRDaTGfTnty7gPm0FHbIBg9U9 -oh1kZzAFLaue2R6htPCtAda2nGlDSUJ4PZBgCJBGVcwKTAMz/vJiLD+Oin5Z5QlvDPdulC6EsiyE -NFzb7McNTKJzbJqzphx92VKRFY1idenzmq3K0emRcbWBD0ryqc4NZGmKOOOX9Pz5x+/l27tP797c -f/z0d+4NruGNai8uAM0bfsYaw8itFk8ny41jsfpyO+BWlpqfhcG4yxLdi/0tQqoT4a8Vby382mt8 -p7XSo7aWGdPBc+b6utaBmCQ7rQKQoWtAuthQCiold2KfJIPTT8xwg9blPumc+YDZC/wYGdAyHpJk -vUbHbHWAp5No6pK/WhhLEWrFjUwtPEv1Agf8YmnsuXUQYkeZoHm8ogP16gt2uHoxcEMdf2C6pmbw -hUMsWGhanboh4IzzmsIpWs134jVPqD/c74bZHdY69UKKSn/+KfVhxLgUlToemayLMYQOqfEC61bh -cbhwaqoGUzIyZRFHPmau5juaWqwRn3mpWmoEA5nhzS5gog/5jbcFQqOZvmBasZtwYlG93k5GEiyw -buHhMWLjDarEGpMGB2LFs5nIJkhp/nUmZneFaRth++lieJtHepIvKgx6PJqIlD9X2j6pG1i9x3pZ -5bHuCPFiirGHeO7McvoXkz786GaKVzC9DSpnOxJdc4xm6NSVq7lNEnKdVlnpu9BNYoKX2Iq3wvgh -gGEUM66kK6j4NiyoneuPLSwaCWDxczgaolEWpiMyDVDb7dNuLAbriL8ig8mmeju31oNvQdpnvEPC -1vAXbWacGRVrGt/uXN/gU0CDDwgooKRrHfTBb1/s9lYZ8ZqOBU0yLvpuP6+K9hLFsvIjeNhBi0KL -MlOuWRn3FRwx5oHXjl0YImUx0+gLzjGchrgzca026ETmYJzPD+IpuKzNi8AFn048Thd63OdD86M6 -84zE8yQm0VqXdbbgvub2pKVnS76icBGdeTHHXTKspUmr4NYo/furFLKiMdQzFjHJNcdAnMhltBJK -0/IKX3DVFqvPJ2dLE7bDBkH0l/PJ29074+F0CsGYOxsb7U3myTUncYfXqnLLfa6sJybX4g+hmcjO -kMRBfA1JellfRRKJcyRpxdS4rIl6FdmQCWjo/o9Qz7yKffoP4JHjOvABcRn4CZIT2RH4jnxmfpVG -qgLaAvQBNfuO6X0/Ux02nb4FKx3vgP+XnkX0QW9pLy/NsXgdN24dD3LxO2Nwil7Zlc1dqtP3d7/h -kzp1/+7hGBuY4pk0XD/0Ao/oTe/XGrfyM773aB7iUhgkpy+dwAMalxMP0DrBcsVw/6p25+/hobP9 -GBknrWExDhLJ1bwt1NcCNblaFbMKCyvmX0PeRaQ= -""") - -##file distutils.cfg -DISTUTILS_CFG = convert(""" + b = base64.b64decode(s.encode("ascii")) + return zlib.decompress(b).decode("utf-8") + + +# file site.py +SITE_PY = convert( + """ +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 +aygG/wu2AIfx +""" +) + +# file activate.sh +ACTIVATE_SH = convert( + """ +eJytVV1v2kAQfPevWAxKk7QU0cdWRCUKEkgJRJhStU3lHPYSn2rO6O5MQj7+e/dsY2wc6EPDA2Dv +3N3szuxeHSYBVzDnIcIiVhpmCLFCH+65DsBWUSw9hBkXLeZpvmIabTidy2gBM6aCU6sO6ygGjwkR +aZCxAK7B5xI9Ha4ty8fNKjg+gScL6BMLhRqac1iu/ciDs5aPq5aIwxA+nR21rQRTB4kGFYU+oFhx +GYkFCg0rJjmbhagyVA1+QfMRGk/T7vi9+wK/aZ2OpVCgZYzA50ABoPx89EImKS2mgYVhspyi2Xq7 +8eSOLi/c6WA8+da9dK+7kz5tZ9N+X0AHKBK8+ZhIx25U0HaOwIdlJHUCzN+lKVcWJfE5/xeZH5P+ +aNgfXfX2UMrjFWJ5pEovDx0kWUYR1azuiWdUEMWkj4+a1E7sAEz48KiCD3AfcC+AgK0QGP1QyIsW +CxPWAUlgnJZtRX7zSBGSRkdwRwzIQPRvHknzsGRkyWyp+gjwnVwZxToLay7usm1KQFMgaJgSgxcw +cYcK7snezDdfazBWpWPJYktijv5GACq/MOU/7zr9ZlLq5+f85U+n7057Y2cwGjZfkyFJsinJxLmh +S0U7ILDT3qOs065I6rSrWjrtgyJm4Q2RFLKJ9obTbfo1w61t0uuALSLho6I+Mh2MO/Tq4GA4hw2g +tkOgaUKb1t+c/mLRtEjjXEoMccVKLV0YFuWzLavAtmO7buHRdW0rq0MxJavSbFTJtFGzhwK65brn +g6E77F71XPdzBiv2cc572xCmYPTGKsl6qFX3NJahtdOmu0dZRrnUnskpxewvBk73/LLnXo9HV9eT +ijF3jdAxJB2j8FZ0+2Fb0HQbqinUOvCwx5FVeGlTDBWWFxzf0nBAwRYIN6XC39i3J1BanE3DgrNN +8nW4Yn8QVCzRzIZYsJAzlV0glATX7xSNdYnMXxvCEq0iotCSxevm6GhnJ+p2c21YVvqY31jLNQ0d +Ac1FhrMbX+3UzW8yB99gBv7n/Puf2ffa3CPN/gKu/HeT +""" +) + +# file activate.fish +ACTIVATE_FISH = convert( + """ +eJytVm1v2zYQ/q5fcZUdyClqGVuHfQgwDGnjIQYSO3DcAMM6yLREWxxo0iMpty7243ekLImy5RQY +lg+RJT73fvfwerDImYY14xS2hTawolBomuE/Jjaw1LJQKYUVEyOSGrYnhsZrpvMlvP3CTM4EEFCF +EBZsv8MAcmN2N6ORfdM55TxO5RauQVOtmRRv46AHdxKENFYQmIGMKZoafoiDYF0ItCIFJCuic7Y+ +JDtichhmEH6UYk+V0WjQGXIHRoKWW2od2YAVgZQIQHVyI9g3GgaAf5oaJ3JU1idqs68PrFB10ID+ ++OFPh1hL5QzhR2UAo/UxP8bx8Ijr0Bb2m5ebfq2kdImKrHymuQQPGNgDLwvW2qUsuHDPs+CS05GF +0pSNHf4BoyC6iSD6LKITkxmt6mztReOvWKA9U6YgnIo9bGVGgYgMtZtCCWva5BSrqbaEY1gIlWJL +hYkjZ7WHQJsYyTP/FPZEMbLiVDsUW4Oh2HxDgWlLZg93yctkvvh0+5A83S7uwzrFPddcGrtrg81X +rGxruUYbuk7zfzKtC6pHP73/GQg3VGFLW12Qo/Mc81TrrGwPygT9Nnm+T17G8+fJbFomKoxDCD+L +8BqbAobcwPtatir7cPO11D5oV+w8lutalnJNLys6l2wEj71Ty1DoBrvCfie9vy/uZ9P72eM4DM78 +qM9OvakPXvejDXvFG5fzp/ns8WmRzDD388nd2C/6M2rHhqbbnTkAlyl22tINYlK1rUv30nYj4Vx+ +cT2p6FbuESrXsHTgnZKoYVlRWyWr0fNl3A6Fw7n6wPNorIim3lxE+sRGOSLaSEWdM1KxDROEN3Z8 +8+DJdgFSSHCAEg/1PQl6JtFZq67Mt6t1RFdFHU9f2lUMHaXgaITw5heIhBQZflaFJREatYrI18Pq +7E23z7tDJtPuo4aXLoTrXxgXIP5s1lG6SHvwSdhImVKU0z3xGSoOPE5sxxcE1bB4+YEwSbzXJAmt +/v+PuP4jYVWennEFklbrsu2XPFXz02VBh3QJbHFX2PfCHyXJh8k0md4+jjETR5E638t+wxJL21P4 +MQ7KJwz/hhMO6XbF46kuPPW1tC+7pt92B5Pjh+G2/HZcEhy65qtv7ciSu8nz7YeH8XF+wuN991Hu +Dm7k0wKbCRupTQy1bYKUcTqjRxpqTb4/9Gcz3YJ3cgIOHtnTlkN9bYgp9Du33XgyGlHErmN6x8kB +N7MzUrTmS+FKiU+KT6WTEhcUxXBNQK17fGa/epjJ2m5+7+Avu2vuFN1hip1z/nIgyJY2tv37opms +I2klzT3hyqiYMGuIrvSVjjrhMMBYklRyjL3cWl65kht1gyt9DVGHMAxweKj1uN0doae24tIyBfOO +a6FOZy1jZzukdvvqN1kPccDLjbwGdtJ8m72rgeki+xOnXcf/CzFcuJM= +""" +) + +# file activate.csh +ACTIVATE_CSH = convert( + """ +eJx9VNtO4zAQffdXDKEiUEFhX8t22bJFWqRyEVuQVkKy3Hi6sZQ44Dit+sK379hJittG5KGqPZdz +fOZyCLNUlbBQGUJelRbmCFWJElbKphCVRWUShLnS5yKxaiksDpIyjaC/MEUO9Lc/YIfwt6ggEVoX +FkylQVmQymBis7Wz/jJIcRLma5iIpZIIEwXXmSgVfJf+Qs5//suFygZJkf8YMFaiBY2rTGkcxa8s +ZkxkSpQgsWUBsUVi27viD9MJf7l9mj2Pp/xxPPsNByO4gKMjoCSol+Dvot6e3/A9cl6VdmB71ksw +mIoyvYROnKeHu8dZiARvpMebHe0CeccvoLz9sjY5tq3h5v6lgY5eD4b9yGFFutCSrkzlRMAm554y +we3bWhYJqXcIzx5bGYMZLoW2sBRGiXmG5YAFsdsIvhA7rCDiPDhyHtXl2lOQpGhkZtuVCKKH7+ec +X9/e8/vx3Q3nw00EfWoBxwFWrRTBeSWiE7Apagb0OXRKz7XIEUbQFcMwK7HLOT6OtwlZQo9PIGao +pVrULKj64Ysnt3/G19ObtgkCJrXzF74jRz2MaCnJgtcN5B7wLfK2DedOp4vGydPcet5urq2XBEZv +DcnQpBZVJt0KUBqEa4YzpS0a3x7odFOm0Dlqe9oEkN8qVUlK01/iKfSa3LRRKmqkBc2vBKFpmyCs +XG4d2yYyEQZBzIvKOgLN+JDveiVoaXyqedVYOkTrmCRqutrfNVHr6xMFBhh9QD/qNQuGLvq72d03 +3Jy2CtGCf0rca/tp+N4BXqsflKquRr0L2sjmuClOu+/8/NKvTQsNZ3l9ZqxeTew//1a6EA== +""" +) + +# file activate.xsh +ACTIVATE_XSH = convert( + """ +eJyNU11PwjAUfe+vuNY9sIj7ASQ+YCSBRD6i02gIaSq7gyWjXdqyaIz/3XYwVmB+9GFZ78c57T2n +lNIXKfQa+NJkJTcIeqmywkAqFZSZMlueoygppSRVcgPvrjgyUuYask0hlYEVGqaxAK6B7f8JSTAF +lmCN2uFqpcMeAbuyFGjxkcglhUwAzzOuUe9SbiWY18H5vm5B6sbgM4qir8jSdCib3t+x59FD/NS/ +Z7N+PKRdoDRskAIXhBsIziqPyFrSf9O9xsPpZDgdD85JD6lz6kPqtwM0RYdx1bnB5Lka2u5cxzML +vKLWTjZ7mI5n8b8A9rUNjpAiQW3U1gmKFIQ0lXpW1gblEh4xT6EuvGjXtHGFE5ZcwlZotGhKYY4l +FwZKrjL+lqMmvoXmp4dYhKQV1M7d6yPEv5jNKcqYf1VGbcmZB5x4lRcCfzfvLXaBiCdJ5wj46uD+ +Tmg3luR2NGGT/nhgGbpgX48wN7HaYhcUFjlfYrULCTkxWru36jF59rJ9NlJlf7JQde5j11VS+yZr +0d22eUPaxdycLKMTvqWjR3610emDtgTu36ylcJe83rhv/di/AYN1UZY= +""" +) + +# file activate.bat +ACTIVATE_BAT = convert( + """ +eJyVk1FLhEAUhd8X/A8XWSkf28dCyMUpBR3FzAiCS+WYwq4TOdXfb0Z3dTJdyCfveO85n8frNXut +OPCyNFbGqmUCzDxIs3s3REJzB1GrEE3VVJdQsLJuWAEYh97QkaRxlGRwbqxAXp1Uf+RYM32W1LKB +7Vp2nJC6DReD9m+5qeQ6Wd+a/SN7dlzn9oI7dxsSXJCcoXOskfLgYXdv/j8LnXiM8iGg/RmiZmOr +bFMSgcebMwGfKhgbBIfnL14X8P7BX3Zs38J3LSoQFdtD3YCVuJlvnfgmj5kfUz+OCLxxqUWoF9zk +qtYAFyZkBsO9ArzUh/td0ZqP9IskElTFMsnwb4/GqeoLPUlZT5dJvf8Id5hQIONynUSa2G0Wc+m8 +Z+w2w4/Tt2hbYT0hbgOK1I0I4tUw/QOTZfLE +""" +) + +# file deactivate.bat +DEACTIVATE_BAT = convert( + """ +eJyFkN0KgkAUhO8X9h0GQapXCIQEDQX/EBO6kso1F9KN3Or1201Si6JzN+fMGT5mxQ61gKgqSijp +mETup9nGDgo3yi29S90QjmhnEteOYb6AFNjdBC9xvoj9iTUd7lzWkDVrwFuYiZ15JiW8QiskSlbx +lpUo4sApXtlJGodJhqNQWW7k+Ou831ACNZrC6BeW+eXPNEbfl7OiXr6H/oHZZl4ceXHoToG0nuIM +pk+k4fAba/wd0Pr4P2CqyLeOlJ4iKfkJo6v/iaH9YzfPMEoeMG2RUA== +""" +) + +# file activate.ps1 +ACTIVATE_PS = convert( + """ +eJytVcFu2zAMvfsrWNfYEmx2sWuGHVIkQAO0adBkvWyDoMh0I0CWDElOGwz598p2HDt20w3YdLP5 +SD2Sj9QlrDbcQMIFQpobC2uEWFkwKtcMY0i0SmGhlpuvsFM5MCqls+pcArcQc43Mil0EEwXWxRlB +BNEVZZZvqcUoM188LzBM88yOVjezJVmMVzfwDYJ0x+VWMWq5klG6YypNqYyjjNrN0eF6vJySyezB +4U0muA0LKww0GiW2WH35wTHsVRT5QwgXVKO0npfkkhXR4UmoNRWjGGtagx/mmVu2+QXBXMkJGqvz +woRD77cH7vAEBtb9rq7YUs3pWuCI3N9OyOPsYfV9fFveOCzRlU9xApTbUZ3hebcjXmOqXCI1Evwe +1IfQMJXhIYnSc++9QbLOdkSUiMmWa5tTQTLXvMz2aB7Blb1g+55/ly+3mDYX/jzn0eJZFqbOazp/ +7DEqQjjMaae7XhAKpMmbbHpI1FppWgnAOG1Lp1KmpOUyxy67i54MTtldwhJFAvEBcfF+PRqdvY/L +drFiByr7vlwrc0Ui29mNs4QplH8hoPrJFE6XkEuDFrjWKHBLpT2q1XgNEQilknGToJvJdrFc++tR +83o1d8bWp/M88OtJtUDW+vfak+B3Y14Rcj2bk/n4bkrcKWBkOV0Q4sOnVoyqNR1fR3I5vr6dksXD +/d1iVU9st3rnNNk01fcPtT+diDccT8ajFavg55OmBiWhIolQulH2uyrqNfh0thpgJblxHLuNisDc +TnYbONOY8BewqvyJL9w4KT9BJ0hxnrXTWbhRbpWfYackPgsu8cTtw1/ugH2rbCgM/nuWtJMcy3Wx +wQ+5fYZ17h4aJT8Wz41hVMfu5YnOpjwIBn/eITAcwn+rxN57BRHvOEk= +""" +) + +# file distutils-init.py +DISTUTILS_INIT = convert( + """ +eJytV21v5DQQ/p5fMaRCJLANcAcSqlghuBdUcRzo6BdUnSI3cXZNs3bO9m679+uZsbOJnWR7fKBS +u65nPC/PvK7YdUpbUCYR/mSOw/GBaSnkxiTJBaiuUjUHYUAqCwwOQts9a7k8wE7V+5avwCh44FAx +CXuDnBasgkbIGuyWg7F1K+5Q0LWTzaT9DG7wgdL3oCR0x+64QkaUv9sbC3ccdXjBeMssaG5EzQ0I +SeJQDkq77I52q+TXyCcawevLx+JYfIRaaF5ZpY8nP7ztSYIEyXYc1uhu0TG7LfobIhm7t6I1Jd0H +HP8oIbMJe+YFFmXZiJaXZb6CdBCQ5olohudS6R0dslhBDuuZEdnszSA/v0oAf07xKOiQpTcIaxCG +QQN0rLpnG0TQwucGWNdxpg1FA1H1+IEhHFpVMSsQfWb85dFYvhsF/YS+8NZwr710lpdlIaTh2mbf +rGDqFFxgdnxgV/D6h2ffukcIBUotDlwbVFQK2Sj4EbLnK/iud8px+TjhRzLcac7acvRpTdSiVawu +fVpkaTk6PzKmK3irJJ/atoIsRRL9kpw/f/u1fHn97tWLmz/e/Z3nTunoaWwSfmCuFTtWbYXkmFUD +z9NJMzUgLdF9YRHA7pjmgxByiWvv31RV8Zfa64q/xix449jOOz0JxejH2QB8HwQg8NgeO26SiDIL +heMpfndxuMFz5p0oKI1H1TGgi6CSwFiX6XgVgUEsBd2WjVa70msKFa56CPOnbZ5I9EnkZZL0jP5M +o1LwR9Tb51ssMfdmX8AL1R1d9Wje8gP2NSw7q8Xd3iKMxGL1cUShLDU/CBeKEo2KZRYh1efkY8U7 +Cz+fJL7SWulRWseM6WvzFOBFqQMxScjhoFX0EaGLFSVKpWQjNuSXMEi4MvcCa3Jw4Y4ZbtAWuUl6 +095iBAKrRga0Aw80OjAhqy3c7UVbl/zRwlgZUCtu5BcW7qV6gC3+YpPacOvwxFCZoJc7OVuaFQ84 +U9SDgUuaMVuma2rGvoMRC3Y8rfb92HG6ee1qoNO8EY8YuL4mupbZBnst9eIUhT5/lnonYoyKSu12 +TNbF6EGP2niBDVThcbjwyVG1GJ+RK4tYguqreUODkrXiIy9VRy3ZZIa3zbRC0W68LRAZzfQRQ4xt +HScmNbyY01XSjHUNt+8jNt6iSMw3aXAgVzybPVkFAc3/m4rZHRZvK+xpuhne5ZOKnz0YB0zUUClm +LrV9ILGjvsEUSfO48COQi2VYkyfCvBjc4Z++GXgB09sgQ9YQ5MJFoIVOfVaaqyQha2lHKn3huYFP +KBJb8VIYX/doeTHjSnBr8YkT34eZ07hCWMOimh6LPrMQar8cYTF0yojHdIw37nPavenXpxRHWABc +s0kXJujs0eKbKdcs4qdgR4yh1Y5dGCJlMdNoC5Y5NgvcbXD9adGIzAEzLy/iKbiszYPA/Wtm8UIJ +OEGYljt14Bk9z5OYROuXrLMF8zW3ey09W+JX0E+EHPFZSIMwvcYWHucYNtXSb8u4AtCAHRiLmNRn +1UCevMyoabqBiRt3tcYS9fFZUw/q4UEc/eW8N/X3Tn1YyyEec3NjpSeVWMXJOTNx5tWqcsNwLu5E +TM5hEMJTTuGZyMPGdQ5N+r7zBJpInqNJjbjGkUbUs+iGTEAt63+Ee2ZVbNMnwacF6yz4AXEZ/Ama +5RTNk7yefGB+5ESiAtoi/AE9+5LpjemBdfj0Ehf09Lzht5qzCwT9oL00zZZaWjzEWjfEwoU9mMiD +UbThVzZ34U7fXP+C315S91UcO9rAFLen4fr29OA9WnOyC1c8Zu5xNaLeyNo2WNvPmkCtc2ICqidc +zmg+LaPu/BXc9srfx9pJbJiSw5NZkgXxWMiyBWpyNjdmeRbmzb+31cHS +""" +) + +# file distutils.cfg +DISTUTILS_CFG = convert( + """ eJxNj00KwkAMhfc9xYNuxe4Ft57AjYiUtDO1wXSmNJnK3N5pdSEEAu8nH6lxHVlRhtDHMPATA4uH xJ4EFmGbvfJiicSHFRzUSISMY6hq3GLCRLnIvSTnEefN0FIjw5tF0Hkk9Q5dRunBsVoyFi24aaLg 9FDOlL0FPGluf4QjcInLlxd6f6rqkgPu/5nHLg0cXCscXoozRrP51DRT3j9QNl99AP53T2Q= -""") - -##file activate_this.py -ACTIVATE_THIS = convert(""" -eJyNU01v2zAMvetXEB4K21jmDOstQA4dMGCHbeihlyEIDMWmG62yJEiKE//7kXKdpN2KzYBt8euR -fKSyLPs8wiEo8wh4wqZTGou4V6Hm0wJa1cSiTkJdr8+GsoTRHuCotBayiWqQEYGtMCgfD1KjGYBe -5a3p0cRKiAe2NtLADikftnDco0ko/SFEVgEZ8aRC5GLux7i3BpSJ6J1H+i7A2CjiHq9z7JRZuuQq -siwTIvpxJYCeuWaBpwZdhB+yxy/eWz+ZvVSU8C4E9FFZkyxFsvCT/ZzL8gcz9aXVE14Yyp2M+2W0 -y7n5mp0qN+avKXvbsyyzUqjeWR8hjGE+2iCE1W1tQ82hsCZN9UzlJr+/e/iab8WfqsmPI6pWeUPd -FrMsd4H/55poeO9n54COhUs+sZNEzNtg/wanpjpuqHJaxs76HtZryI/K3H7KJ/KDIhqcbJ7kI4ar -XL+sMgXnX0D+Te2Iy5xdP8yueSlQB/x/ED2BTAtyE3K4SYUN6AMNfbO63f4lBW3bUJPbTL+mjSxS -PyRfJkZRgj+VbFv+EzHFi5pKwUEepa4JslMnwkowSRCXI+m5XvEOvtuBrxHdhLalG0JofYBok6qj -YdN2dEngUlbC4PG60M1WEN0piu7Nq7on0mgyyUw3iV1etLo6r/81biWdQ9MWHFaePWZYaq+nmp+t -s3az+sj7eA0jfgPfeoN1 -""") - -MH_MAGIC = 0xfeedface -MH_CIGAM = 0xcefaedfe -MH_MAGIC_64 = 0xfeedfacf -MH_CIGAM_64 = 0xcffaedfe -FAT_MAGIC = 0xcafebabe -BIG_ENDIAN = '>' -LITTLE_ENDIAN = '<' -LC_LOAD_DYLIB = 0xc -maxint = majver == 3 and getattr(sys, 'maxsize') or getattr(sys, 'maxint') - - -class fileview(object): +""" +) + +# file activate_this.py +ACTIVATE_THIS = convert( + """ +eJylVE1v2zAMvetXENqhNpZ5wHoL0EMOBdqh64Kt3RAEhaE4TMzOlgxJ+ULR/z7Sdpr041BsOUSS +9fj0SD5Jaz0qIq1NRFiTjytToV3DwnkoVt6jjUA2om888v9QqduAgFssEtegTWJJIV9QhWnm0cyT +dAAPJ3n7Jc9PhvC0/5hmSt3wCgpjYYawCjiHTYkWdm4F9SpE+QS8iVsKkewSxrtYOnt8/gCsi0z6 +TOuM7OemhWZKa62obpyP4MJ+Fiji03wXlIp+N1TAv71ShdsCmwjXpsZz753vtr0hljQKAX0kZ9ud +RE+O9f5TKVKdKvUBOCcOnEsCEB2MRzcX0NKAwIBHsoHm2CYsoDl5LKLzu1TxMuclnHGeWWNimfHK +svxkvzazIGOyl5Cmire4YOSdnWo5Td8d4gM22b0jm0x76jv4CIeAbIkx6YIGoHWahaaimByCmV7N +DFfktaKesM257xtI4zhBT8sygpm59YsMn2n9dfnj5nZ0lZ9f/2olyzlCZubzYzNAH1Cza0Pb9U+N +Kf6YJUp5BVg6blvT26ozRI1FaSyFWl3+zMeT8YT5SxNMjD5hs3Cyza7Z5Wv0gS2Qk1047h5jv05u +Lr5fM5pRWVOZyHemzkI0PoYNceH1vVkbxtICnuCdr0Ra3ksLRwVr6y/J8alXNJNKH2cRmAyrjk6U +vp/sNUvALpqpfl++zALOzkBvyJ5+0S2oO5JxXcx/piDhBwHvJas6sq55D486E6EmSo+yvjnT4eld ++saBii/aWlLEDi7cqRJUxg6SkW2XPBPB2wzke1zlHLyg7b5C7UIdpkdu/CYmFpcxKb9tTFeHvfEW +bEt+khbtQs4f8N0GrneByuKGWSp+9I7V9bPpUAw/pfZFJgkSODeE2qdQSDg5uatvYvb76i9zKfxE +""" +) + +# file python-config +PYTHON_CONFIG = convert( + """ +eJyNVV1P2zAUfc+v8ODBiSABxlulTipbO6p1LWqBgVhlhcZpPYUkctzSivHfd6+dpGloGH2Ja/ue +e+65Hz78xNhtf3x90xmw7vCWsRPGLvpDNuz87MKfdKMWSWxZ4ilNpCLZJiuWc66SVFUOZkkcirll +rfxIBAzOMtImDzSVPBRrekwoX/OZu/0r4lm0DHiG60g86u8sjPw5rCyy86NRkB8QuuBRSqfAKESn +3orLTCQxE3GYkC9tYp8fk89OSwNsmXgizrhUtnumeSgeo5GbLUMk49Rv+2nK48Cm/qMwfp333J2/ +dVcAGE0CIQHBsgIeEr4Wij0LtWDLzJ9ze5YEvH2WI6CHTAVcSu9ZCsXtgxu81CIvp6/k4eXsdfo7 +PvDCRD75yi41QitfzlcPp1OI7i/1/iQitqnr0iMgQ+A6wa+IKwwdxyk9IiXNAzgquTFU8NIxAVjM +osm1Zz526e+shQ4hKRVci69nPC3Kw4NQEmkQ65E7OodxorSvxjvpBjQHDmWFIQ1mlmzlS5vedseT +/mgIEsMJ7Lxz2bLAF9M5xeLEhdbHxpWOw0GdkJApMVBRF1y+a0z3c9WZPAXGFcFrJgCIB+024uad +0CrzmEoRa3Ub4swNIHPGf7QDV+2uj2OiFWsChgCwjKqN6rp5izpbH6Wc1O1TclQTP/XVwi6anTr1 +1sbubjZLI1+VptPSdCfwnFBrB1jvebrTA9uUhU2/9gad7xPqeFkaQcnnLbCViZK8d7R1kxzFrIJV +8EaLYmKYpvGVkig+3C5HCXbM1jGCGekiM2pRCVPyRyXYdPf6kcbWEQ36F5V4Gq9N7icNNw+JHwRE +LTgxRXACpvnQv/PuT0xCCAywY/K4hE6Now2qDwaSE5FB+1agsoUveYDepS83qFcF1NufvULD3fTl +g6Hgf7WBt6lzMeiyyWVn3P1WVbwaczHmTzE9A5SyItTVgFYyvs/L/fXlaNgbw8v3azT+0eikVlWD +/vBHbzQumP23uBCjsYdrL9OWARwxs/nuLOzeXbPJTa/Xv6sUmQir5pC1YRLz3eA+CD8Z0XpcW8v9 +MZWF36ryyXXf3yBIz6nzqz8Muyz0m5Qj7OexfYo/Ph3LqvkHUg7AuA== +""" +) + +MH_MAGIC = 0xFEEDFACE +MH_CIGAM = 0xCEFAEDFE +MH_MAGIC_64 = 0xFEEDFACF +MH_CIGAM_64 = 0xCFFAEDFE +FAT_MAGIC = 0xCAFEBABE +BIG_ENDIAN = ">" +LITTLE_ENDIAN = "<" +LC_LOAD_DYLIB = 0xC +maxint = MAJOR == 3 and getattr(sys, "maxsize") or getattr(sys, "maxint") + + +class FileView(object): """ A proxy for file-like objects that exposes a given view of a file. Modified from macholib. """ - def __init__(self, fileobj, start=0, size=maxint): - if isinstance(fileobj, fileview): - self._fileobj = fileobj._fileobj + def __init__(self, file_obj, start=0, size=maxint): + if isinstance(file_obj, FileView): + self._file_obj = file_obj._file_obj else: - self._fileobj = fileobj + self._file_obj = file_obj self._start = start self._end = start + size self._pos = 0 def __repr__(self): - return '' % ( - self._start, self._end, self._fileobj) + return "".format(self._start, self._end, self._file_obj) def tell(self): return self._pos - def _checkwindow(self, seekto, op): - if not (self._start <= seekto <= self._end): - raise IOError("%s to offset %d is outside window [%d, %d]" % ( - op, seekto, self._start, self._end)) + def _checkwindow(self, seek_to, op): + if not (self._start <= seek_to <= self._end): + raise IOError( + "{} to offset {:d} is outside window [{:d}, {:d}]".format(op, seek_to, self._start, self._end) + ) def seek(self, offset, whence=0): - seekto = offset + seek_to = offset if whence == os.SEEK_SET: - seekto += self._start + seek_to += self._start elif whence == os.SEEK_CUR: - seekto += self._start + self._pos + seek_to += self._start + self._pos elif whence == os.SEEK_END: - seekto += self._end + seek_to += self._end else: - raise IOError("Invalid whence argument to seek: %r" % (whence,)) - self._checkwindow(seekto, 'seek') - self._fileobj.seek(seekto) - self._pos = seekto - self._start + raise IOError("Invalid whence argument to seek: {!r}".format(whence)) + self._checkwindow(seek_to, "seek") + self._file_obj.seek(seek_to) + self._pos = seek_to - self._start - def write(self, bytes): + def write(self, content): here = self._start + self._pos - self._checkwindow(here, 'write') - self._checkwindow(here + len(bytes), 'write') - self._fileobj.seek(here, os.SEEK_SET) - self._fileobj.write(bytes) - self._pos += len(bytes) + self._checkwindow(here, "write") + self._checkwindow(here + len(content), "write") + self._file_obj.seek(here, os.SEEK_SET) + self._file_obj.write(content) + self._pos += len(content) def read(self, size=maxint): assert size >= 0 here = self._start + self._pos - self._checkwindow(here, 'read') + self._checkwindow(here, "read") size = min(size, self._end - here) - self._fileobj.seek(here, os.SEEK_SET) - bytes = self._fileobj.read(size) - self._pos += len(bytes) - return bytes + self._file_obj.seek(here, os.SEEK_SET) + read_bytes = self._file_obj.read(size) + self._pos += len(read_bytes) + return read_bytes def read_data(file, endian, num=1): @@ -2271,13 +2542,13 @@ def read_data(file, endian, num=1): Read a given number of 32-bits unsigned integers from the given file with the given endianness. """ - res = struct.unpack(endian + 'L' * num, file.read(num * 4)) + res = struct.unpack(endian + "L" * num, file.read(num * 4)) if len(res) == 1: return res[0] return res -def mach_o_change(path, what, value): +def mach_o_change(at_path, what, value): """ Replace a given name (what) in any LC_LOAD_DYLIB command found in the given binary with a new name (value), provided it's shorter. @@ -2285,15 +2556,15 @@ def mach_o_change(path, what, value): def do_macho(file, bits, endian): # Read Mach-O header (the magic number is assumed read by the caller) - cputype, cpusubtype, filetype, ncmds, sizeofcmds, flags = read_data(file, endian, 6) + cpu_type, cpu_sub_type, file_type, n_commands, size_of_commands, flags = read_data(file, endian, 6) # 64-bits header has one more field. if bits == 64: read_data(file, endian) - # The header is followed by ncmds commands - for n in range(ncmds): + # The header is followed by n commands + for _ in range(n_commands): where = file.tell() # Read command header - cmd, cmdsize = read_data(file, endian, 2) + cmd, cmd_size = read_data(file, endian, 2) if cmd == LC_LOAD_DYLIB: # The first data field in LC_LOAD_DYLIB commands is the # offset of the name, starting from the beginning of the @@ -2301,25 +2572,25 @@ def do_macho(file, bits, endian): name_offset = read_data(file, endian) file.seek(where + name_offset, os.SEEK_SET) # Read the NUL terminated string - load = file.read(cmdsize - name_offset).decode() - load = load[:load.index('\0')] + load = file.read(cmd_size - name_offset).decode() + load = load[: load.index("\0")] # If the string is what is being replaced, overwrite it. if load == what: file.seek(where + name_offset, os.SEEK_SET) - file.write(value.encode() + '\0'.encode()) + file.write(value.encode() + "\0".encode()) # Seek to the next command - file.seek(where + cmdsize, os.SEEK_SET) + file.seek(where + cmd_size, os.SEEK_SET) def do_file(file, offset=0, size=maxint): - file = fileview(file, offset, size) + file = FileView(file, offset, size) # Read magic number magic = read_data(file, BIG_ENDIAN) if magic == FAT_MAGIC: # Fat binaries contain nfat_arch Mach-O binaries - nfat_arch = read_data(file, BIG_ENDIAN) - for n in range(nfat_arch): + n_fat_arch = read_data(file, BIG_ENDIAN) + for _ in range(n_fat_arch): # Read arch header - cputype, cpusubtype, offset, size, align = read_data(file, BIG_ENDIAN, 5) + cpu_type, cpu_sub_type, offset, size, align = read_data(file, BIG_ENDIAN, 5) do_file(file, offset, size) elif magic == MH_MAGIC: do_macho(file, 32, BIG_ENDIAN) @@ -2330,13 +2601,11 @@ def do_file(file, offset=0, size=maxint): elif magic == MH_CIGAM_64: do_macho(file, 64, LITTLE_ENDIAN) - assert(len(what) >= len(value)) - do_file(open(path, 'r+b')) + assert len(what) >= len(value) + with open(at_path, "r+b") as f: + do_file(f) -if __name__ == '__main__': - main() -## TODO: -## Copy python.exe.manifest -## Monkeypatch distutils.sysconfig +if __name__ == "__main__": + main() diff --git a/src/build_utils/virtualenv/virtualenv_support/__init__.py b/src/build_utils/virtualenv/virtualenv_support/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/build_utils/virtualenv/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl b/src/build_utils/virtualenv/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..8476c119301f5ea25729bdadb47c716534e1e8c2 GIT binary patch literal 1360957 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

07ob&w`(yhX_OLgX;K$vu37@^)A8 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%0A!*4Yu`;E@zq94N$BOL`S!S&XGseP~f|F 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 z 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%0D^8G~@X;U|& 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

$wqcc$rVG5L1lZ;)YRR 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%0A&yN7Ft@L+3#)g9gUN4Vd7qsvapjnflq% za}$gk(&7t?av|sgR#E3SWm|u9(;=hd=D><^9$4V)<9VVI`CQ1T?1zB7AJo7&U#m44 z#uYFseo;C+S!07AjqZ9NEWFQ?bZxK@H`lVQJz= z=8U1O!adQ~bA^KY9KAT<9{(K~CK%TnBSNR?C*aFMd8e5%@dZk!8F4aTmazSHj&6lq zBRbOnnMplIT4JSKOf_Q)XX*b&nb%w%K23TkKyxiPZ|u~jt-3}leTz_vb0Xc8HT2W= zJxb=JNOk}0J{m(A0ace;5tK`>Y|EA>wE9QW4y~YfZUB;)5;sU>x5&d5NO1}T*{6M1^?({S6E=Ml?vQi{z>3bx=u3Qb*= zip5@`nLdSNk~VL#hqx1B0~+-o&Ch2a3};$`-R}Jl08&7$zd4Yt9$3Lh8T6{d!*%Rl z&=47jh(N>$fEGTe7t0u_dVrq|9Ff~M3#5I_naAzB2{X3?>|ua4>Y0DQ2$&f&3GXY^ zj$wdr=mKy@*FbUPT<7@k6xYD2x)ejSdVoE_YU;QMB=dB3s_D08Yb3K4a0qHysRIWH z2su%<%G_v@R+$3^kC*)MHaY=d`Eo?L9T#zMe6T3v=7hi&FEGcaq8^wo-^t3I#UDwv zef@_`(3g`)Qn{3r#50p3XVUsBZZn|_cf80OD&oNV|O^5D!D#>>$- zngd%-Z2p?`S(ELIKLQV+Tm#qgGOgVVSYxkR))#+{3i=6INEAm*ha(p)P*bSj8LSiZ zJ=sKSErD7e3K)@9B*>X6&GhLS5DMi5urjfx4ke>$R;FN5U91y?o3rN@SaFL-abgb2 zAOE{bXI>9k0A0!~Dn}84jDFt0k9?lxb6&u13hA-Rd_;l9vb&5PF z$hxAtxv3VBeVJObZj}Wa%(YB$(7;>7L8I_7?fN>@Sze=ixlondy7i6CL;-;R3jLm8y?HVg=NXqli* zbE$&uz_J%ZT8*4grnyNa1|6}D z0HK17g7P20V2~^oC8JKqC;SH<@&Ys>wB8Ufdda9>4P)tc)e!^s^<+j;3?rco6#oF1 z%6O00O>QaH=0{Ap3TugBEmC6&(W7)ke+jvwKKw_XXK4=#rd?+F@QLrLfaF|qea4Xd z1CUuUrJ}#mD)O_uWY1I_mIRr32fWF?nYepae>>HW=~R1HRYuB{1!$sllhI#87wQXO z)vC8LsP|FQDnT6PXK3pTT7Xz;ETjbXM>bWnm(>U?8>)8l*|Z4gMG^MGOaAlkNdhCY z)ytTYsZ7A00TP(V;#uOVu_9$_O3X~eyEBJB*2n+hp?vw`s>Isw|L z=J}x|yPihv@})&E3%YR@d{M1KvE&(qBCGGvBQnSij0hOWJ=jekJ5Y8W!l<1%mv*g& zhg&UOipqSc8=hoRk3Lts%7ktq%}opdO{T#^xj}aI$gG?pRiAb*CV#-G1o&M`WY=i` z7aO}7g#V%d1ulTsheURDk#*@XZsZeaaQq3}>{F>_d>SZ(yAqRt^=J3tGp`q)6MFDj zO7L0U4bS==dA34)Wt-`1LKls+oTjg-o%D76`|x`DQ40$ovWwX@FbUu0T?~AKM6t_? z@zh8fvs6Kv0sh;GiMs{>gE31lJTuHpIA-aaIG4IWP$f_bc0!h&tu%<1R5fo44uBJi z0HprMB1A5u=55AJo0mRwLXgKjwsHi3)fQkxgz;n9+6EnH&g?Q^=$BSxnr`mxzf5eu|jb#E&7{EvdH&k2@oI(vXWD>KlV7&}l6?Mpk!12$fl|%|cN%a(O>jXp-Njr9#F+TDEgpq;)~E5; zPymQJx!~_;yptO6Vy<2Ui$6sZja=|C%A5wozYM~%CBALUib4P5XloT46O6#8$}Lpx z7s*ooE|KK$t}4I-G%8OdXtkgBDn5dvdF_DuIt;a|5A!QG(b%aO z%LbA$lk_|zn%_nXio)%u`dBA#wjWW9S)D2Aj|-lr>Ps)fwLFXF=E7ClxRlM|69JRg z|1u0Z2`|-`4=#w?nPPj|5D<)DxgeynSp2U+4lnt$LgyLGdJr`;p&77HD{}*^zk?

P!45Jsjij|Edcbif~Vn)I!@HbJbg)QX5%|KZA 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 z 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�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

LI)orGU*heWuIL#qcoDSOmtK;&PLiF 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 z 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%0Dat2u(LbIBF}0GULY9< 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%0DY)hJ_ONv&a4)dbcy&xXRa36{@jJSQ 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 N3OlR1IUQL`u(x6tZG>cNB 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 literal 0 HcmV?d00001 diff --git a/src/build_utils/virtualenv/virtualenv_support/setuptools-41.0.1-py2.py3-none-any.whl b/src/build_utils/virtualenv/virtualenv_support/setuptools-41.0.1-py2.py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..92836e98402648041d1bc2ae34aaf882d1ebb00b GIT binary patch literal 575966 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 z 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