Hello community, here is the log from the commit of package python3-setuptools for openSUSE:Factory checked in at 2016-01-04 09:21:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 2015-12-23 09:57:18.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.python3-setuptools.new/python3-setuptools.changes 2016-01-04 09:21:28.000000000 +0100 @@ -1,0 +2,8 @@ +Tue Dec 29 19:47:49 UTC 2015 - arun@gmx.de + +- update to version 19.2: + * Pull Request #163: Add get_command_list method to Distribution. + * Pull Request #162: Add missing whitespace to multiline string + literals. + +------------------------------------------------------------------- Old: ---- setuptools-19.1.1.tar.gz New: ---- setuptools-19.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-setuptools.spec ++++++ --- /var/tmp/diff_new_pack.aPYkPA/_old 2016-01-04 09:21:29.000000000 +0100 +++ /var/tmp/diff_new_pack.aPYkPA/_new 2016-01-04 09:21:29.000000000 +0100 @@ -17,7 +17,7 @@ Name: python3-setuptools -Version: 19.1.1 +Version: 19.2 Release: 0 Url: http://pypi.python.org/pypi/setuptools Summary: Easily download, build, install, upgrade, and uninstall Python packages ++++++ setuptools-19.1.1.tar.gz -> setuptools-19.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/.hgtags new/setuptools-19.2/.hgtags --- old/setuptools-19.1.1/.hgtags 2015-12-17 01:27:31.000000000 +0100 +++ new/setuptools-19.2/.hgtags 2015-12-25 16:52:54.000000000 +0100 @@ -231,3 +231,4 @@ fbf06fa35f93a43f044b1645a7e4ff470edb462c 18.8.1 cc41477ecf92f221c113736fac2830bf8079d40c 19.0 834782ce49154e9744e499e00eb392c347f9e034 19.1 +0a2a3d89416e1642cf6f41d22dbc07b3d3c15a4d 19.1.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/CHANGES.txt new/setuptools-19.2/CHANGES.txt --- old/setuptools-19.1.1/CHANGES.txt 2015-12-17 01:09:19.000000000 +0100 +++ new/setuptools-19.2/CHANGES.txt 2015-12-25 16:49:20.000000000 +0100 @@ -3,6 +3,14 @@ ======= +---- +19.2 +---- + +* Pull Request #163: Add get_command_list method to Distribution. +* Pull Request #162: Add missing whitespace to multiline string + literals. + ------ 19.1.1 ------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/PKG-INFO new/setuptools-19.2/PKG-INFO --- old/setuptools-19.1.1/PKG-INFO 2015-12-17 01:27:34.000000000 +0100 +++ new/setuptools-19.2/PKG-INFO 2015-12-25 16:52:56.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: setuptools -Version: 19.1.1 +Version: 19.2 Summary: Easily download, build, install, upgrade, and uninstall Python packages Home-page: https://bitbucket.org/pypa/setuptools Author: Python Packaging Authority diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/dist.py new/setuptools-19.2/setuptools/dist.py --- old/setuptools-19.1.1/setuptools/dist.py 2015-12-14 10:17:06.000000000 +0100 +++ new/setuptools-19.2/setuptools/dist.py 2015-12-25 16:48:37.000000000 +0100 @@ -160,7 +160,7 @@ for pkgname in value: if not re.match(r'\w+(\.\w+)*', pkgname): distutils.log.warn( - "WARNING: %r not a valid package name; please use only" + "WARNING: %r not a valid package name; please use only " ".-separated package names in setup.py", pkgname ) @@ -439,6 +439,14 @@ self.cmdclass[ep.name] = cmdclass return _Distribution.print_commands(self) + def get_command_list(self): + for ep in pkg_resources.iter_entry_points('distutils.commands'): + if ep.name not in self.cmdclass: + # don't require extras as the commands won't be invoked + cmdclass = ep.resolve() + self.cmdclass[ep.name] = cmdclass + return _Distribution.get_command_list(self) + def _set_feature(self,name,status): """Set feature's inclusion status""" setattr(self,self._feature_attrname(name),status) @@ -817,7 +825,7 @@ if not self.available: raise DistutilsPlatformError( - self.description+" is required," + self.description+" is required, " "but is not available on this platform" ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/ssl_support.py new/setuptools-19.2/setuptools/ssl_support.py --- old/setuptools-19.1.1/setuptools/ssl_support.py 2015-11-30 17:24:31.000000000 +0100 +++ new/setuptools-19.2/setuptools/ssl_support.py 2015-12-25 15:49:45.000000000 +0100 @@ -223,6 +223,12 @@ self.addcerts(certs) atexit.register(self.close) + def close(self): + try: + super(MyCertFile, self).close() + except OSError: + pass + _wincerts = MyCertFile(stores=['CA', 'ROOT']) return _wincerts.name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/tests/files.py new/setuptools-19.2/setuptools/tests/files.py --- old/setuptools-19.1.1/setuptools/tests/files.py 1970-01-01 01:00:00.000000000 +0100 +++ new/setuptools-19.2/setuptools/tests/files.py 2015-12-25 15:59:08.000000000 +0100 @@ -0,0 +1,32 @@ +import os + + +def build_files(file_defs, prefix=""): + """ + Build a set of files/directories, as described by the file_defs dictionary. + + Each key/value pair in the dictionary is interpreted as a filename/contents + pair. If the contents value is a dictionary, a directory is created, and the + dictionary interpreted as the files within it, recursively. + + For example: + + {"README.txt": "A README file", + "foo": { + "__init__.py": "", + "bar": { + "__init__.py": "", + }, + "baz.py": "# Some code", + } + } + """ + for name, contents in file_defs.items(): + full_name = os.path.join(prefix, name) + if isinstance(contents, dict): + if not os.path.exists(full_name): + os.makedirs(full_name) + build_files(contents, prefix=full_name) + else: + with open(full_name, 'w') as f: + f.write(contents) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/tests/test_easy_install.py new/setuptools-19.2/setuptools/tests/test_easy_install.py --- old/setuptools-19.1.1/setuptools/tests/test_easy_install.py 2015-12-01 20:04:42.000000000 +0100 +++ new/setuptools-19.2/setuptools/tests/test_easy_install.py 2015-12-25 15:49:45.000000000 +0100 @@ -446,10 +446,15 @@ exe = tmpdir / 'exe.py' with exe.open('w') as f: f.write(header) - exe = str(exe) + + exe = ei.nt_quote_arg(os.path.normpath(str(exe))) + + # Make sure Windows paths are quoted properly before they're sent + # through shlex.split by get_script_header + executable = '"%s"' % exe if os.path.splitdrive(exe)[0] else exe header = ei.ScriptWriter.get_script_header('#!/usr/local/bin/python', - executable=exe) + executable=executable) assert header == '#!/usr/bin/env %s\n' % exe expect_out = 'stdout' if sys.version_info < (2,7) else 'stderr' @@ -458,7 +463,7 @@ # When options are included, generate a broken shebang line # with a warning emitted candidate = ei.ScriptWriter.get_script_header('#!/usr/bin/python -x', - executable=exe) + executable=executable) assert candidate == '#!%s -x\n' % exe output = locals()[expect_out] assert 'Unable to adapt shebang line' in output.getvalue() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/tests/test_egg_info.py new/setuptools-19.2/setuptools/tests/test_egg_info.py --- old/setuptools-19.1.1/setuptools/tests/test_egg_info.py 2015-11-30 17:24:31.000000000 +0100 +++ new/setuptools-19.2/setuptools/tests/test_egg_info.py 2015-12-25 16:30:13.000000000 +0100 @@ -4,6 +4,7 @@ import pytest from . import environment +from .files import build_files from .textwrap import DALS from . import contexts @@ -26,14 +27,13 @@ """) def _create_project(self): - with open('setup.py', 'w') as f: - f.write(self.setup_script) - - with open('hello.py', 'w') as f: - f.write(DALS(""" + build_files({ + 'setup.py': self.setup_script, + 'hello.py': DALS(""" def run(): print('hello') - """)) + """) + }) @pytest.yield_fixture def env(self): @@ -46,17 +46,48 @@ for dirname in subs ) list(map(os.mkdir, env.paths.values())) - config = os.path.join(env.paths['home'], '.pydistutils.cfg') - with open(config, 'w') as f: - f.write(DALS(""" + build_files({ + env.paths['home']: { + '.pydistutils.cfg': DALS(""" [egg_info] egg-base = %(egg-base)s - """ % env.paths)) + """ % env.paths) + } + }) yield env def test_egg_base_installed_egg_info(self, tmpdir_cwd, env): self._create_project() + self._run_install_command(tmpdir_cwd, env) + actual = self._find_egg_info_files(env.paths['lib']) + + expected = [ + 'PKG-INFO', + 'SOURCES.txt', + 'dependency_links.txt', + 'entry_points.txt', + 'not-zip-safe', + 'top_level.txt', + ] + assert sorted(actual) == expected + + def test_manifest_template_is_read(self, tmpdir_cwd, env): + self._create_project() + build_files({ + 'MANIFEST.in': DALS(""" + recursive-include docs *.rst + """), + 'docs': { + 'usage.rst': "Run 'hi'", + } + }) + self._run_install_command(tmpdir_cwd, env) + egg_info_dir = self._find_egg_info_files(env.paths['lib']).base + sources_txt = os.path.join(egg_info_dir, 'SOURCES.txt') + assert 'docs/usage.rst' in open(sources_txt).read().split('\n') + + def _run_install_command(self, tmpdir_cwd, env): environ = os.environ.copy().update( HOME=env.paths['home'], ) @@ -76,21 +107,14 @@ if code: raise AssertionError(data) - actual = self._find_egg_info_files(env.paths['lib']) - - expected = [ - 'PKG-INFO', - 'SOURCES.txt', - 'dependency_links.txt', - 'entry_points.txt', - 'not-zip-safe', - 'top_level.txt', - ] - assert sorted(actual) == expected - def _find_egg_info_files(self, root): + class DirList(list): + def __init__(self, files, base): + super(DirList, self).__init__(files) + self.base = base + results = ( - filenames + DirList(filenames, dirpath) for dirpath, dirnames, filenames in os.walk(root) if os.path.basename(dirpath) == 'EGG-INFO' ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/tests/test_setuptools.py new/setuptools-19.2/setuptools/tests/test_setuptools.py --- old/setuptools-19.1.1/setuptools/tests/test_setuptools.py 2015-11-30 17:24:31.000000000 +0100 +++ new/setuptools-19.2/setuptools/tests/test_setuptools.py 2015-12-25 15:49:45.000000000 +0100 @@ -23,7 +23,7 @@ def test_findall_curdir(example_source): with example_source.as_cwd(): found = list(setuptools.findall()) - expected = ['readme.txt', 'foo/bar.py'] + expected = ['readme.txt', os.path.join('foo', 'bar.py')] assert found == expected diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools/version.py new/setuptools-19.2/setuptools/version.py --- old/setuptools-19.1.1/setuptools/version.py 2015-12-17 01:27:28.000000000 +0100 +++ new/setuptools-19.2/setuptools/version.py 2015-12-25 16:52:52.000000000 +0100 @@ -1 +1 @@ -__version__ = '19.1.1' +__version__ = '19.2' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools.egg-info/PKG-INFO new/setuptools-19.2/setuptools.egg-info/PKG-INFO --- old/setuptools-19.1.1/setuptools.egg-info/PKG-INFO 2015-12-17 01:27:32.000000000 +0100 +++ new/setuptools-19.2/setuptools.egg-info/PKG-INFO 2015-12-25 16:52:55.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: setuptools -Version: 19.1.1 +Version: 19.2 Summary: Easily download, build, install, upgrade, and uninstall Python packages Home-page: https://bitbucket.org/pypa/setuptools Author: Python Packaging Authority diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/setuptools-19.1.1/setuptools.egg-info/SOURCES.txt new/setuptools-19.2/setuptools.egg-info/SOURCES.txt --- old/setuptools-19.1.1/setuptools.egg-info/SOURCES.txt 2015-12-17 01:27:33.000000000 +0100 +++ new/setuptools-19.2/setuptools.egg-info/SOURCES.txt 2015-12-25 16:52:56.000000000 +0100 @@ -112,6 +112,7 @@ setuptools/tests/__init__.py setuptools/tests/contexts.py setuptools/tests/environment.py +setuptools/tests/files.py setuptools/tests/fixtures.py setuptools/tests/py26compat.py setuptools/tests/script-with-bom.py