Hello community, here is the log from the commit of package python3-setuptools for openSUSE:Factory checked in at 2016-11-03 12:58:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3-setuptools (Old) and /work/SRC/openSUSE:Factory/.python3-setuptools.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-setuptools" Changes: -------- --- /work/SRC/openSUSE:Factory/python3-setuptools/python3-setuptools.changes 2016-10-22 13:11:46.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python3-setuptools.new/python3-setuptools.changes 2016-11-03 12:58:16.000000000 +0100 @@ -1,0 +2,15 @@ +Sun Oct 30 18:24:46 UTC 2016 - a...@gmx.de + +- update to version 28.7.1: + * #827: Update PyPI root for dependency links. + * #833: Backed out changes from #830 as the implementation seems to + have problems in some cases. + +- changes from version 28.7.0: + * #832: Moved much of the namespace package handling functionality + into a separate module for re-use in something like #789. + * #830: sdist command no longer suppresses the inclusion of data + files, re-aligning with the expectation of distutils and + addressing #274 and #521. + +------------------------------------------------------------------- Old: ---- setuptools-28.6.1.tar.gz New: ---- setuptools-28.7.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-setuptools.spec ++++++ --- /var/tmp/diff_new_pack.qE68YD/_old 2016-11-03 12:58:17.000000000 +0100 +++ /var/tmp/diff_new_pack.qE68YD/_new 2016-11-03 12:58:17.000000000 +0100 @@ -17,7 +17,7 @@ Name: python3-setuptools -Version: 28.6.1 +Version: 28.7.1 Release: 0 Url: http://pypi.python.org/pypi/setuptools Summary: Easily download, build, install, upgrade, and uninstall Python packages ++++++ setuptools-28.6.1.tar.gz -> setuptools-28.7.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/CHANGES.rst new/setuptools-28.7.1/CHANGES.rst --- old/setuptools-28.6.1/CHANGES.rst 2016-10-19 17:39:12.000000000 +0200 +++ new/setuptools-28.7.1/CHANGES.rst 2016-10-30 03:39:27.000000000 +0100 @@ -2,6 +2,24 @@ CHANGES ======= +v28.7.1 +------- + +* #827: Update PyPI root for dependency links. + +* #833: Backed out changes from #830 as the implementation + seems to have problems in some cases. + +v28.7.0 +------- + +* #832: Moved much of the namespace package handling + functionality into a separate module for re-use in something + like #789. +* #830: ``sdist`` command no longer suppresses the inclusion + of data files, re-aligning with the expectation of distutils + and addressing #274 and #521. + v28.6.1 ------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/PKG-INFO new/setuptools-28.7.1/PKG-INFO --- old/setuptools-28.6.1/PKG-INFO 2016-10-19 17:40:47.000000000 +0200 +++ new/setuptools-28.7.1/PKG-INFO 2016-10-30 03:40:44.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: setuptools -Version: 28.6.1 +Version: 28.7.1 Summary: Easily download, build, install, upgrade, and uninstall Python packages Home-page: https://github.com/pypa/setuptools Author: Python Packaging Authority diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/setup.cfg new/setuptools-28.7.1/setup.cfg --- old/setuptools-28.6.1/setup.cfg 2016-10-19 17:40:47.000000000 +0200 +++ new/setuptools-28.7.1/setup.cfg 2016-10-30 03:40:44.000000000 +0100 @@ -1,5 +1,5 @@ [bumpversion] -current_version = 28.6.1 +current_version = 28.7.1 commit = True tag = True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/setup.py new/setuptools-28.7.1/setup.py --- old/setuptools-28.6.1/setup.py 2016-10-19 17:39:12.000000000 +0200 +++ new/setuptools-28.7.1/setup.py 2016-10-30 03:39:27.000000000 +0100 @@ -77,7 +77,7 @@ Given the filename, including md5 fragment, construct the dependency link for PyPI. """ - root = 'https://pypi.python.org/packages/source' + root = 'https://files.pythonhosted.org/packages/source' name, sep, rest = pkg_filename.partition('-') parts = root, name[0], name, pkg_filename return '/'.join(parts) @@ -85,7 +85,7 @@ setup_params = dict( name="setuptools", - version="28.6.1", + version="28.7.1", description="Easily download, build, install, upgrade, and uninstall " "Python packages", author="Python Packaging Authority", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/setuptools/command/build_ext.py new/setuptools-28.7.1/setuptools/command/build_ext.py --- old/setuptools-28.6.1/setuptools/command/build_ext.py 2016-10-19 17:39:12.000000000 +0200 +++ new/setuptools-28.7.1/setuptools/command/build_ext.py 2016-10-30 03:39:27.000000000 +0100 @@ -62,7 +62,7 @@ def get_abi3_suffix(): """Return the file extension for an abi3-compliant Extension()""" for suffix, _, _ in (s for s in imp.get_suffixes() if s[2] == imp.C_EXTENSION): - if '.abi3' in suffix: # Unix + if '.abi3' in suffix: # Unix return suffix elif suffix == '.pyd': # Windows return suffix diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/setuptools/command/install_egg_info.py new/setuptools-28.7.1/setuptools/command/install_egg_info.py --- old/setuptools-28.6.1/setuptools/command/install_egg_info.py 2016-10-19 17:39:12.000000000 +0200 +++ new/setuptools-28.7.1/setuptools/command/install_egg_info.py 2016-10-30 03:39:27.000000000 +0100 @@ -1,14 +1,13 @@ from distutils import log, dir_util import os -from setuptools.extern.six.moves import map - from setuptools import Command +from setuptools import namespaces from setuptools.archive_util import unpack_archive import pkg_resources -class install_egg_info(Command): +class install_egg_info(namespaces.Installer, Command): """Install an .egg-info directory for the package""" description = "Install an .egg-info directory for the package" @@ -61,59 +60,3 @@ return dst unpack_archive(self.source, self.target, skimmer) - - def install_namespaces(self): - nsp = self._get_all_ns_packages() - if not nsp: - return - filename, ext = os.path.splitext(self.target) - filename += '-nspkg.pth' - self.outputs.append(filename) - log.info("Installing %s", filename) - lines = map(self._gen_nspkg_line, nsp) - - if self.dry_run: - # always generate the lines, even in dry run - list(lines) - return - - with open(filename, 'wt') as f: - f.writelines(lines) - - _nspkg_tmpl = ( - "import sys, types, os", - "pep420 = sys.version_info > (3, 3)", - "p = os.path.join(sys._getframe(1).f_locals['sitedir'], *%(pth)r)", - "ie = os.path.exists(os.path.join(p,'__init__.py'))", - "m = not ie and not pep420 and " - "sys.modules.setdefault(%(pkg)r, types.ModuleType(%(pkg)r))", - "mp = (m or []) and m.__dict__.setdefault('__path__',[])", - "(p not in mp) and mp.append(p)", - ) - "lines for the namespace installer" - - _nspkg_tmpl_multi = ( - 'm and setattr(sys.modules[%(parent)r], %(child)r, m)', - ) - "additional line(s) when a parent package is indicated" - - @classmethod - def _gen_nspkg_line(cls, pkg): - # ensure pkg is not a unicode string under Python 2.7 - pkg = str(pkg) - pth = tuple(pkg.split('.')) - tmpl_lines = cls._nspkg_tmpl - parent, sep, child = pkg.rpartition('.') - if parent: - tmpl_lines += cls._nspkg_tmpl_multi - return ';'.join(tmpl_lines) % locals() + '\n' - - def _get_all_ns_packages(self): - """Return sorted list of all package namespaces""" - nsp = set() - for pkg in self.distribution.namespace_packages or []: - pkg = pkg.split('.') - while pkg: - nsp.add('.'.join(pkg)) - pkg.pop() - return sorted(nsp) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/setuptools/dist.py new/setuptools-28.7.1/setuptools/dist.py --- old/setuptools-28.6.1/setuptools/dist.py 2016-10-19 17:39:12.000000000 +0200 +++ new/setuptools-28.7.1/setuptools/dist.py 2016-10-30 03:39:27.000000000 +0100 @@ -105,20 +105,20 @@ def check_nsp(dist, attr, value): """Verify that namespace packages are valid""" - assert_string_list(dist, attr, value) - for nsp in value: + ns_packages = value + assert_string_list(dist, attr, ns_packages) + for nsp in ns_packages: if not dist.has_contents_for(nsp): raise DistutilsSetupError( "Distribution contains no modules or packages for " + "namespace package %r" % nsp ) - if '.' in nsp: - parent = '.'.join(nsp.split('.')[:-1]) - if parent not in value: - distutils.log.warn( - "WARNING: %r is declared as a package namespace, but %r" - " is not: please correct this in setup.py", nsp, parent - ) + parent, sep, child = nsp.rpartition('.') + if parent and parent not in ns_packages: + distutils.log.warn( + "WARNING: %r is declared as a package namespace, but %r" + " is not: please correct this in setup.py", nsp, parent + ) def check_extras(dist, attr, value): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/setuptools/namespaces.py new/setuptools-28.7.1/setuptools/namespaces.py --- old/setuptools-28.6.1/setuptools/namespaces.py 1970-01-01 01:00:00.000000000 +0100 +++ new/setuptools-28.7.1/setuptools/namespaces.py 2016-10-30 03:39:27.000000000 +0100 @@ -0,0 +1,93 @@ +import os +from distutils import log +import itertools + +from setuptools.extern.six.moves import map + + +flatten = itertools.chain.from_iterable + + +class Installer: + + nspkg_ext = '-nspkg.pth' + + def install_namespaces(self): + nsp = self._get_all_ns_packages() + if not nsp: + return + filename, ext = os.path.splitext(self._get_target()) + filename += self.nspkg_ext + self.outputs.append(filename) + log.info("Installing %s", filename) + lines = map(self._gen_nspkg_line, nsp) + + if self.dry_run: + # always generate the lines, even in dry run + list(lines) + return + + with open(filename, 'wt') as f: + f.writelines(lines) + + def _get_target(self): + return self.target + + _nspkg_tmpl = ( + "import sys, types, os", + "pep420 = sys.version_info > (3, 3)", + "p = os.path.join(%(root)s, *%(pth)r)", + "ie = os.path.exists(os.path.join(p,'__init__.py'))", + "m = not ie and not pep420 and " + "sys.modules.setdefault(%(pkg)r, types.ModuleType(%(pkg)r))", + "mp = (m or []) and m.__dict__.setdefault('__path__',[])", + "(p not in mp) and mp.append(p)", + ) + "lines for the namespace installer" + + _nspkg_tmpl_multi = ( + 'm and setattr(sys.modules[%(parent)r], %(child)r, m)', + ) + "additional line(s) when a parent package is indicated" + + def _get_root(self): + return "sys._getframe(1).f_locals['sitedir']" + + def _gen_nspkg_line(self, pkg): + # ensure pkg is not a unicode string under Python 2.7 + pkg = str(pkg) + pth = tuple(pkg.split('.')) + root = self._get_root() + tmpl_lines = self._nspkg_tmpl + parent, sep, child = pkg.rpartition('.') + if parent: + tmpl_lines += self._nspkg_tmpl_multi + return ';'.join(tmpl_lines) % locals() + '\n' + + def _get_all_ns_packages(self): + """Return sorted list of all package namespaces""" + pkgs = self.distribution.namespace_packages or [] + return sorted(flatten(map(self._pkg_names, pkgs))) + + @staticmethod + def _pkg_names(pkg): + """ + Given a namespace package, yield the components of that + package. + + >>> names = Installer._pkg_names('a.b.c') + >>> set(names) == set(['a', 'a.b', 'a.b.c']) + True + """ + parts = pkg.split('.') + while parts: + yield '.'.join(parts) + parts.pop() + + +class DevelopInstaller(Installer): + def _get_root(self): + return repr(str(self.egg_path)) + + def _get_target(self): + return self.egg_link diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/setuptools/package_index.py new/setuptools-28.7.1/setuptools/package_index.py --- old/setuptools-28.6.1/setuptools/package_index.py 2016-10-19 17:39:12.000000000 +0200 +++ new/setuptools-28.7.1/setuptools/package_index.py 2016-10-30 03:39:27.000000000 +0100 @@ -515,10 +515,10 @@ """Add `urls` to the list that will be prescanned for searches""" for url in urls: if ( - self.to_scan is None # if we have already "gone online" - or not URL_SCHEME(url) # or it's a local file/directory + self.to_scan is None # if we have already "gone online" + or not URL_SCHEME(url) # or it's a local file/directory or url.startswith('file:') - or list(distros_for_url(url)) # or a direct package link + or list(distros_for_url(url)) # or a direct package link ): # then go ahead and process it now self.scan_url(url) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/setuptools/site-patch.py new/setuptools-28.7.1/setuptools/site-patch.py --- old/setuptools-28.6.1/setuptools/site-patch.py 2016-10-19 17:39:12.000000000 +0200 +++ new/setuptools-28.7.1/setuptools/site-patch.py 2016-10-30 03:39:27.000000000 +0100 @@ -13,7 +13,7 @@ for item in stdpath: if item == mydir or not item: - continue # skip if current dir. on Windows, or my own directory + continue # skip if current dir. on Windows, or my own directory importer = pic.get(item) if importer is not None: loader = importer.find_module('site') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/setuptools.egg-info/PKG-INFO new/setuptools-28.7.1/setuptools.egg-info/PKG-INFO --- old/setuptools-28.6.1/setuptools.egg-info/PKG-INFO 2016-10-19 17:40:47.000000000 +0200 +++ new/setuptools-28.7.1/setuptools.egg-info/PKG-INFO 2016-10-30 03:40:44.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: setuptools -Version: 28.6.1 +Version: 28.7.1 Summary: Easily download, build, install, upgrade, and uninstall Python packages Home-page: https://github.com/pypa/setuptools Author: Python Packaging Authority diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/setuptools.egg-info/SOURCES.txt new/setuptools-28.7.1/setuptools.egg-info/SOURCES.txt --- old/setuptools-28.6.1/setuptools.egg-info/SOURCES.txt 2016-10-19 17:40:47.000000000 +0200 +++ new/setuptools-28.7.1/setuptools.egg-info/SOURCES.txt 2016-10-30 03:40:44.000000000 +0100 @@ -66,6 +66,7 @@ setuptools/lib2to3_ex.py setuptools/monkey.py setuptools/msvc.py +setuptools/namespaces.py setuptools/package_index.py setuptools/py26compat.py setuptools/py27compat.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-28.6.1/setuptools.egg-info/dependency_links.txt new/setuptools-28.7.1/setuptools.egg-info/dependency_links.txt --- old/setuptools-28.6.1/setuptools.egg-info/dependency_links.txt 2016-10-19 17:40:47.000000000 +0200 +++ new/setuptools-28.7.1/setuptools.egg-info/dependency_links.txt 2016-10-30 03:40:44.000000000 +0100 @@ -1,2 +1,2 @@ -https://pypi.python.org/packages/source/c/certifi/certifi-2016.9.26.tar.gz#md5=baa81e951a29958563689d868ef1064d -https://pypi.python.org/packages/source/w/wincertstore/wincertstore-0.2.zip#md5=ae728f2f007185648d0c7a8679b361e2 +https://files.pythonhosted.org/packages/source/c/certifi/certifi-2016.9.26.tar.gz#md5=baa81e951a29958563689d868ef1064d +https://files.pythonhosted.org/packages/source/w/wincertstore/wincertstore-0.2.zip#md5=ae728f2f007185648d0c7a8679b361e2