Hello community, here is the log from the commit of package python-pkginfo for openSUSE:Factory checked in at 2019-06-27 15:53:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pkginfo (Old) and /work/SRC/openSUSE:Factory/.python-pkginfo.new.4615 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pkginfo" Thu Jun 27 15:53:42 2019 rev:5 rq:711153 version:1.5.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pkginfo/python-pkginfo.changes 2018-12-24 11:46:28.721181942 +0100 +++ /work/SRC/openSUSE:Factory/.python-pkginfo.new.4615/python-pkginfo.changes 2019-06-27 15:53:43.563968668 +0200 @@ -1,0 +2,11 @@ +Wed Jun 19 12:59:08 UTC 2019 - pgaj...@suse.com + +- version update to 1.5.0.1 + * Fix broken 'sdist'. LP #1639585. + * Fix 'console_scripts' entry point syntax. LP #1810734. + * Add support for JSON output from the CLI. + * Add support for installed wheels. E.g., 'dist-info/' dirs. + * Add support for Python 3.6 and 3.7. + * Drop support for Python 3.3. + +------------------------------------------------------------------- Old: ---- pkginfo-1.4.2.tar.gz New: ---- pkginfo-1.5.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pkginfo.spec ++++++ --- /var/tmp/diff_new_pack.Nyq3w1/_old 2019-06-27 15:53:44.007969356 +0200 +++ /var/tmp/diff_new_pack.Nyq3w1/_new 2019-06-27 15:53:44.011969362 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-pkginfo # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,10 +17,8 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} -# Tests are currently broken. -%bcond_without tests Name: python-pkginfo -Version: 1.4.2 +Version: 1.5.0.1 Release: 0 Summary: Python package for querying metadatdata from sdists/bdists/installed packages License: MIT @@ -32,10 +30,12 @@ BuildRequires: python-rpm-macros Requires(post): update-alternatives Requires(preun): update-alternatives +Requires: python-setuptools BuildArch: noarch -%if %{with tests} +# SECTION test requirements BuildRequires: %{python_module nose} -%endif +BuildRequires: %{python_module pytest} +# /SECTION %python_subpackages %description @@ -49,8 +49,7 @@ %prep %setup -q -n pkginfo-%{version} # fix tests until fixed upstream -sed -i 's|1\.1|2.1|' pkginfo/tests/__init__.py -sed -i "s|'1\.1'|None|" pkginfo/tests/test_installed.py +sed -i "s|'2\.1'|None|" pkginfo/tests/test_installed.py %build %python_build @@ -60,12 +59,8 @@ %python_expand %fdupes %{buildroot}%{$python_sitelib} %python_clone -a %{buildroot}%{_bindir}/pkginfo -%if %{with tests} %check -%{python_expand $python setup.py develop --user -$python setup.py test -q -} -%endif +%pytest %post %python_install_alternative pkginfo ++++++ pkginfo-1.4.2.tar.gz -> pkginfo-1.5.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/.coveragerc new/pkginfo-1.5.0.1/.coveragerc --- old/pkginfo-1.4.2/.coveragerc 1970-01-01 01:00:00.000000000 +0100 +++ new/pkginfo-1.5.0.1/.coveragerc 2018-08-20 22:25:40.000000000 +0200 @@ -0,0 +1,3 @@ +[report] +show_missing=1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/CHANGES.txt new/pkginfo-1.5.0.1/CHANGES.txt --- old/pkginfo-1.4.2/CHANGES.txt 2018-03-14 18:28:24.000000000 +0100 +++ new/pkginfo-1.5.0.1/CHANGES.txt 2019-01-08 22:30:22.000000000 +0100 @@ -1,6 +1,24 @@ ``pkginfo`` Changelog ===================== +1.5.0.1 (2019-01-08) +-------------------- + +- Fix broken 'sdist'. LP #1639585. + +1.5.0 (2019-01-07) +------------------ + +- Fix 'console_scripts' entry point syntax. LP #1810734. + +- Add support for JSON output from the CLI. + +- Add support for installed wheels. E.g., 'dist-info/' dirs. + +- Add support for Python 3.6 and 3.7. + +- Drop support for Python 3.3. + 1.4.2 (2018-03-14) ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/PKG-INFO new/pkginfo-1.5.0.1/PKG-INFO --- old/pkginfo-1.4.2/PKG-INFO 2018-03-14 18:34:34.000000000 +0100 +++ new/pkginfo-1.5.0.1/PKG-INFO 2019-01-08 22:31:51.000000000 +0100 @@ -1,12 +1,11 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: pkginfo -Version: 1.4.2 +Version: 1.5.0.1 Summary: Query metadatdata from sdists / bdists / installed packages. Home-page: https://code.launchpad.net/~tseaver/pkginfo/trunk Author: Tres Seaver, Agendaless Consulting Author-email: tsea...@agendaless.com License: MIT -Description-Content-Type: UNKNOWN Description: ``pkginfo`` README ================== @@ -25,6 +24,24 @@ ``pkginfo`` Changelog ===================== + 1.5.0.1 (2019-01-08) + -------------------- + + - Fix broken 'sdist'. LP #1639585. + + 1.5.0 (2019-01-07) + ------------------ + + - Fix 'console_scripts' entry point syntax. LP #1810734. + + - Add support for JSON output from the CLI. + + - Add support for installed wheels. E.g., 'dist-info/' dirs. + + - Add support for Python 3.6 and 3.7. + + - Drop support for Python 3.3. + 1.4.2 (2018-03-14) ------------------ @@ -269,10 +286,12 @@ Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: System :: Software Distribution +Provides-Extra: testing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/docs/conf.py new/pkginfo-1.5.0.1/docs/conf.py --- old/pkginfo-1.4.2/docs/conf.py 2018-03-08 21:32:05.000000000 +0100 +++ new/pkginfo-1.5.0.1/docs/conf.py 2018-08-20 22:05:50.000000000 +0200 @@ -99,7 +99,7 @@ # The style sheet to use for HTML and HTML Help pages. A file of that name # must exist either in Sphinx' static/ path, or in one of the custom paths # given in html_static_path. -html_style = 'default.css' +#html_style = 'default.css' # The name for this set of Sphinx documents. If None, it defaults to # "<project> v<release> documentation". diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/docs/examples/mypackage-0.1.dist-info/METADATA new/pkginfo-1.5.0.1/docs/examples/mypackage-0.1.dist-info/METADATA --- old/pkginfo-1.4.2/docs/examples/mypackage-0.1.dist-info/METADATA 1970-01-01 01:00:00.000000000 +0100 +++ new/pkginfo-1.5.0.1/docs/examples/mypackage-0.1.dist-info/METADATA 2013-11-27 22:40:58.000000000 +0100 @@ -0,0 +1,15 @@ +Metadata-Version: 2.0 +Name: mypackage +Version: 0.1 +Summary: UNKNOWN +Home-page: http://pypi.python.org/pypi/pkginfo +Author: Tres Seaver +Author-email: tsea...@palladion.com +License: UNKNOWN +Platform: UNKNOWN +Classifier: Development Status :: 4 - Beta +Classifier: Environment :: Console (Text Based) + +UNKNOWN + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo/commandline.py new/pkginfo-1.5.0.1/pkginfo/commandline.py --- old/pkginfo-1.4.2/pkginfo/commandline.py 2018-03-08 21:45:50.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo/commandline.py 2018-08-20 22:13:54.000000000 +0200 @@ -10,8 +10,8 @@ o a binary distribution: in this case, 'path' should point to an existing archive file (.egg) -o a "develop" checkout: in ths case, 'path' should point to a directory - intialized via 'setup.py develop' (under setuptools). +o a "develop" checkout: in this case, 'path' should point to a directory + initialized via 'setup.py develop' (under setuptools). o an installed package: in this case, 'path' should be the importable name of the package. @@ -20,7 +20,9 @@ from configparser import ConfigParser except ImportError: # pragma: NO COVER from ConfigParser import ConfigParser +from collections import OrderedDict from csv import writer +import json import optparse import os import sys @@ -82,6 +84,11 @@ help="Output as INI", ) + parser.add_option("--json", dest="output", action="store_const", + const='json', + help="Output as JSON", + ) + options, args = parser.parse_args(args) if len(args)==0: @@ -174,11 +181,32 @@ def finish(self): self._parser.write(sys.stdout) # pragma: NO COVER +class JSON(Base): + _fields = None + def __init__(self, options): + super(JSON, self).__init__(options) + self._mapping = OrderedDict() + + def __call__(self, meta): + if self._fields is None: + self._fields = list(meta) + for field in self._fields: + value = getattr(meta, field) + if value and not isinstance(value, (tuple, list)): + value = str(value) + if field in self._mapping: + raise ValueError('Duplicate field: %(field)r' % locals()) + self._mapping[field] = value + + def finish(self): + json.dump(self._mapping, sys.stdout, indent=2) + _FORMATTERS = { 'simple': Simple, 'single': SingleLine, 'csv': CSV, 'ini': INI, + 'json': JSON, } def main(args=None): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo/develop.py new/pkginfo-1.5.0.1/pkginfo/develop.py --- old/pkginfo-1.4.2/pkginfo/develop.py 2018-03-08 21:45:50.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo/develop.py 2018-08-20 22:05:50.000000000 +0200 @@ -1,3 +1,4 @@ +import io import os import sys import warnings @@ -40,6 +41,6 @@ for candidate in candidates: path = os.path.join(candidate, 'PKG-INFO') if os.path.exists(path): - with open(path) as f: + with io.open(path, errors='ignore') as f: return f.read() warnings.warn('No PKG-INFO found for path: %s' % self.path) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo/installed.py new/pkginfo-1.5.0.1/pkginfo/installed.py --- old/pkginfo-1.4.2/pkginfo/installed.py 2018-03-08 21:45:50.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo/installed.py 2018-08-20 22:05:50.000000000 +0200 @@ -1,4 +1,5 @@ import glob +import io import os import sys import warnings @@ -48,6 +49,6 @@ else: path = candidate if os.path.exists(path): - with open(path) as f: + with io.open(path, errors='ignore') as f: return f.read() warnings.warn('No PKG-INFO found for package: %s' % self.package_name) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo/sdist.py new/pkginfo-1.5.0.1/pkginfo/sdist.py --- old/pkginfo-1.4.2/pkginfo/sdist.py 2018-03-08 21:45:50.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo/sdist.py 2018-08-20 22:05:50.000000000 +0200 @@ -1,3 +1,4 @@ +import io import os import tarfile import zipfile @@ -66,7 +67,8 @@ def read(self): try: - with open(os.path.join(self.filename, 'PKG-INFO')) as f: + pkg_info = os.path.join(self.filename, 'PKG-INFO') + with io.open(pkg_info, errors='ignore') as f: return f.read() except Exception as e: raise ValueError('Could not load %s as an unpacked sdist: %s' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo/tests/__init__.py new/pkginfo-1.5.0.1/pkginfo/tests/__init__.py --- old/pkginfo-1.4.2/pkginfo/tests/__init__.py 2018-03-08 21:32:05.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo/tests/__init__.py 2018-08-20 22:20:07.000000000 +0200 @@ -21,9 +21,10 @@ 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Software Development :: Libraries :: Python Modules', @@ -32,7 +33,4 @@ def _defaultMetadataVersion(): - import sys - if sys.version_info[:2] > (2, 6): - return '1.1' - return '1.0' + return '2.1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo/tests/test_commandline.py new/pkginfo-1.5.0.1/pkginfo/tests/test_commandline.py --- old/pkginfo-1.4.2/pkginfo/tests/test_commandline.py 2018-03-08 21:32:05.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo/tests/test_commandline.py 2018-08-20 22:13:54.000000000 +0200 @@ -196,6 +196,62 @@ self.assertEqual(cp.get('foo-0.1', 'foo'), 'Foo') self.assertEqual(cp.get('foo-0.1', 'bar'), 'Bar1\n\tBar2') +class JSONtests(unittest.TestCase, _FormatterBase): + + def _getTargetClass(self): + from pkginfo.commandline import JSON + return JSON + + def _makeOne(self, options): + return self._getTargetClass()(options) + + def test___call___duplicate_with_meta_and_fields(self): + json = self._makeOne(_Options(fields=('name',))) + meta = _Meta(name='foo', version='0.1', foo='Foo') + json._mapping['name'] = 'foo' + self.assertRaises(ValueError, json, meta) + + def test___call___duplicate_with_meta_wo_fields(self): + json = self._makeOne(_Options(fields=None)) + meta = _Meta(name='foo', version='0.1', foo='Foo') + json._mapping['name'] = 'foo' + self.assertRaises(ValueError, json, meta) + + def test___call___wo_fields_wo_list(self): + from collections import OrderedDict + + json = self._makeOne(_Options(fields=None)) + meta = _Meta(name='foo', version='0.1', foo='Foo') + json(meta) + expected = OrderedDict([ + ('foo', 'Foo'), ('name', 'foo'), ('version', '0.1')]) + self.assertEqual(expected, json._mapping) + + def test___call___w_fields_w_list(self): + from collections import OrderedDict + + json = self._makeOne(_Options(fields=('foo', 'bar'))) + meta = _Meta(name='foo', version='0.1', + foo='Foo', bar=['Bar1', 'Bar2'], baz='Baz') + json(meta) + expected = OrderedDict([ + ('foo', 'Foo'), ('bar', ['Bar1', 'Bar2'])]) + self.assertEqual(expected, json._mapping) + + def test___call___output(self): + from collections import OrderedDict + import json as json_parser + + json = self._makeOne(_Options(fields=None)) + meta = _Meta(name='foo', version='0.1', foo='Foo') + json(meta) + output = self._capture_output(json.finish) + output = json_parser.loads( + output, object_pairs_hook=OrderedDict) + expected = OrderedDict([ + ('foo', 'Foo'), ('name', 'foo'), ('version', '0.1')]) + self.assertEqual(expected, output) + class Test_main(unittest.TestCase): def _callFUT(self, args, monkey='simple'): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo/tests/test_installed.py new/pkginfo-1.5.0.1/pkginfo/tests/test_installed.py --- old/pkginfo-1.4.2/pkginfo/tests/test_installed.py 2018-03-08 21:32:05.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo/tests/test_installed.py 2018-08-20 22:05:50.000000000 +0200 @@ -53,7 +53,7 @@ self.assertEqual(installed.package, types) self.assertEqual(installed.package_name, 'types') if sys.version_info[:2] >= (3, 3): - self.assertEqual(installed.metadata_version, '1.1') + self.assertEqual(installed.metadata_version, '2.1') else: self.assertEqual(installed.metadata_version, None) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo/tests/test_wheel.py new/pkginfo-1.5.0.1/pkginfo/tests/test_wheel.py --- old/pkginfo-1.4.2/pkginfo/tests/test_wheel.py 2018-03-08 21:32:05.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo/tests/test_wheel.py 2018-08-20 22:48:14.000000000 +0200 @@ -52,6 +52,16 @@ self._checkSample(wheel, filename) self._checkClassifiers(wheel) + def test_ctor_w_installed_wheel(self): + import os + d, _ = os.path.split(__file__) + filename = ( + '%s/../../docs/examples/mypackage-0.1.dist-info') % d + wheel = self._makeOne(filename) + self.assertEqual(wheel.metadata_version, '2.0') + self._checkSample(wheel, filename) + self._checkClassifiers(wheel) + def test_ctor_w_valid_wheel_and_metadata_version(self): import os d, _ = os.path.split(__file__) @@ -62,3 +72,25 @@ self._checkSample(wheel, filename) self._checkClassifiers(wheel) + def test_ctor_w_valid_installed_wheel(self): + import os + import shutil + import tempfile + import zipfile + + d, _ = os.path.split(__file__) + filename = ('%s/../../docs/examples/' + 'mypackage-0.1-cp26-none-linux_x86_64.whl') % d + + try: + # note: we mock a wheel installation by unzipping + test_dir = tempfile.mkdtemp() + with zipfile.ZipFile(filename) as zipf: + zipf.extractall(test_dir) + wheel = self._makeOne(filename) + self.assertEqual(wheel.metadata_version, '2.0') + self._checkSample(wheel, filename) + self._checkClassifiers(wheel) + finally: + if os.path.exists(test_dir): + shutil.rmtree(test_dir) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo/utils.py new/pkginfo-1.5.0.1/pkginfo/utils.py --- old/pkginfo-1.4.2/pkginfo/utils.py 2018-03-08 21:45:50.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo/utils.py 2018-08-20 22:06:26.000000000 +0200 @@ -52,6 +52,11 @@ if os.path.isdir(path_or_module): try: + return Wheel(path_or_module, metadata_version) + except (ValueError, IOError): #pragma NO COVER + pass + + try: return Develop(path_or_module, metadata_version) except (ValueError, IOError): #pragma NO COVER pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo/wheel.py new/pkginfo-1.5.0.1/pkginfo/wheel.py --- old/pkginfo-1.4.2/pkginfo/wheel.py 2018-03-08 21:35:58.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo/wheel.py 2018-08-20 22:50:49.000000000 +0200 @@ -1,8 +1,11 @@ +import io import os import zipfile from .distribution import Distribution +from .distribution import must_decode +from .distribution import parse class Wheel(Distribution): @@ -23,8 +26,21 @@ def read_file(name): return archive.read(name) + + close = archive.close + + elif fqn.endswith('.dist-info'): + names = [os.path.join(fqn, p) for p in os.listdir(fqn)] + + def read_file(name): + with io.open(name, mode='rb') as inf: + return inf.read() + + close = lambda : None + else: - raise ValueError('Not a known archive format: %s' % fqn) + raise ValueError('Not a known wheel archive format or ' + 'installed .dist-info: %s' % fqn) try: tuples = [x.split('/') for x in names if 'METADATA' in x] @@ -35,6 +51,12 @@ if b'Metadata-Version' in data: return data finally: - archive.close() + close() raise ValueError('No METADATA in archive: %s' % fqn) + + def parse(self, data): + super(Wheel, self).parse(data) + fp = io.StringIO(must_decode(data)) + msg = parse(fp) + self.description = msg.get_payload() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo.egg-info/PKG-INFO new/pkginfo-1.5.0.1/pkginfo.egg-info/PKG-INFO --- old/pkginfo-1.4.2/pkginfo.egg-info/PKG-INFO 2018-03-14 18:34:34.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo.egg-info/PKG-INFO 2019-01-08 22:31:51.000000000 +0100 @@ -1,12 +1,11 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: pkginfo -Version: 1.4.2 +Version: 1.5.0.1 Summary: Query metadatdata from sdists / bdists / installed packages. Home-page: https://code.launchpad.net/~tseaver/pkginfo/trunk Author: Tres Seaver, Agendaless Consulting Author-email: tsea...@agendaless.com License: MIT -Description-Content-Type: UNKNOWN Description: ``pkginfo`` README ================== @@ -25,6 +24,24 @@ ``pkginfo`` Changelog ===================== + 1.5.0.1 (2019-01-08) + -------------------- + + - Fix broken 'sdist'. LP #1639585. + + 1.5.0 (2019-01-07) + ------------------ + + - Fix 'console_scripts' entry point syntax. LP #1810734. + + - Add support for JSON output from the CLI. + + - Add support for installed wheels. E.g., 'dist-info/' dirs. + + - Add support for Python 3.6 and 3.7. + + - Drop support for Python 3.3. + 1.4.2 (2018-03-14) ------------------ @@ -269,10 +286,12 @@ Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: System :: Software Distribution +Provides-Extra: testing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/pkginfo.egg-info/SOURCES.txt new/pkginfo-1.5.0.1/pkginfo.egg-info/SOURCES.txt --- old/pkginfo-1.4.2/pkginfo.egg-info/SOURCES.txt 2018-03-14 18:34:34.000000000 +0100 +++ new/pkginfo-1.5.0.1/pkginfo.egg-info/SOURCES.txt 2019-01-08 22:31:51.000000000 +0100 @@ -1,4 +1,5 @@ .bzrignore +.coveragerc CHANGES.txt LICENSE.txt README.txt @@ -24,6 +25,7 @@ docs/examples/mypackage-0.1/README.txt docs/examples/mypackage-0.1/setup.cfg docs/examples/mypackage-0.1/setup.py +docs/examples/mypackage-0.1.dist-info/METADATA pkginfo/__init__.py pkginfo/_compat.py pkginfo/bdist.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/setup.py new/pkginfo-1.5.0.1/setup.py --- old/pkginfo-1.4.2/setup.py 2018-03-14 18:20:54.000000000 +0100 +++ new/pkginfo-1.5.0.1/setup.py 2019-01-08 22:28:44.000000000 +0100 @@ -20,7 +20,7 @@ setup( name='pkginfo', - version='1.4.2', + version='1.5.0.1', description='Query metadatdata from sdists / bdists / installed packages.', platforms=['Unix', 'Windows'], long_description='\n\n'.join([README, CHANGES]), @@ -30,22 +30,23 @@ author_email='tsea...@agendaless.com', license='MIT', classifiers=[ - 'Intended Audience :: Developers', - 'License :: OSI Approved :: MIT License', - 'Operating System :: OS Independent', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3.3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: Implementation :: CPython', - 'Programming Language :: Python :: Implementation :: PyPy', - 'Topic :: Software Development :: Libraries :: Python Modules', - 'Topic :: System :: Software Distribution', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: MIT License', + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: Implementation :: CPython', + 'Programming Language :: Python :: Implementation :: PyPy', + 'Topic :: Software Development :: Libraries :: Python Modules', + 'Topic :: System :: Software Distribution', ], entry_points={ - 'console_scripts': [ - ['pkginfo = pkginfo.commandline:main'] - ] + 'console_scripts': [ + 'pkginfo = pkginfo.commandline:main', + ] }, packages=['pkginfo', 'pkginfo.tests'], **extras diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pkginfo-1.4.2/tox.ini new/pkginfo-1.5.0.1/tox.ini --- old/pkginfo-1.4.2/tox.ini 2018-03-08 21:32:05.000000000 +0100 +++ new/pkginfo-1.5.0.1/tox.ini 2018-08-20 22:19:23.000000000 +0200 @@ -1,17 +1,16 @@ [tox] envlist = - py27,pypy,py33,py34,py35,pypy3,cover2,cover3,docs + py27,pypy,py34,py35,py36,py37,pypy3,cover2,cover3,docs [testenv] +usedevelop = true commands = - python setup.py develop python setup.py test -q [testenv:cover2] basepython = python2.7 commands = - python setup.py develop python setup.py nosetests --with-xunit --with-xcoverage deps = nose @@ -20,9 +19,8 @@ [testenv:cover3] basepython = - python3.3 + python3.7 commands = - python setup.py develop python setup.py nosetests --with-xunit --with-xcoverage deps = nose @@ -37,8 +35,3 @@ sphinx-build -b doctest -d docs/_build/doctrees docs docs/_build/doctest deps = Sphinx - -# we separate coverage into its own testenv because a) "last run wins" wrt -# cobertura jenkins reporting and b) pypy and jython can't handle any -# combination of versions of coverage and nosexcover that i can find. -