Hello community,

here is the log from the commit of package python3-setuptools for 
openSUSE:Factory checked in at 2016-10-22 13:11:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-18 10:37:44.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.python3-setuptools.new/python3-setuptools.changes   
    2016-10-22 13:11:46.000000000 +0200
@@ -1,0 +2,12 @@
+Fri Oct 21 04:31:23 UTC 2016 - [email protected]
+
+- update to version 28.6.1:
+  * #816: Fix manifest file list order in tests.
+
+- changes from version 28.6.0:
+  * #629: When scanning for packages, pkg_resources now ignores empty
+    egg-info directories and gives precedence to packages whose
+    versions are lexicographically greatest, a rough approximation
+    for preferring the latest available version.
+
+-------------------------------------------------------------------

Old:
----
  setuptools-28.5.0.tar.gz

New:
----
  setuptools-28.6.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python3-setuptools.spec ++++++
--- /var/tmp/diff_new_pack.iqKInF/_old  2016-10-22 13:11:47.000000000 +0200
+++ /var/tmp/diff_new_pack.iqKInF/_new  2016-10-22 13:11:47.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python3-setuptools
-Version:        28.5.0
+Version:        28.6.1
 Release:        0
 Url:            http://pypi.python.org/pypi/setuptools
 Summary:        Easily download, build, install, upgrade, and uninstall Python 
packages

++++++ setuptools-28.5.0.tar.gz -> setuptools-28.6.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/CHANGES.rst 
new/setuptools-28.6.1/CHANGES.rst
--- old/setuptools-28.5.0/CHANGES.rst   2016-10-15 05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/CHANGES.rst   2016-10-19 17:39:12.000000000 +0200
@@ -2,6 +2,20 @@
 CHANGES
 =======
 
+v28.6.1
+-------
+
+* #816: Fix manifest file list order in tests.
+
+v28.6.0
+-------
+
+* #629: When scanning for packages, ``pkg_resources`` now
+  ignores empty egg-info directories and gives precedence to
+  packages whose versions are lexicographically greatest,
+  a rough approximation for preferring the latest available
+  version.
+
 v28.5.0
 -------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/PKG-INFO 
new/setuptools-28.6.1/PKG-INFO
--- old/setuptools-28.5.0/PKG-INFO      2016-10-15 05:16:44.000000000 +0200
+++ new/setuptools-28.6.1/PKG-INFO      2016-10-19 17:40:47.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: setuptools
-Version: 28.5.0
+Version: 28.6.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.5.0/bootstrap.py 
new/setuptools-28.6.1/bootstrap.py
--- old/setuptools-28.5.0/bootstrap.py  2016-10-15 05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/bootstrap.py  2016-10-19 17:39:12.000000000 +0200
@@ -10,7 +10,6 @@
 import textwrap
 import subprocess
 
-
 minimal_egg_info = textwrap.dedent("""
     [distutils.commands]
     egg_info = setuptools.command.egg_info:egg_info
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/docs/conf.py 
new/setuptools-28.6.1/docs/conf.py
--- old/setuptools-28.5.0/docs/conf.py  2016-10-15 05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/docs/conf.py  2016-10-19 17:39:12.000000000 +0200
@@ -60,7 +60,6 @@
 # The name of the Pygments (syntax highlighting) style to use.
 pygments_style = 'sphinx'
 
-
 # -- Options for HTML output 
---------------------------------------------------
 
 # The theme to use for HTML and HTML Help pages.  Major themes that come with
@@ -93,7 +92,6 @@
 # Output file base name for HTML help builder.
 htmlhelp_basename = 'Setuptoolsdoc'
 
-
 # -- Options for LaTeX output 
--------------------------------------------------
 
 # Grouping the document tree into LaTeX files. List of tuples
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/pkg_resources/__init__.py 
new/setuptools-28.6.1/pkg_resources/__init__.py
--- old/setuptools-28.5.0/pkg_resources/__init__.py     2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/pkg_resources/__init__.py     2016-10-19 
17:39:12.000000000 +0200
@@ -1,5 +1,4 @@
 # coding: utf-8
-
 """
 Package resource API
 --------------------
@@ -74,7 +73,6 @@
 __import__('pkg_resources.extern.packaging.requirements')
 __import__('pkg_resources.extern.packaging.markers')
 
-
 if (3, 0) < sys.version_info < (3, 3):
     msg = (
         "Support for Python 3.0-3.2 has been dropped. Future versions "
@@ -96,7 +94,6 @@
 
 
 class _SetuptoolsVersionMixin(object):
-
     def __hash__(self):
         return super(_SetuptoolsVersionMixin, self).__hash__()
 
@@ -578,7 +575,6 @@
 
 
 class IMetadataProvider:
-
     def has_metadata(name):
         """Does the package's distribution contain the named metadata?"""
 
@@ -1983,12 +1979,20 @@
             )
         else:
             # scan for .egg and .egg-info in directory
-            for entry in os.listdir(path_item):
+
+            path_item_entries = os.listdir(path_item)
+            # Reverse so we find the newest version of a distribution,
+            path_item_entries.sort()
+            path_item_entries.reverse()
+            for entry in path_item_entries:
                 lower = entry.lower()
                 if lower.endswith('.egg-info') or lower.endswith('.dist-info'):
                     fullpath = os.path.join(path_item, entry)
                     if os.path.isdir(fullpath):
                         # egg-info directory, allow getting metadata
+                        if len(os.listdir(fullpath)) == 0:
+                            # Empty egg directory, skip.
+                            continue
                         metadata = PathMetadata(path_item, fullpath)
                     else:
                         metadata = FileMetadata(fullpath)
@@ -2730,7 +2734,6 @@
 
 
 class EggInfoDistribution(Distribution):
-
     def _reload_version(self):
         """
         Packages installed by distutils (e.g. numpy or scipy),
@@ -2817,7 +2820,6 @@
 
 
 class RequirementParseError(ValueError):
-
     def __str__(self):
         return ' '.join(self.args)
 
@@ -2842,7 +2844,6 @@
 
 
 class Requirement(packaging.requirements.Requirement):
-
     def __init__(self, requirement_string):
         """DO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!"""
         try:
@@ -2898,8 +2899,10 @@
 def _get_mro(cls):
     """Get an mro for a type or classic class"""
     if not isinstance(cls, type):
+
         class cls(cls, object):
             pass
+
         return cls.__mro__[1:]
     return cls.__mro__
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools-28.5.0/pkg_resources/tests/test_pkg_resources.py 
new/setuptools-28.6.1/pkg_resources/tests/test_pkg_resources.py
--- old/setuptools-28.5.0/pkg_resources/tests/test_pkg_resources.py     
2016-10-15 05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/pkg_resources/tests/test_pkg_resources.py     
2016-10-19 17:39:12.000000000 +0200
@@ -18,7 +18,6 @@
 
 import pkg_resources
 
-
 try:
     unicode
 except NameError:
@@ -37,7 +36,6 @@
 
 
 class EggRemover(unicode):
-
     def __call__(self):
         if self in sys.path:
             sys.path.remove(self)
@@ -100,7 +98,6 @@
 
 
 class TestResourceManager(object):
-
     def test_get_cache_path(self):
         mgr = pkg_resources.ResourceManager()
         path = mgr.get_cache_path('foo')
@@ -130,13 +127,13 @@
 
 
 class TestDeepVersionLookupDistutils(object):
-
     @pytest.fixture
     def env(self, tmpdir):
         """
         Create a package environment, similar to a virtualenv,
         in which packages are installed.
         """
+
         class Environment(str):
             pass
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools-28.5.0/pkg_resources/tests/test_resources.py 
new/setuptools-28.6.1/pkg_resources/tests/test_resources.py
--- old/setuptools-28.5.0/pkg_resources/tests/test_resources.py 2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/pkg_resources/tests/test_resources.py 2016-10-19 
17:39:12.000000000 +0200
@@ -36,7 +36,6 @@
 
 
 class TestDistro:
-
     def testCollection(self):
         # empty path should produce no distributions
         ad = pkg_resources.Environment([], platform=None, python=None)
@@ -313,7 +312,6 @@
 
 
 class TestWorkingSet:
-
     def test_find_conflicting(self):
         ws = WorkingSet([])
         Foo = Distribution.from_filename("/foo_dir/Foo-1.2.egg")
@@ -356,7 +354,6 @@
 
 
 class TestEntryPoints:
-
     def assertfields(self, ep):
         assert ep.name == "foo"
         assert ep.module_name == "pkg_resources.tests.test_resources"
@@ -457,7 +454,6 @@
 
 
 class TestRequirements:
-
     def testBasics(self):
         r = Requirement.parse("Twisted>=1.2")
         assert str(r) == "Twisted>=1.2"
@@ -538,7 +534,6 @@
 
 
 class TestParsing:
-
     def testEmptyParse(self):
         assert list(parse_requirements('')) == []
 
@@ -701,6 +696,7 @@
         value of parse_version. The new parse_version returns a Version class
         which needs to support this behavior, at least for now.
         """
+
         def buildout(parsed_version):
             _final_parts = '*final-', '*final'
 
@@ -709,6 +705,7 @@
                     if (part[:1] == '*') and (part not in _final_parts):
                         return False
                 return True
+
             return _final_version(parsed_version)
 
         assert buildout(parse_version("1.0"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setup.cfg 
new/setuptools-28.6.1/setup.cfg
--- old/setuptools-28.5.0/setup.cfg     2016-10-15 05:16:44.000000000 +0200
+++ new/setuptools-28.6.1/setup.cfg     2016-10-19 17:40:47.000000000 +0200
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 28.5.0
+current_version = 28.6.1
 commit = True
 tag = True
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setup.py 
new/setuptools-28.6.1/setup.py
--- old/setuptools-28.5.0/setup.py      2016-10-15 05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setup.py      2016-10-19 17:39:12.000000000 +0200
@@ -10,7 +10,6 @@
 
 import setuptools
 
-
 here = os.path.dirname(__file__)
 
 
@@ -86,7 +85,7 @@
 
 setup_params = dict(
     name="setuptools",
-    version="28.5.0",
+    version="28.6.1",
     description="Easily download, build, install, upgrade, and uninstall "
         "Python packages",
     author="Python Packaging Authority",
@@ -97,11 +96,8 @@
     src_root=None,
     packages=setuptools.find_packages(exclude=['*.tests']),
     package_data=package_data,
-
     py_modules=['easy_install'],
-
     zip_safe=True,
-
     entry_points={
         "distutils.commands": [
             "%(cmd)s = setuptools.command.%(cmd)s:%(cmd)s" % locals()
@@ -141,12 +137,9 @@
             "dependency_links.txt = setuptools.command.egg_info:overwrite_arg",
         ],
         "console_scripts": list(_gen_console_scripts()),
-
         "setuptools.installation":
             ['eggsecutable = setuptools.command.easy_install:bootstrap'],
     },
-
-
     classifiers=textwrap.dedent("""
         Development Status :: 5 - Production/Stable
         Intended Audience :: Developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/__init__.py 
new/setuptools-28.6.1/setuptools/__init__.py
--- old/setuptools-28.5.0/setuptools/__init__.py        2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/__init__.py        2016-10-19 
17:39:12.000000000 +0200
@@ -102,7 +102,6 @@
 
 
 class PEP420PackageFinder(PackageFinder):
-
     @staticmethod
     def _looks_like_package(path):
         return True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/archive_util.py 
new/setuptools-28.6.1/setuptools/archive_util.py
--- old/setuptools-28.5.0/setuptools/archive_util.py    2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/archive_util.py    2016-10-19 
17:39:12.000000000 +0200
@@ -10,7 +10,6 @@
 
 from pkg_resources import ensure_directory, ContextualZipFile
 
-
 __all__ = [
     "unpack_archive", "unpack_zipfile", "unpack_tarfile", "default_filter",
     "UnrecognizedFormat", "extraction_drivers", "unpack_directory",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/command/__init__.py 
new/setuptools-28.6.1/setuptools/command/__init__.py
--- old/setuptools-28.5.0/setuptools/command/__init__.py        2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/command/__init__.py        2016-10-19 
17:39:12.000000000 +0200
@@ -10,7 +10,6 @@
 
 from setuptools.command import install_scripts
 
-
 if 'egg' not in bdist.format_commands:
     bdist.format_command['egg'] = ('bdist_egg', "Python .egg file")
     bdist.format_commands.append('egg')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/command/bdist_egg.py 
new/setuptools-28.6.1/setuptools/command/bdist_egg.py
--- old/setuptools-28.5.0/setuptools/command/bdist_egg.py       2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/command/bdist_egg.py       2016-10-19 
17:39:12.000000000 +0200
@@ -429,10 +429,10 @@
     log.warn("Please ask the author to include a 'zip_safe'"
              " setting (either True or False) in the package's setup.py")
 
+
 # Attribute names of options for commands that might need to be convinced to
 # install to the egg build directory
 
-
 INSTALL_DIRECTORY_ATTRS = [
     'install_lib', 'install_dir', 'install_data', 'install_base'
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools-28.5.0/setuptools/command/bdist_wininst.py 
new/setuptools-28.6.1/setuptools/command/bdist_wininst.py
--- old/setuptools-28.5.0/setuptools/command/bdist_wininst.py   2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/command/bdist_wininst.py   2016-10-19 
17:39:12.000000000 +0200
@@ -2,7 +2,6 @@
 
 
 class bdist_wininst(orig.bdist_wininst):
-
     def reinitialize_command(self, command, reinit_subcommands=0):
         """
         Supplement reinitialize_command to work around
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/command/build_ext.py 
new/setuptools-28.6.1/setuptools/command/build_ext.py
--- old/setuptools-28.5.0/setuptools/command/build_ext.py       2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/command/build_ext.py       2016-10-19 
17:39:12.000000000 +0200
@@ -56,7 +56,6 @@
     except ImportError:
         pass
 
-
 if_dl = lambda s: s if have_rtld else ''
 
 
@@ -70,7 +69,6 @@
 
 
 class build_ext(_build_ext):
-
     def run(self):
         """Build extensions in build directory, then copy if --inplace"""
         old_inplace, self.inplace = self.inplace, 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/command/build_py.py 
new/setuptools-28.6.1/setuptools/command/build_py.py
--- old/setuptools-28.5.0/setuptools/command/build_py.py        2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/command/build_py.py        2016-10-19 
17:39:12.000000000 +0200
@@ -14,8 +14,8 @@
 try:
     from setuptools.lib2to3_ex import Mixin2to3
 except ImportError:
-    class Mixin2to3:
 
+    class Mixin2to3:
         def run_2to3(self, files, doctests=True):
             "do nothing"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/command/easy_install.py 
new/setuptools-28.6.1/setuptools/command/easy_install.py
--- old/setuptools-28.5.0/setuptools/command/easy_install.py    2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/command/easy_install.py    2016-10-19 
17:39:12.000000000 +0200
@@ -1,5 +1,4 @@
 #!/usr/bin/env python
-
 """
 Easy Install
 ------------
@@ -64,7 +63,6 @@
 # Turn on PEP440Warnings
 warnings.filterwarnings("default", category=pkg_resources.PEP440Warning)
 
-
 __all__ = [
     'samefile', 'easy_install', 'PthDistributions', 'extract_wininst_cfg',
     'main', 'get_exe_prefixes',
@@ -92,6 +90,7 @@
 
 
 if six.PY2:
+
     def _to_ascii(s):
         return s
 
@@ -102,6 +101,7 @@
         except UnicodeError:
             return False
 else:
+
     def _to_ascii(s):
         return s.encode('ascii')
 
@@ -1632,7 +1632,6 @@
 
 
 class RewritePthDistributions(PthDistributions):
-
     @classmethod
     def _wrap_lines(cls, lines):
         yield cls.prelude
@@ -1837,6 +1836,7 @@
     _replace_zip_directory_cache_data = \
         _remove_and_clear_zip_directory_cache_data
 else:
+
     def _replace_zip_directory_cache_data(normalized_path):
         def replace_cached_zip_archive_directory_data(path, old_entry):
             # N.B. In theory, we could load the zip directory information just
@@ -2164,7 +2164,6 @@
 
 
 class WindowsExecutableLauncherWriter(WindowsScriptWriter):
-
     @classmethod
     def _get_script_args(cls, type_, name, header, script_text):
         """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/command/sdist.py 
new/setuptools-28.6.1/setuptools/command/sdist.py
--- old/setuptools-28.5.0/setuptools/command/sdist.py   2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/command/sdist.py   2016-10-19 
17:39:12.000000000 +0200
@@ -89,8 +89,10 @@
         """
         In a context, remove and restore os.link if it exists
         """
+
         class NoValue:
             pass
+
         orig_val = getattr(os, 'link', NoValue)
         try:
             del os.link
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/command/setopt.py 
new/setuptools-28.6.1/setuptools/command/setopt.py
--- old/setuptools-28.5.0/setuptools/command/setopt.py  2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/command/setopt.py  2016-10-19 
17:39:12.000000000 +0200
@@ -8,7 +8,6 @@
 
 from setuptools import Command
 
-
 __all__ = ['config_file', 'edit_config', 'option_base', 'setopt']
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/command/test.py 
new/setuptools-28.6.1/setuptools/command/test.py
--- old/setuptools-28.5.0/setuptools/command/test.py    2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/command/test.py    2016-10-19 
17:39:12.000000000 +0200
@@ -17,7 +17,6 @@
 
 
 class ScanningLoader(TestLoader):
-
     def loadTestsFromModule(self, module, pattern=None):
         """Return a suite of all tests cases contained in the given module
 
@@ -50,7 +49,6 @@
 
 # adapted from jaraco.classes.properties:NonDataProperty
 class NonDataProperty(object):
-
     def __init__(self, fget):
         self.fget = fget
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/depends.py 
new/setuptools-28.6.1/setuptools/depends.py
--- old/setuptools-28.5.0/setuptools/depends.py 2016-10-15 05:15:01.000000000 
+0200
+++ new/setuptools-28.6.1/setuptools/depends.py 2016-10-19 17:39:12.000000000 
+0200
@@ -145,7 +145,7 @@
 
     try:
         if kind == PY_COMPILED:
-            f.read(8)   # skip magic & date
+            f.read(8)  # skip magic & date
             code = marshal.load(f)
         elif kind == PY_FROZEN:
             code = imp.get_frozen_object(module)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/dist.py 
new/setuptools-28.6.1/setuptools/dist.py
--- old/setuptools-28.5.0/setuptools/dist.py    2016-10-15 05:15:01.000000000 
+0200
+++ new/setuptools-28.6.1/setuptools/dist.py    2016-10-19 17:39:12.000000000 
+0200
@@ -412,7 +412,7 @@
             )
             for key in list(opts):
                 if key not in keep:
-                    del opts[key]   # don't use any other settings
+                    del opts[key]  # don't use any other settings
             if self.dependency_links:
                 links = self.dependency_links[:]
                 if 'find_links' in opts:
@@ -650,7 +650,7 @@
         aliases = self.get_option_dict('aliases')
         while command in aliases:
             src, alias = aliases[command]
-            del aliases[command]    # ensure each alias can expand only once!
+            del aliases[command]  # ensure each alias can expand only once!
             import shlex
             args[:1] = shlex.split(alias, True)
             command = args[0]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/extension.py 
new/setuptools-28.6.1/setuptools/extension.py
--- old/setuptools-28.5.0/setuptools/extension.py       2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/extension.py       2016-10-19 
17:39:12.000000000 +0200
@@ -26,7 +26,6 @@
 # for compatibility
 have_pyrex = _have_cython
 
-
 _Extension = get_unpatched(distutils.core.Extension)
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/extern/__init__.py 
new/setuptools-28.6.1/setuptools/extern/__init__.py
--- old/setuptools-28.5.0/setuptools/extern/__init__.py 2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/extern/__init__.py 2016-10-19 
17:39:12.000000000 +0200
@@ -1,5 +1,4 @@
 from pkg_resources.extern import VendorImporter
 
-
 names = 'six',
 VendorImporter(__name__, names, 'pkg_resources._vendor').install()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/glob.py 
new/setuptools-28.6.1/setuptools/glob.py
--- old/setuptools-28.5.0/setuptools/glob.py    2016-10-15 05:15:01.000000000 
+0200
+++ new/setuptools-28.6.1/setuptools/glob.py    2016-10-19 17:39:12.000000000 
+0200
@@ -14,6 +14,7 @@
 
 __all__ = ["glob", "iglob", "escape"]
 
+
 def glob(pathname, recursive=False):
     """Return a list of paths matching a pathname pattern.
 
@@ -27,6 +28,7 @@
     """
     return list(iglob(pathname, recursive=recursive))
 
+
 def iglob(pathname, recursive=False):
     """Return an iterator which yields the paths matching a pathname pattern.
 
@@ -44,6 +46,7 @@
         assert not s
     return it
 
+
 def _iglob(pathname, recursive):
     dirname, basename = os.path.split(pathname)
     if not has_magic(pathname):
@@ -81,10 +84,12 @@
         for name in glob_in_dir(dirname, basename):
             yield os.path.join(dirname, name)
 
+
 # These 2 helper functions non-recursively glob inside a literal directory.
 # They return a list of basenames. `glob1` accepts a pattern while `glob0`
 # takes a literal basename (so it only has to check for its existence).
 
+
 def glob1(dirname, pattern):
     if not dirname:
         if isinstance(pattern, binary_type):
@@ -97,6 +102,7 @@
         return []
     return fnmatch.filter(names, pattern)
 
+
 def glob0(dirname, basename):
     if not basename:
         # `os.path.split()` returns an empty basename for paths ending with a
@@ -108,9 +114,11 @@
             return [basename]
     return []
 
+
 # This helper function recursively yields relative pathnames inside a literal
 # directory.
 
+
 def glob2(dirname, pattern):
     assert _isrecursive(pattern)
     yield pattern[:0]
@@ -139,6 +147,7 @@
 magic_check = re.compile('([*?[])')
 magic_check_bytes = re.compile(b'([*?[])')
 
+
 def has_magic(s):
     if isinstance(s, binary_type):
         match = magic_check_bytes.search(s)
@@ -146,12 +155,14 @@
         match = magic_check.search(s)
     return match is not None
 
+
 def _isrecursive(pattern):
     if isinstance(pattern, binary_type):
         return pattern == b'**'
     else:
         return pattern == '**'
 
+
 def escape(pathname):
     """Escape all special characters.
     """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/lib2to3_ex.py 
new/setuptools-28.6.1/setuptools/lib2to3_ex.py
--- old/setuptools-28.5.0/setuptools/lib2to3_ex.py      2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/lib2to3_ex.py      2016-10-19 
17:39:12.000000000 +0200
@@ -15,7 +15,6 @@
 
 
 class DistutilsRefactoringTool(RefactoringTool):
-
     def log_error(self, msg, *args, **kw):
         log.error(msg, *args)
 
@@ -27,7 +26,6 @@
 
 
 class Mixin2to3(_Mixin2to3):
-
     def run_2to3(self, files, doctests=False):
         # See of the distribution option has been set, otherwise check the
         # setuptools default.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/monkey.py 
new/setuptools-28.6.1/setuptools/monkey.py
--- old/setuptools-28.5.0/setuptools/monkey.py  2016-10-15 05:15:01.000000000 
+0200
+++ new/setuptools-28.6.1/setuptools/monkey.py  2016-10-19 17:39:12.000000000 
+0200
@@ -13,7 +13,6 @@
 
 import setuptools
 
-
 __all__ = []
 """
 Everything is private. Contact the project team
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/msvc.py 
new/setuptools-28.6.1/setuptools/msvc.py
--- old/setuptools-28.5.0/setuptools/msvc.py    2016-10-15 05:15:01.000000000 
+0200
+++ new/setuptools-28.6.1/setuptools/msvc.py    2016-10-19 17:39:12.000000000 
+0200
@@ -34,11 +34,13 @@
     Mock winreg and environ so the module can be imported
     on this platform.
     """
+
     class winreg:
         HKEY_USERS = None
         HKEY_CURRENT_USER = None
         HKEY_LOCAL_MACHINE = None
         HKEY_CLASSES_ROOT = None
+
     safe_env = dict()
 
 try:
@@ -458,6 +460,7 @@
     vc_ver: float
         Required Microsoft Visual C++ version.
     """
+
     # Variables and properties in this class use originals CamelCase variables
     # names from Microsoft source files for more easy comparaison.
     WinDir = safe_env.get('WinDir', '')
@@ -758,6 +761,7 @@
     vc_min_ver: float
         Minimum Microsoft Visual C++ version.
     """
+
     # Variables and properties in this class use originals CamelCase variables
     # names from Microsoft source files for more easy comparaison.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/package_index.py 
new/setuptools-28.6.1/setuptools/package_index.py
--- old/setuptools-28.5.0/setuptools/package_index.py   2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/package_index.py   2016-10-19 
17:39:12.000000000 +0200
@@ -47,7 +47,6 @@
 
 _SOCKET_TIMEOUT = 15
 
-
 _tmpl = "setuptools/{setuptools.__version__} Python-urllib/{py_major}"
 user_agent = _tmpl.format(py_major=sys.version[:3], **globals())
 
@@ -89,7 +88,7 @@
     parts = urllib.parse.urlparse(url)
     scheme, server, path, parameters, query, fragment = parts
     base = urllib.parse.unquote(path.split('/')[-1])
-    if server == 'sourceforge.net' and base == 'download':    # XXX Yuck
+    if server == 'sourceforge.net' and base == 'download':  # XXX Yuck
         base = urllib.parse.unquote(path.split('/')[-2])
     if '#' in base:
         base, fragment = base.split('#', 1)
@@ -113,7 +112,7 @@
 def distros_for_location(location, basename, metadata=None):
     """Yield egg or source distribution objects based on basename"""
     if basename.endswith('.egg.zip'):
-        basename = basename[:-4]    # strip the .zip
+        basename = basename[:-4]  # strip the .zip
     if basename.endswith('.egg') and '-' in basename:
         # only one, unambiguous interpretation
         return [Distribution.from_location(location, basename, metadata)]
@@ -198,9 +197,11 @@
     Wrap a function returning an iterable such that the resulting iterable
     only ever yields unique items.
     """
+
     @wraps(func)
     def wrapper(*args, **kwargs):
         return unique_everseen(func(*args, **kwargs))
+
     return wrapper
 
 
@@ -333,17 +334,17 @@
             return
 
         self.info("Reading %s", url)
-        self.fetched_urls[url] = True   # prevent multiple fetch attempts
+        self.fetched_urls[url] = True  # prevent multiple fetch attempts
         tmpl = "Download error on %s: %%s -- Some packages may not be found!"
         f = self.open_url(url, tmpl % url)
         if f is None:
             return
         self.fetched_urls[f.url] = True
         if 'html' not in f.headers.get('content-type', '').lower():
-            f.close()   # not html, we can't process it
+            f.close()  # not html, we can't process it
             return
 
-        base = f.url     # handle redirects
+        base = f.url  # handle redirects
         page = f.read()
         if not isinstance(page, str):  # We are in Python 3 and got bytes. We 
want str.
             if isinstance(f, urllib.error.HTTPError):
@@ -415,6 +416,7 @@
 
     def process_index(self, url, page):
         """Process the contents of a PyPI page"""
+
         def scan(link):
             # Process a URL to see if it's for a package page
             if link.startswith(self.index_url):
@@ -436,7 +438,7 @@
             except ValueError:
                 pass
 
-        pkg, ver = scan(url)   # ensure this page is in the page index
+        pkg, ver = scan(url)  # ensure this page is in the page index
         if pkg:
             # process individual package page
             for new_url in find_external_links(url, page):
@@ -453,7 +455,7 @@
                 lambda m: '<a href="%s#md5=%s">%s</a>' % m.group(1, 3, 2), page
             )
         else:
-            return ""   # no sense double-scanning non-package pages
+            return ""  # no sense double-scanning non-package pages
 
     def need_version_info(self, url):
         self.scan_all(
@@ -528,12 +530,12 @@
         """Scan urls scheduled for prescanning (e.g. --find-links)"""
         if self.to_scan:
             list(map(self.scan_url, self.to_scan))
-        self.to_scan = None     # from now on, go ahead and process immediately
+        self.to_scan = None  # from now on, go ahead and process immediately
 
     def not_found_in_index(self, requirement):
-        if self[requirement.key]:   # we've seen at least one distro
+        if self[requirement.key]:  # we've seen at least one distro
             meth, msg = self.info, "Couldn't retrieve index page for %r"
-        else:   # no distros seen for this name, might be misspelled
+        else:  # no distros seen for this name, might be misspelled
             meth, msg = (self.warn,
                 "Couldn't find index page for %r (maybe misspelled?)")
         meth(msg, requirement.unsafe_name)
@@ -663,7 +665,7 @@
             interpret_distro_name(filename, match.group(1), None) if d.version
         ] or []
 
-        if len(dists) == 1:   # unambiguous ``#egg`` fragment
+        if len(dists) == 1:  # unambiguous ``#egg`` fragment
             basename = os.path.basename(filename)
 
             # Make sure the file has been downloaded to the temp dir.
@@ -736,7 +738,7 @@
                 fp.close()
 
     def reporthook(self, url, filename, blocknum, blksize, size):
-        pass    # no-op
+        pass  # no-op
 
     def open_url(self, url, warning=None):
         if url.startswith('file:'):
@@ -781,10 +783,10 @@
             while '..' in name:
                 name = name.replace('..', '.').replace('\\', '_')
         else:
-            name = "__downloaded__"    # default if URL has no path contents
+            name = "__downloaded__"  # default if URL has no path contents
 
         if name.endswith('.egg.zip'):
-            name = name[:-4]    # strip the extra .zip before download
+            name = name[:-4]  # strip the extra .zip before download
 
         filename = os.path.join(tmpdir, name)
 
@@ -799,7 +801,7 @@
         elif scheme == 'file':
             return urllib.request.url2pathname(urllib.parse.urlparse(url)[2])
         else:
-            self.url_ok(url, True)   # raises error if not allowed
+            self.url_ok(url, True)  # raises error if not allowed
             return self._attempt_download(url, filename)
 
     def scan_url(self, url):
@@ -822,13 +824,13 @@
                     file.close()
                     os.unlink(filename)
                     return self._download_svn(url, filename)
-                break   # not an index page
+                break  # not an index page
         file.close()
         os.unlink(filename)
         raise DistutilsError("Unexpected HTML page found at " + url)
 
     def _download_svn(self, url, filename):
-        url = url.split('#', 1)[0]   # remove any fragment for svn's sake
+        url = url.split('#', 1)[0]  # remove any fragment for svn's sake
         creds = ''
         if url.lower().startswith('svn:') and '@' in url:
             scheme, netloc, path, p, q, f = urllib.parse.urlparse(url)
@@ -946,7 +948,9 @@
                 return func(*args, **kwargs)
             finally:
                 socket.setdefaulttimeout(old_timeout)
+
         return _socket_timeout
+
     return _socket_timeout
 
 
@@ -991,7 +995,6 @@
 
 
 class PyPIConfig(configparser.RawConfigParser):
-
     def __init__(self):
         """
         Load from ~/.pypirc
@@ -1079,7 +1082,7 @@
 
 
 def fix_sf_url(url):
-    return url      # backward compatibility
+    return url  # backward compatibility
 
 
 def local_open(url):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/py26compat.py 
new/setuptools-28.6.1/setuptools/py26compat.py
--- old/setuptools-28.5.0/setuptools/py26compat.py      2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/py26compat.py      2016-10-19 
17:39:12.000000000 +0200
@@ -23,9 +23,9 @@
 if sys.version_info >= (2, 7):
     strip_fragment = lambda x: x
 
-
 try:
     from importlib import import_module
 except ImportError:
+
     def import_module(module_name):
         return __import__(module_name, fromlist=['__name__'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/py27compat.py 
new/setuptools-28.6.1/setuptools/py27compat.py
--- old/setuptools-28.5.0/setuptools/py27compat.py      2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/py27compat.py      2016-10-19 
17:39:12.000000000 +0200
@@ -13,5 +13,6 @@
 
 
 if sys.version_info < (3,):
+
     def get_all_headers(message, key):
         return message.getheaders(key)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/py31compat.py 
new/setuptools-28.6.1/setuptools/py31compat.py
--- old/setuptools-28.5.0/setuptools/py31compat.py      2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/py31compat.py      2016-10-19 
17:39:12.000000000 +0200
@@ -14,6 +14,7 @@
             raise ValueError("Name must be purelib or platlib")
         return get_python_lib(name == 'platlib')
 
+
 try:
     # Python >=3.2
     from tempfile import TemporaryDirectory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/sandbox.py 
new/setuptools-28.6.1/setuptools/sandbox.py
--- old/setuptools-28.5.0/setuptools/sandbox.py 2016-10-15 05:15:01.000000000 
+0200
+++ new/setuptools-28.6.1/setuptools/sandbox.py 2016-10-19 17:39:12.000000000 
+0200
@@ -99,6 +99,7 @@
     """
     An exception representing another Exception that could not be pickled.
     """
+
     @staticmethod
     def dump(type, exc):
         """
@@ -243,6 +244,7 @@
             def runner():
                 ns = dict(__file__=setup_script, __name__='__main__')
                 _execfile(setup_script, ns)
+
             DirectorySandbox(setup_dir).run(runner)
         except SystemExit as v:
             if v.args and v.args[0]:
@@ -288,6 +290,7 @@
             if self._active:
                 src, dst = self._remap_pair(name, src, dst, *args, **kw)
             return original(src, dst, *args, **kw)
+
         return wrap
 
     for name in ["rename", "link", "symlink"]:
@@ -301,6 +304,7 @@
             if self._active:
                 path = self._remap_input(name, path, *args, **kw)
             return original(path, *args, **kw)
+
         return wrap
 
     if _file:
@@ -322,6 +326,7 @@
                 path = self._remap_input(name, path, *args, **kw)
                 return self._remap_output(name, original(path, *args, **kw))
             return original(path, *args, **kw)
+
         return wrap
 
     for name in ['readlink', 'tempnam']:
@@ -336,6 +341,7 @@
             if self._active:
                 return self._remap_output(name, retval)
             return retval
+
         return wrap
 
     for name in ['getcwd', 'tmpnam']:
@@ -404,6 +410,7 @@
         raise SandboxViolation(operation, args, kw)
 
     if _file:
+
         def _file(self, path, mode='r', *args, **kw):
             if mode not in ('r', 'rt', 'rb', 'rU', 'U') and not self._ok(path):
                 self._violation("file", path, mode, *args, **kw)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/site-patch.py 
new/setuptools-28.6.1/setuptools/site-patch.py
--- old/setuptools-28.5.0/setuptools/site-patch.py      2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/site-patch.py      2016-10-19 
17:39:12.000000000 +0200
@@ -40,13 +40,13 @@
 
     known_paths = dict([(makepath(item)[1], 1) for item in sys.path])  # 2.2 
comp
 
-    oldpos = getattr(sys, '__egginsert', 0)   # save old insertion position
-    sys.__egginsert = 0                     # and reset the current one
+    oldpos = getattr(sys, '__egginsert', 0)  # save old insertion position
+    sys.__egginsert = 0  # and reset the current one
 
     for item in PYTHONPATH:
         addsitedir(item)
 
-    sys.__egginsert += oldpos           # restore effective old position
+    sys.__egginsert += oldpos  # restore effective old position
 
     d, nd = makepath(stdpath[0])
     insert_at = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/ssl_support.py 
new/setuptools-28.6.1/setuptools/ssl_support.py
--- old/setuptools-28.5.0/setuptools/ssl_support.py     2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/ssl_support.py     2016-10-19 
17:39:12.000000000 +0200
@@ -29,7 +29,6 @@
 /etc/ssl/ca-bundle.pem
 """.strip().split()
 
-
 try:
     HTTPSHandler = urllib.request.HTTPSHandler
     HTTPSConnection = http_client.HTTPSConnection
@@ -50,10 +49,13 @@
         match_hostname = None
 
 if not CertificateError:
+
     class CertificateError(ValueError):
         pass
 
+
 if not match_hostname:
+
     def _dnsname_match(dn, hostname, max_wildcards=1):
         """Matching according to RFC 6125, section 6.4.3
 
@@ -216,7 +218,6 @@
         return None
 
     class MyCertFile(CertFile):
-
         def __init__(self, stores=(), certs=()):
             CertFile.__init__(self)
             for store in stores:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/tests/__init__.py 
new/setuptools-28.6.1/setuptools/tests/__init__.py
--- old/setuptools-28.5.0/setuptools/tests/__init__.py  2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/__init__.py  2016-10-19 
17:39:12.000000000 +0200
@@ -42,7 +42,6 @@
 
 
 class TestDepends:
-
     def testExtractConst(self):
         if not hasattr(dep, 'extract_constant'):
             # skip on non-bytecode platforms
@@ -123,7 +122,6 @@
 
 
 class TestDistro:
-
     def setup_method(self, method):
         self.e1 = Extension('bar.ext', ['bar.c'])
         self.e2 = Extension('c.y', ['y.c'])
@@ -214,7 +212,6 @@
 
 
 class TestFeatures:
-
     def setup_method(self, method):
         self.req = Require('Distutils', '1.0.3', 'distutils')
         self.dist = makeSetup(
@@ -292,7 +289,6 @@
 
 
 class TestCommandTests:
-
     def testTestIsCommand(self):
         test_cmd = makeSetup().get_command_obj('test')
         assert (isinstance(test_cmd, distutils.cmd.Command))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/tests/server.py 
new/setuptools-28.6.1/setuptools/tests/server.py
--- old/setuptools-28.5.0/setuptools/tests/server.py    2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/server.py    2016-10-19 
17:39:12.000000000 +0200
@@ -45,7 +45,6 @@
 
 
 class RequestRecorder(BaseHTTPServer.BaseHTTPRequestHandler):
-
     def do_GET(self):
         requests = vars(self.server).setdefault('requests', [])
         requests.append(self)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/tests/test_bdist_egg.py 
new/setuptools-28.6.1/setuptools/tests/test_bdist_egg.py
--- old/setuptools-28.5.0/setuptools/tests/test_bdist_egg.py    2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_bdist_egg.py    2016-10-19 
17:39:12.000000000 +0200
@@ -9,7 +9,6 @@
 
 from . import contexts
 
-
 SETUP_PY = """\
 from setuptools import setup
 
@@ -28,7 +27,6 @@
 
 
 class Test:
-
     def test_bdist_egg(self, setup_context, user_override):
         dist = Distribution(dict(
             script_name='setup.py',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/tests/test_build_ext.py 
new/setuptools-28.6.1/setuptools/tests/test_build_ext.py
--- old/setuptools-28.5.0/setuptools/tests/test_build_ext.py    2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_build_ext.py    2016-10-19 
17:39:12.000000000 +0200
@@ -10,7 +10,6 @@
 
 
 class TestBuildExt:
-
     def test_get_ext_filename(self):
         """
         Setuptools needs to give back the same
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/tests/test_develop.py 
new/setuptools-28.6.1/setuptools/tests/test_develop.py
--- old/setuptools-28.5.0/setuptools/tests/test_develop.py      2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_develop.py      2016-10-19 
17:39:12.000000000 +0200
@@ -13,7 +13,6 @@
 from setuptools.dist import Distribution
 from . import contexts
 
-
 SETUP_PY = """\
 from setuptools import setup
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools-28.5.0/setuptools/tests/test_easy_install.py 
new/setuptools-28.6.1/setuptools/tests/test_easy_install.py
--- old/setuptools-28.5.0/setuptools/tests/test_easy_install.py 2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_easy_install.py 2016-10-19 
17:39:12.000000000 +0200
@@ -1,5 +1,4 @@
 # -*- coding: utf-8 -*-
-
 """Easy install Tests
 """
 from __future__ import absolute_import
@@ -42,7 +41,6 @@
 
 
 class FakeDist(object):
-
     def get_entry_map(self, group):
         if group != 'console_scripts':
             return {}
@@ -60,7 +58,6 @@
 
 
 class TestEasyInstallTest:
-
     def test_install_site_py(self, tmpdir):
         dist = Distribution()
         cmd = ei.easy_install(dist)
@@ -194,7 +191,6 @@
 
 
 class TestPTHFileWriter:
-
     def test_add_from_cwd_site_sets_dirty(self):
         '''a pth file manager should set dirty
         if a distribution is in site but also the cwd
@@ -328,13 +324,11 @@
 
 
 class TestDistutilsPackage:
-
     def test_bdist_egg_available_on_distutils_pkg(self, distutils_package):
         run_setup('setup.py', ['bdist_egg'])
 
 
 class TestSetupRequires:
-
     def test_setup_requires_honors_fetch_params(self):
         """
         When easy_install installs a source distribution which specifies
@@ -623,7 +617,6 @@
 
 
 class TestCommandSpec:
-
     def test_custom_launch_command(self):
         """
         Show how a custom CommandSpec could be used to specify a #! executable
@@ -659,7 +652,6 @@
 
 
 class TestWindowsScriptWriter:
-
     def test_header(self):
         hdr = ei.WindowsScriptWriter.get_script_header('')
         assert hdr.startswith('#!')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/tests/test_egg_info.py 
new/setuptools-28.6.1/setuptools/tests/test_egg_info.py
--- old/setuptools-28.5.0/setuptools/tests/test_egg_info.py     2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_egg_info.py     2016-10-19 
17:39:12.000000000 +0200
@@ -262,7 +262,6 @@
 
     def _find_egg_info_files(self, root):
         class DirList(list):
-
             def __init__(self, files, base):
                 super(DirList, self).__init__(files)
                 self.base = base
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools-28.5.0/setuptools/tests/test_find_packages.py 
new/setuptools-28.6.1/setuptools/tests/test_find_packages.py
--- old/setuptools-28.5.0/setuptools/tests/test_find_packages.py        
2016-10-15 05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_find_packages.py        
2016-10-19 17:39:12.000000000 +0200
@@ -38,7 +38,6 @@
 
 
 class TestFindPackages:
-
     def setup_method(self, method):
         self.dist_dir = tempfile.mkdtemp()
         self._make_pkg_structure()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools-28.5.0/setuptools/tests/test_integration.py 
new/setuptools-28.6.1/setuptools/tests/test_integration.py
--- old/setuptools-28.5.0/setuptools/tests/test_integration.py  2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_integration.py  2016-10-19 
17:39:12.000000000 +0200
@@ -49,6 +49,7 @@
         user_base.remove()
         user_site.remove()
         install_dir.remove()
+
     request.addfinalizer(fin)
 
     # Change the environment and site settings to control where the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/tests/test_manifest.py 
new/setuptools-28.6.1/setuptools/tests/test_manifest.py
--- old/setuptools-28.5.0/setuptools/tests/test_manifest.py     2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_manifest.py     2016-10-19 
17:39:12.000000000 +0200
@@ -30,7 +30,6 @@
     'packages': ['app'],
 }
 
-
 SETUP_PY = """\
 from setuptools import setup
 
@@ -95,7 +94,6 @@
 
 
 class TempDirTestCase(object):
-
     def setup_method(self, method):
         self.temp_dir = tempfile.mkdtemp()
         self.old_cwd = os.getcwd()
@@ -107,14 +105,12 @@
 
 
 class TestManifestTest(TempDirTestCase):
-
     def setup_method(self, method):
         super(TestManifestTest, self).setup_method(method)
 
         f = open(os.path.join(self.temp_dir, 'setup.py'), 'w')
         f.write(SETUP_PY)
         f.close()
-
         """
         Create a file tree like:
         - LICENSE
@@ -351,8 +347,8 @@
             l('global/one.txt'),
             l('global/two.txt'),
         ]
-        file_list.sort()
 
+        file_list.sort()
         assert file_list.files == wanted
 
     def test_exclude_pattern(self):
@@ -369,6 +365,7 @@
         file_list = FileList()
         file_list.files = ['a.py', 'a.txt']
         file_list.exclude_pattern('*.py')
+        file_list.sort()
         assert file_list.files == ['a.txt']
 
     def test_include_pattern(self):
@@ -386,6 +383,7 @@
         file_list = FileList()
         self.make_files(['a.py', 'b.txt'])
         file_list.include_pattern('*')
+        file_list.sort()
         assert file_list.files == ['a.py', 'b.txt']
 
     def test_process_template_line_invalid(self):
@@ -410,10 +408,12 @@
         self.make_files(['a.py', 'b.txt', l('d/c.py')])
 
         file_list.process_template_line('include *.py')
+        file_list.sort()
         assert file_list.files == ['a.py']
         self.assertNoWarnings()
 
         file_list.process_template_line('include *.rb')
+        file_list.sort()
         assert file_list.files == ['a.py']
         self.assertWarnings()
 
@@ -424,10 +424,12 @@
         file_list.files = ['a.py', 'b.txt', l('d/c.py')]
 
         file_list.process_template_line('exclude *.py')
+        file_list.sort()
         assert file_list.files == ['b.txt', l('d/c.py')]
         self.assertNoWarnings()
 
         file_list.process_template_line('exclude *.rb')
+        file_list.sort()
         assert file_list.files == ['b.txt', l('d/c.py')]
         self.assertWarnings()
 
@@ -438,10 +440,12 @@
         self.make_files(['a.py', 'b.txt', l('d/c.py')])
 
         file_list.process_template_line('global-include *.py')
+        file_list.sort()
         assert file_list.files == ['a.py', l('d/c.py')]
         self.assertNoWarnings()
 
         file_list.process_template_line('global-include *.rb')
+        file_list.sort()
         assert file_list.files == ['a.py', l('d/c.py')]
         self.assertWarnings()
 
@@ -452,10 +456,12 @@
         file_list.files = ['a.py', 'b.txt', l('d/c.py')]
 
         file_list.process_template_line('global-exclude *.py')
+        file_list.sort()
         assert file_list.files == ['b.txt']
         self.assertNoWarnings()
 
         file_list.process_template_line('global-exclude *.rb')
+        file_list.sort()
         assert file_list.files == ['b.txt']
         self.assertWarnings()
 
@@ -466,10 +472,12 @@
         self.make_files(['a.py', l('d/b.py'), l('d/c.txt'), l('d/d/e.py')])
 
         file_list.process_template_line('recursive-include d *.py')
+        file_list.sort()
         assert file_list.files == [l('d/b.py'), l('d/d/e.py')]
         self.assertNoWarnings()
 
         file_list.process_template_line('recursive-include e *.py')
+        file_list.sort()
         assert file_list.files == [l('d/b.py'), l('d/d/e.py')]
         self.assertWarnings()
 
@@ -480,10 +488,12 @@
         file_list.files = ['a.py', l('d/b.py'), l('d/c.txt'), l('d/d/e.py')]
 
         file_list.process_template_line('recursive-exclude d *.py')
+        file_list.sort()
         assert file_list.files == ['a.py', l('d/c.txt')]
         self.assertNoWarnings()
 
         file_list.process_template_line('recursive-exclude e *.py')
+        file_list.sort()
         assert file_list.files == ['a.py', l('d/c.txt')]
         self.assertWarnings()
 
@@ -494,10 +504,12 @@
         self.make_files(['a.py', l('d/b.py'), l('d/d/e.py'), l('f/f.py')])
 
         file_list.process_template_line('graft d')
+        file_list.sort()
         assert file_list.files == [l('d/b.py'), l('d/d/e.py')]
         self.assertNoWarnings()
 
         file_list.process_template_line('graft e')
+        file_list.sort()
         assert file_list.files == [l('d/b.py'), l('d/d/e.py')]
         self.assertWarnings()
 
@@ -508,9 +520,11 @@
         file_list.files = ['a.py', l('d/b.py'), l('d/d/e.py'), l('f/f.py')]
 
         file_list.process_template_line('prune d')
+        file_list.sort()
         assert file_list.files == ['a.py', l('f/f.py')]
         self.assertNoWarnings()
 
         file_list.process_template_line('prune e')
+        file_list.sort()
         assert file_list.files == ['a.py', l('f/f.py')]
         self.assertWarnings()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools-28.5.0/setuptools/tests/test_packageindex.py 
new/setuptools-28.6.1/setuptools/tests/test_packageindex.py
--- old/setuptools-28.5.0/setuptools/tests/test_packageindex.py 2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_packageindex.py 2016-10-19 
17:39:12.000000000 +0200
@@ -14,7 +14,6 @@
 
 
 class TestPackageIndex:
-
     def test_regex(self):
         hash_url = 'http://other_url?:action=show_md5&amp;'
         hash_url += 'digest=0123456789abcdef0123456789abcdef'
@@ -184,7 +183,6 @@
 
 
 class TestContentCheckers:
-
     def test_md5(self):
         checker = setuptools.package_index.HashChecker.from_url(
             'http://foo/bar#md5=f12895fdffbd45007040d2e44df98478')
@@ -219,7 +217,6 @@
 
 
 class TestPyPIConfig:
-
     def test_percent_in_password(self, tmpdir, monkeypatch):
         monkeypatch.setitem(os.environ, 'HOME', str(tmpdir))
         pypirc = tmpdir / '.pypirc'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/tests/test_sandbox.py 
new/setuptools-28.6.1/setuptools/tests/test_sandbox.py
--- old/setuptools-28.5.0/setuptools/tests/test_sandbox.py      2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_sandbox.py      2016-10-19 
17:39:12.000000000 +0200
@@ -11,7 +11,6 @@
 
 
 class TestSandbox:
-
     def test_devnull(self, tmpdir):
         sandbox = DirectorySandbox(str(tmpdir))
         sandbox.run(self._file_writer(os.devnull))
@@ -21,6 +20,7 @@
         def do_write():
             with open(path, 'w') as f:
                 f.write('xxx')
+
         return do_write
 
     def test_win32com(self, tmpdir):
@@ -57,7 +57,6 @@
 
 
 class TestExceptionSaver:
-
     def test_exception_trapped(self):
         with setuptools.sandbox.ExceptionSaver():
             raise ValueError("details")
@@ -107,6 +106,7 @@
         As revealed in #440, an infinite recursion can occur if an unpickleable
         exception while setuptools is hidden. Ensure this doesn't happen.
         """
+
         class ExceptionUnderTest(Exception):
             """
             An unpickleable exception (not in globals).
@@ -126,10 +126,12 @@
         should reflect a proper exception and not be wrapped in
         an UnpickleableException.
         """
+
         def write_file():
             "Trigger a SandboxViolation by writing outside the sandbox"
             with open('/etc/foo', 'w'):
                 pass
+
         sandbox = DirectorySandbox(str(tmpdir))
         with pytest.raises(setuptools.sandbox.SandboxViolation) as caught:
             with setuptools.sandbox.save_modules():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/tests/test_sdist.py 
new/setuptools-28.6.1/setuptools/tests/test_sdist.py
--- old/setuptools-28.5.0/setuptools/tests/test_sdist.py        2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_sdist.py        2016-10-19 
17:39:12.000000000 +0200
@@ -20,10 +20,8 @@
 from setuptools.dist import Distribution
 from setuptools.tests import fail_on_ascii
 
-
 py3_only = pytest.mark.xfail(six.PY2, reason="Test runs on Python 3 only")
 
-
 SETUP_ATTRS = {
     'name': 'sdist_test',
     'version': '0.0',
@@ -31,14 +29,12 @@
     'package_data': {'sdist_test': ['*.txt']}
 }
 
-
 SETUP_PY = """\
 from setuptools import setup
 
 setup(**%r)
 """ % SETUP_ATTRS
 
-
 if six.PY3:
     LATIN1_FILENAME = 'smörbröd.py'.encode('latin-1')
 else:
@@ -90,7 +86,6 @@
 
 
 class TestSdistTest:
-
     def setup_method(self, method):
         self.temp_dir = tempfile.mkdtemp()
         f = open(os.path.join(self.temp_dir, 'setup.py'), 'w')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools/tests/test_test.py 
new/setuptools-28.6.1/setuptools/tests/test_test.py
--- old/setuptools-28.5.0/setuptools/tests/test_test.py 2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_test.py 2016-10-19 
17:39:12.000000000 +0200
@@ -70,7 +70,6 @@
 @pytest.mark.usefixtures('user_override')
 @pytest.mark.usefixtures('sample_test')
 class TestTestTest:
-
     def test_test(self):
         params = dict(
             name='foo',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools-28.5.0/setuptools/tests/test_upload_docs.py 
new/setuptools-28.6.1/setuptools/tests/test_upload_docs.py
--- old/setuptools-28.5.0/setuptools/tests/test_upload_docs.py  2016-10-15 
05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_upload_docs.py  2016-10-19 
17:39:12.000000000 +0200
@@ -10,7 +10,6 @@
 from .textwrap import DALS
 from . import contexts
 
-
 SETUP_PY = DALS(
     """
     from setuptools import setup
@@ -38,7 +37,6 @@
 @pytest.mark.usefixtures('sample_project')
 @pytest.mark.usefixtures('user_override')
 class TestUploadDocsTest:
-
     def test_create_zipfile(self):
         """
         Ensure zipfile creation handles common cases, including a folder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/setuptools-28.5.0/setuptools/tests/test_windows_wrappers.py 
new/setuptools-28.6.1/setuptools/tests/test_windows_wrappers.py
--- old/setuptools-28.5.0/setuptools/tests/test_windows_wrappers.py     
2016-10-15 05:15:01.000000000 +0200
+++ new/setuptools-28.6.1/setuptools/tests/test_windows_wrappers.py     
2016-10-19 17:39:12.000000000 +0200
@@ -23,12 +23,10 @@
 from setuptools.command.easy_install import nt_quote_arg
 import pkg_resources
 
-
 pytestmark = pytest.mark.skipif(sys.platform != 'win32', reason="Windows only")
 
 
 class WrapperTester:
-
     @classmethod
     def prep_script(cls, template):
         python_exe = nt_quote_arg(sys.executable)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/setuptools-28.5.0/setuptools.egg-info/PKG-INFO 
new/setuptools-28.6.1/setuptools.egg-info/PKG-INFO
--- old/setuptools-28.5.0/setuptools.egg-info/PKG-INFO  2016-10-15 
05:16:44.000000000 +0200
+++ new/setuptools-28.6.1/setuptools.egg-info/PKG-INFO  2016-10-19 
17:40:47.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: setuptools
-Version: 28.5.0
+Version: 28.6.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.5.0/tests/manual_test.py 
new/setuptools-28.6.1/tests/manual_test.py
--- old/setuptools-28.5.0/tests/manual_test.py  2016-10-15 05:15:01.000000000 
+0200
+++ new/setuptools-28.6.1/tests/manual_test.py  2016-10-19 17:39:12.000000000 
+0200
@@ -25,6 +25,7 @@
         finally:
             os.chdir(old_dir)
             shutil.rmtree(test_dir)
+
     return _tempdir
 
 


Reply via email to