Hello community,
here is the log from the commit of package python-importlib-metadata for
openSUSE:Leap:15.2 checked in at 2020-03-15 07:13:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/python-importlib-metadata (Old)
and /work/SRC/openSUSE:Leap:15.2/.python-importlib-metadata.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-importlib-metadata"
Sun Mar 15 07:13:10 2020 rev:2 rq:784974 version:1.5.0
Changes:
--------
---
/work/SRC/openSUSE:Leap:15.2/python-importlib-metadata/python-importlib-metadata.changes
2020-03-13 11:01:04.192592737 +0100
+++
/work/SRC/openSUSE:Leap:15.2/.python-importlib-metadata.new.3160/python-importlib-metadata.changes
2020-03-15 07:13:16.733032003 +0100
@@ -1,0 +2,14 @@
+Sun Mar 8 04:09:30 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Switch to multibuild in order to avoid buildcycles
+
+-------------------------------------------------------------------
+Fri Feb 28 22:56:32 UTC 2020 - Dirk Mueller <[email protected]>
+
+- update to 1.5.0:
+ * Additional performance optimizations in FastPath now
+ saves an additional 20% on a typical call.
+ * Correct for issue where PyOxidizer finder has no
+ ``__module__`` attribute. Closes #110.
+
+-------------------------------------------------------------------
Old:
----
importlib_metadata-1.4.0.tar.gz
New:
----
_multibuild
importlib_metadata-1.5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-importlib-metadata.spec ++++++
--- /var/tmp/diff_new_pack.IOAZEM/_old 2020-03-15 07:13:17.025032155 +0100
+++ /var/tmp/diff_new_pack.IOAZEM/_new 2020-03-15 07:13:17.029032158 +0100
@@ -20,28 +20,37 @@
%if %{python3_version_nodots} >= 38
%define skip_python3 1
%endif
-Name: python-importlib-metadata
-Version: 1.4.0
+%global flavor @BUILD_FLAVOR@%{nil}
+%if "%{flavor}" == "test"
+%define psuffix -test
+%bcond_without test
+%else
+%define psuffix %{nil}
+%bcond_with test
+%endif
+Name: python-importlib-metadata%{psuffix}
+Version: 1.5.0
Release: 0
Summary: Tool to read metadata from Python packages
License: Apache-2.0
-Group: Development/Languages/Python
URL: https://gitlab.com/python-devs/importlib_metadata
Source:
https://files.pythonhosted.org/packages/source/i/importlib_metadata/importlib_metadata-%{version}.tar.gz
-BuildRequires: %{python_module packaging}
-BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module setuptools}
-BuildRequires: %{python_module wheel}
-BuildRequires: %{python_module zipp >= 0.5}
BuildRequires: fdupes
-BuildRequires: python-importlib_resources
BuildRequires: python-rpm-macros
-BuildRequires: python2-configparser >= 3.5
-BuildRequires: python2-contextlib2
Requires: python-zipp >= 0.5
Provides: python-importlib_metadata = %{version}
BuildArch: noarch
+%if %{with test}
+BuildRequires: %{python_module packaging}
+BuildRequires: %{python_module pip}
+BuildRequires: %{python_module pyfakefs}
+BuildRequires: %{python_module wheel}
+BuildRequires: %{python_module zipp >= 0.5}
+BuildRequires: python-importlib_resources
+BuildRequires: python2-configparser >= 3.5
+BuildRequires: python2-contextlib2
%if %{?suse_version} <= 1500
BuildRequires: python3-importlib_resources
%endif
@@ -50,6 +59,7 @@
%else
BuildRequires: python-pathlib2
%endif
+%endif
%ifpython2
Requires: python-configparser >= 3.5
Requires: python-contextlib2
@@ -68,15 +78,21 @@
%python_build
%install
+%if !%{with test}
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
+%endif
%check
-%python_exec -m unittest discover
+%if %{with test}
+%python_exec -m unittest discover -v
+%endif
+%if !%{with test}
%files %{python_files}
%doc README.rst
%license LICENSE
%{python_sitelib}/*
+%endif
%changelog
++++++ _multibuild ++++++
<multibuild>
<package>test</package>
</multibuild>
++++++ importlib_metadata-1.4.0.tar.gz -> importlib_metadata-1.5.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/importlib_metadata-1.4.0/.gitlab-ci.yml
new/importlib_metadata-1.5.0/.gitlab-ci.yml
--- old/importlib_metadata-1.4.0/.gitlab-ci.yml 2020-01-11 01:18:29.000000000
+0100
+++ new/importlib_metadata-1.5.0/.gitlab-ci.yml 2020-01-29 05:15:02.000000000
+0100
@@ -22,6 +22,10 @@
paths:
- coverage.xml
+benchmark:
+ script:
+ - tox -e perf
+
diffcov:
script:
- tox -e py27-diffcov,py35-diffcov,py36-diffcov,py37-diffcov,py38-diffcov
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/importlib_metadata-1.4.0/PKG-INFO
new/importlib_metadata-1.5.0/PKG-INFO
--- old/importlib_metadata-1.4.0/PKG-INFO 2020-01-11 01:18:51.000000000
+0100
+++ new/importlib_metadata-1.5.0/PKG-INFO 2020-01-29 05:15:30.000000000
+0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: importlib_metadata
-Version: 1.4.0
+Version: 1.5.0
Summary: Read metadata from Python packages
Home-page: http://importlib-metadata.readthedocs.io/
Author: Barry Warsaw
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/importlib_metadata-1.4.0/importlib_metadata/__init__.py
new/importlib_metadata-1.5.0/importlib_metadata/__init__.py
--- old/importlib_metadata-1.4.0/importlib_metadata/__init__.py 2020-01-11
01:18:29.000000000 +0100
+++ new/importlib_metadata-1.5.0/importlib_metadata/__init__.py 2020-01-29
05:15:02.000000000 +0100
@@ -408,6 +408,7 @@
def __init__(self, root):
self.root = root
+ self.base = os.path.basename(root).lower()
def joinpath(self, child):
return pathlib.Path(self.root, child)
@@ -430,12 +431,11 @@
)
def is_egg(self, search):
- root_n_low = os.path.split(self.root)[1].lower()
-
+ base = self.base
return (
- root_n_low == search.normalized + '.egg'
- or root_n_low.startswith(search.prefix)
- and root_n_low.endswith('.egg'))
+ base == search.versionless_egg_name
+ or base.startswith(search.prefix)
+ and base.endswith('.egg'))
def search(self, name):
for child in self.children():
@@ -456,6 +456,7 @@
prefix = ''
suffixes = '.dist-info', '.egg-info'
exact_matches = [''][:0]
+ versionless_egg_name = ''
def __init__(self, name):
self.name = name
@@ -465,6 +466,7 @@
self.prefix = self.normalized + '-'
self.exact_matches = [
self.normalized + suffix for suffix in self.suffixes]
+ self.versionless_egg_name = self.normalized + '.egg'
@install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/importlib_metadata-1.4.0/importlib_metadata/_compat.py
new/importlib_metadata-1.5.0/importlib_metadata/_compat.py
--- old/importlib_metadata-1.4.0/importlib_metadata/_compat.py 2020-01-11
01:18:29.000000000 +0100
+++ new/importlib_metadata-1.5.0/importlib_metadata/_compat.py 2020-01-29
05:15:02.000000000 +0100
@@ -73,7 +73,7 @@
"""
def matches(finder):
return (
- finder.__module__ == '_frozen_importlib_external'
+ getattr(finder, '__module__', None) == '_frozen_importlib_external'
and hasattr(finder, 'find_distributions')
)
for finder in filter(matches, sys.meta_path): # pragma: nocover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/importlib_metadata-1.4.0/importlib_metadata/docs/changelog.rst
new/importlib_metadata-1.5.0/importlib_metadata/docs/changelog.rst
--- old/importlib_metadata-1.4.0/importlib_metadata/docs/changelog.rst
2020-01-11 01:18:29.000000000 +0100
+++ new/importlib_metadata-1.5.0/importlib_metadata/docs/changelog.rst
2020-01-29 05:15:02.000000000 +0100
@@ -2,6 +2,14 @@
importlib_metadata NEWS
=========================
+v1.5.0
+======
+
+* Additional performance optimizations in FastPath now
+ saves an additional 20% on a typical call.
+* Correct for issue where PyOxidizer finder has no
+ ``__module__`` attribute. Closes #110.
+
v1.4.0
======
@@ -9,6 +17,11 @@
3-4x faster. Thanks to Antony Lee for the
contribution. Closes #95.
+* When searching through ``sys.path``, if any error
+ occurs attempting to list a path entry, that entry
+ is skipped, making the system much more lenient
+ to errors. Closes #94.
+
v1.3.0
======
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/importlib_metadata-1.4.0/importlib_metadata/tests/fixtures.py
new/importlib_metadata-1.5.0/importlib_metadata/tests/fixtures.py
--- old/importlib_metadata-1.4.0/importlib_metadata/tests/fixtures.py
2020-01-11 01:18:29.000000000 +0100
+++ new/importlib_metadata-1.5.0/importlib_metadata/tests/fixtures.py
2020-01-29 05:15:02.000000000 +0100
@@ -47,14 +47,28 @@
yield tmp
-class SiteDir:
[email protected]
+def install_finder(finder):
+ sys.meta_path.append(finder)
+ try:
+ yield
+ finally:
+ sys.meta_path.remove(finder)
+
+
+class Fixtures:
def setUp(self):
self.fixtures = ExitStack()
self.addCleanup(self.fixtures.close)
+
+
+class SiteDir(Fixtures):
+ def setUp(self):
+ super(SiteDir, self).setUp()
self.site_dir = self.fixtures.enter_context(tempdir())
-class OnSysPath:
+class OnSysPath(Fixtures):
@staticmethod
@contextlib.contextmanager
def add_sys_path(dir):
@@ -198,3 +212,8 @@
def DALS(str):
"Dedent and left-strip"
return textwrap.dedent(str).lstrip()
+
+
+class NullFinder:
+ def find_module(self, name):
+ pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/importlib_metadata-1.4.0/importlib_metadata/tests/test_integration.py
new/importlib_metadata-1.5.0/importlib_metadata/tests/test_integration.py
--- old/importlib_metadata-1.4.0/importlib_metadata/tests/test_integration.py
2020-01-11 01:18:29.000000000 +0100
+++ new/importlib_metadata-1.5.0/importlib_metadata/tests/test_integration.py
2020-01-29 05:15:02.000000000 +0100
@@ -3,7 +3,10 @@
import packaging.version
from . import fixtures
-from .. import version
+from .. import (
+ _compat,
+ version,
+ )
class IntegrationTests(fixtures.DistInfoPkg, unittest.TestCase):
@@ -20,3 +23,20 @@
assert is_installed('distinfo-pkg==1.0')
assert is_installed('distinfo-pkg>=1.0,<2.0')
assert not is_installed('distinfo-pkg<1.0')
+
+
+class FinderTests(fixtures.Fixtures, unittest.TestCase):
+
+ def test_finder_without_module(self):
+ class ModuleFreeFinder(fixtures.NullFinder):
+ """
+ A finder without an __module__ attribute
+ """
+ def __getattribute__(self, name):
+ if name == '__module__':
+ raise AttributeError(name)
+ return super().__getattribute__(name)
+
+ self.fixtures.enter_context(
+ fixtures.install_finder(ModuleFreeFinder()))
+ _compat.disable_stdlib_finder()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/importlib_metadata-1.4.0/importlib_metadata/tests/test_main.py
new/importlib_metadata-1.5.0/importlib_metadata/tests/test_main.py
--- old/importlib_metadata-1.4.0/importlib_metadata/tests/test_main.py
2020-01-11 01:18:29.000000000 +0100
+++ new/importlib_metadata-1.5.0/importlib_metadata/tests/test_main.py
2020-01-29 05:15:02.000000000 +0100
@@ -8,6 +8,7 @@
import unittest
import importlib
import importlib_metadata
+import pyfakefs.fake_filesystem_unittest as ffs
from . import fixtures
from .. import (
@@ -193,6 +194,33 @@
version('foo')
+class MissingSysPath(fixtures.OnSysPath, unittest.TestCase):
+ site_dir = '/does-not-exist'
+
+ def test_discovery(self):
+ """
+ Discovering distributions should succeed even if
+ there is an invalid path on sys.path.
+ """
+ importlib_metadata.distributions()
+
+
+class InaccessibleSysPath(fixtures.OnSysPath, ffs.TestCase):
+ site_dir = '/access-denied'
+
+ def setUp(self):
+ super(InaccessibleSysPath, self).setUp()
+ self.setUpPyfakefs()
+ self.fs.create_dir(self.site_dir, perm_bits=000)
+
+ def test_discovery(self):
+ """
+ Discovering distributions should succeed even if
+ there is an invalid path on sys.path.
+ """
+ list(importlib_metadata.distributions())
+
+
class TestEntryPoints(unittest.TestCase):
def __init__(self, *args):
super(TestEntryPoints, self).__init__(*args)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/importlib_metadata-1.4.0/importlib_metadata.egg-info/PKG-INFO
new/importlib_metadata-1.5.0/importlib_metadata.egg-info/PKG-INFO
--- old/importlib_metadata-1.4.0/importlib_metadata.egg-info/PKG-INFO
2020-01-11 01:18:51.000000000 +0100
+++ new/importlib_metadata-1.5.0/importlib_metadata.egg-info/PKG-INFO
2020-01-29 05:15:29.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: importlib-metadata
-Version: 1.4.0
+Version: 1.5.0
Summary: Read metadata from Python packages
Home-page: http://importlib-metadata.readthedocs.io/
Author: Barry Warsaw
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/importlib_metadata-1.4.0/importlib_metadata.egg-info/SOURCES.txt
new/importlib_metadata-1.5.0/importlib_metadata.egg-info/SOURCES.txt
--- old/importlib_metadata-1.4.0/importlib_metadata.egg-info/SOURCES.txt
2020-01-11 01:18:51.000000000 +0100
+++ new/importlib_metadata-1.5.0/importlib_metadata.egg-info/SOURCES.txt
2020-01-29 05:15:30.000000000 +0100
@@ -31,6 +31,5 @@
importlib_metadata/tests/data/__init__.py
importlib_metadata/tests/data/example-21.12-py3-none-any.whl
importlib_metadata/tests/data/example-21.12-py3.6.egg
-pip-wheel-metadata/importlib_metadata.dist-info/top_level.txt
prepare/example/setup.py
prepare/example/example/__init__.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/importlib_metadata-1.4.0/pip-wheel-metadata/importlib_metadata.dist-info/top_level.txt
new/importlib_metadata-1.5.0/pip-wheel-metadata/importlib_metadata.dist-info/top_level.txt
---
old/importlib_metadata-1.4.0/pip-wheel-metadata/importlib_metadata.dist-info/top_level.txt
2020-01-11 01:18:48.000000000 +0100
+++
new/importlib_metadata-1.5.0/pip-wheel-metadata/importlib_metadata.dist-info/top_level.txt
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-importlib_metadata
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/importlib_metadata-1.4.0/tox.ini
new/importlib_metadata-1.5.0/tox.ini
--- old/importlib_metadata-1.4.0/tox.ini 2020-01-11 01:18:29.000000000
+0100
+++ new/importlib_metadata-1.5.0/tox.ini 2020-01-29 05:15:02.000000000
+0100
@@ -1,14 +1,13 @@
[tox]
-envlist = {py27,py35,py36,py37,py38}{,-cov,-diffcov},qa,docs
+envlist = {py27,py35,py36,py37,py38}{,-cov,-diffcov},qa,docs,perf
skip_missing_interpreters = True
-
+minversion = 3.2
+# Ensure that a late version of pip is used even on tox-venv.
+requires =
+ tox-pip-version>=0.0.6
[testenv]
-# Pin pip at version less than 19.1, see
https://gitlab.com/python-devs/importlib_metadata/issues/54 for background
-# Full discussion at
https://discuss.python.org/t/pip-19-1-and-installing-in-editable-mode-with-pyproject-toml/1553
-# One liner copied from https://github.com/ansible/molecule/pull/2009/files
-install_command =
- python -c 'import subprocess, sys; pip_inst_cmd = sys.executable, "-m",
"pip", "install"; subprocess.check_call(pip_inst_cmd + ("pip<19.1", ));
subprocess.check_call(pip_inst_cmd + tuple(sys.argv[1:]))' {opts} {packages}
+pip_version = pip
commands =
!cov,!diffcov: python -m unittest discover {posargs}
cov,diffcov: python -m coverage run {[coverage]rc} -m unittest discover
{posargs}
@@ -28,6 +27,7 @@
deps =
cov,diffcov: coverage>=4.5
diffcov: diff_cover
+ pyfakefs
setenv =
cov: COVERAGE_PROCESS_START={[coverage]rcfile}
cov: COVERAGE_OPTIONS="-p"
@@ -60,6 +60,14 @@
docs
+[testenv:perf]
+use_develop = False
+deps =
+ ipython
+commands =
+ python -m timeit -s 'import importlib_metadata' --
'importlib_metadata.distribution("ipython")'
+
+
[testenv:release]
basepython = python3
deps =