Hello community,

here is the log from the commit of package python-importlib-metadata for 
openSUSE:Factory checked in at 2020-03-08 22:23:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-importlib-metadata (Old)
 and      /work/SRC/openSUSE:Factory/.python-importlib-metadata.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-importlib-metadata"

Sun Mar  8 22:23:00 2020 rev:9 rq:782612 version:1.5.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-importlib-metadata/python-importlib-metadata.changes
      2020-01-20 22:50:12.731222741 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-importlib-metadata.new.26092/python-importlib-metadata.changes
   2020-03-08 22:23:05.744038897 +0100
@@ -1,0 +2,14 @@
+Sun Mar  8 04:09:30 UTC 2020 - Tomáš Chvátal <tchva...@suse.com>
+
+- Switch to multibuild in order to avoid buildcycles
+
+-------------------------------------------------------------------
+Fri Feb 28 22:56:32 UTC 2020 - Dirk Mueller <dmuel...@suse.com>
+
+- 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.haN8j4/_old  2020-03-08 22:23:07.792040161 +0100
+++ /var/tmp/diff_new_pack.haN8j4/_new  2020-03-08 22:23:07.796040163 +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:
+@contextlib.contextmanager
+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 =


Reply via email to