Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-importlib-metadata for openSUSE:Factory checked in at 2022-05-10 15:11:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-importlib-metadata (Old) and /work/SRC/openSUSE:Factory/.python-importlib-metadata.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-importlib-metadata" Tue May 10 15:11:33 2022 rev:9 rq:975783 version:4.11.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-importlib-metadata/python-importlib-metadata.changes 2021-12-09 19:45:22.593126533 +0100 +++ /work/SRC/openSUSE:Factory/.python-importlib-metadata.new.1538/python-importlib-metadata.changes 2022-05-10 15:11:44.319555537 +0200 @@ -1,0 +2,31 @@ +Mon May 9 10:53:20 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- update to 4.11.3: + * #372: Removed cast of path items in FastPath, not needed. + * #369: Fixed bug where ``EntryPoint.extras`` was returning + match objects and not the extras strings. + * #367: In ``Distribution.requires`` for egg-info, if ``requires.txt`` + is empty, return an empty list. + * bpo-46246: Added ``__slots__`` to ``EntryPoints``. + * #365 and bpo-46546: Avoid leaking ``method_name`` in + ``DeprecatedList``. + +------------------------------------------------------------------- +Mon Jan 31 20:04:23 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- update to 4.10.1: + - #361: Avoid potential REDoS in ``EntryPoint.pattern``. + +------------------------------------------------------------------- +Fri Dec 31 12:51:32 UTC 2021 - Matej Cepl <mc...@suse.com> + +- Update to 4.10.0: + - #354: Removed Distribution._local factory. This + functionality was created as a demonstration of the possible + implementation. Now, the pep517 package provides this + functionality directly through pep517.meta.load. + - Require Python 3.7 or later. + - #357: Fixed requirement generation from egg-info when a URL + requirement is given. + +------------------------------------------------------------------- Old: ---- importlib_metadata-4.8.2.tar.gz New: ---- importlib_metadata-4.11.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-importlib-metadata.spec ++++++ --- /var/tmp/diff_new_pack.hJfLAK/_old 2022-05-10 15:11:44.831556183 +0200 +++ /var/tmp/diff_new_pack.hJfLAK/_new 2022-05-10 15:11:44.835556187 +0200 @@ -1,7 +1,7 @@ # # spec file # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -26,8 +26,9 @@ %endif %{?!python_module:%define python_module() python3-%{**}} %define skip_python2 1 +%define skip_python36 1 Name: python-importlib-metadata%{psuffix} -Version: 4.8.2 +Version: 4.11.3 Release: 0 Summary: Read metadata from Python packages License: Apache-2.0 @@ -64,9 +65,8 @@ importlib.metadata including improvements added to subsequent Python versions. %prep -%setup -q -n importlib_metadata-%{version} -# don't import from sourcedir during testing -sed -i -e 's/norecursedirs.*/& importlib_metadata/' pytest.ini +%autosetup -p1 -n importlib_metadata-%{version} +echo "import setuptools; setuptools.setup()" > setup.py %build %python_build ++++++ importlib_metadata-4.8.2.tar.gz -> importlib_metadata-4.11.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/.github/workflows/main.yml new/importlib_metadata-4.11.3/.github/workflows/main.yml --- old/importlib_metadata-4.8.2/.github/workflows/main.yml 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/.github/workflows/main.yml 2022-03-13 19:08:11.000000000 +0100 @@ -7,7 +7,7 @@ strategy: matrix: python: - - 3.6 + - 3.7 - 3.9 - "3.10" platform: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/.pre-commit-config.yaml new/importlib_metadata-4.11.3/.pre-commit-config.yaml --- old/importlib_metadata-4.8.2/.pre-commit-config.yaml 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/.pre-commit-config.yaml 2022-03-13 19:08:11.000000000 +0100 @@ -1,5 +1,5 @@ repos: - repo: https://github.com/psf/black - rev: 20.8b1 + rev: 22.1.0 hooks: - id: black diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/CHANGES.rst new/importlib_metadata-4.11.3/CHANGES.rst --- old/importlib_metadata-4.8.2/CHANGES.rst 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/CHANGES.rst 2022-03-13 19:08:11.000000000 +0100 @@ -1,3 +1,60 @@ +v4.11.3 +======= + +* #372: Removed cast of path items in FastPath, not needed. + +v4.11.2 +======= + +* #369: Fixed bug where ``EntryPoint.extras`` was returning + match objects and not the extras strings. + +v4.11.1 +======= + +* #367: In ``Distribution.requires`` for egg-info, if ``requires.txt`` + is empty, return an empty list. + +v4.11.0 +======= + +* bpo-46246: Added ``__slots__`` to ``EntryPoints``. + +v4.10.2 +======= + +* #365 and bpo-46546: Avoid leaking ``method_name`` in + ``DeprecatedList``. + +v4.10.1 +======= + +v2.1.3 +======= + +* #361: Avoid potential REDoS in ``EntryPoint.pattern``. + +v4.10.0 +======= + +* #354: Removed ``Distribution._local`` factory. This + functionality was created as a demonstration of the + possible implementation. Now, the + `pep517 <https://pypi.org/project/pep517>`_ package + provides this functionality directly through + `pep517.meta.load <https://github.com/pypa/pep517/blob/a942316305395f8f757f210e2b16f738af73f8b8/pep517/meta.py#L63-L73>`_. + +v4.9.0 +====== + +* Require Python 3.7 or later. + +v4.8.3 +====== + +* #357: Fixed requirement generation from egg-info when a + URL requirement is given. + v4.8.2 ====== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/PKG-INFO new/importlib_metadata-4.11.3/PKG-INFO --- old/importlib_metadata-4.8.2/PKG-INFO 2021-11-09 02:15:16.083703800 +0100 +++ new/importlib_metadata-4.11.3/PKG-INFO 2022-03-13 19:08:40.478635000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: importlib_metadata -Version: 4.8.2 +Version: 4.11.3 Summary: Read metadata from Python packages Home-page: https://github.com/python/importlib_metadata Author: Jason R. Coombs @@ -12,7 +12,7 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only -Requires-Python: >=3.6 +Requires-Python: >=3.7 Provides-Extra: testing Provides-Extra: docs Provides-Extra: perf @@ -37,7 +37,7 @@ .. image:: https://readthedocs.org/projects/importlib-metadata/badge/?version=latest :target: https://importlib-metadata.readthedocs.io/en/latest/?badge=latest -.. image:: https://img.shields.io/badge/skeleton-2021-informational +.. image:: https://img.shields.io/badge/skeleton-2022-informational :target: https://blog.jaraco.com/skeleton @@ -60,6 +60,8 @@ * - importlib_metadata - stdlib + * - 4.8 + - 3.11 * - 4.4 - 3.10 * - 1.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/README.rst new/importlib_metadata-4.11.3/README.rst --- old/importlib_metadata-4.8.2/README.rst 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/README.rst 2022-03-13 19:08:11.000000000 +0100 @@ -17,7 +17,7 @@ .. image:: https://readthedocs.org/projects/importlib-metadata/badge/?version=latest :target: https://importlib-metadata.readthedocs.io/en/latest/?badge=latest -.. image:: https://img.shields.io/badge/skeleton-2021-informational +.. image:: https://img.shields.io/badge/skeleton-2022-informational :target: https://blog.jaraco.com/skeleton @@ -40,6 +40,8 @@ * - importlib_metadata - stdlib + * - 4.8 + - 3.11 * - 4.4 - 3.10 * - 1.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/docs/index.rst new/importlib_metadata-4.11.3/docs/index.rst --- old/importlib_metadata-4.8.2/docs/index.rst 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/docs/index.rst 2022-03-13 19:08:11.000000000 +0100 @@ -25,6 +25,7 @@ using api + migration history diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/docs/migration.rst new/importlib_metadata-4.11.3/docs/migration.rst --- old/importlib_metadata-4.8.2/docs/migration.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/importlib_metadata-4.11.3/docs/migration.rst 2022-03-13 19:08:11.000000000 +0100 @@ -0,0 +1,84 @@ +.. _migration: + +================= + Migration guide +================= + +The following guide will help you migrate common ``pkg_resources`` +APIs to ``importlib_metadata``. ``importlib_metadata`` aims to +replace the following ``pkg_resources`` APIs: + +* ``pkg_resources.iter_entry_points()`` +* ``pkg_resources.require()`` +* convenience functions +* ``pkg_resources.find_distributions()`` +* ``pkg_resources.get_distribution()`` + +Other functionality from ``pkg_resources`` is replaced by other +packages such as +`importlib_resources <https://pypi.org/project/importlib_resources>`_ +and `packaging <https://pypi.org/project/packaging>`_. + + +pkg_resources.iter_entry_points() +================================= + +``importlib_metadata`` provides :ref:`entry-points`. + +Compatibility note: entry points provided by importlib_metadata +do not have the following implicit behaviors found in those +from ``pkg_resources``: + +- Each EntryPoint is not automatically validated to match. To + ensure each one is validated, invoke any property on the + object (e.g. ``ep.name``). + +- When invoking ``EntryPoint.load()``, no checks are performed + to ensure the declared extras are installed. If this behavior + is desired/required, it is left to the user to perform the + check and install any dependencies. See + `importlib_metadata#368 <https://github.com/python/importlib_metadata/issues/368>`_ + for more details. + +pkg_resources.require() +======================= + +``importlib_metadata`` does not provide support for dynamically +discovering or requiring distributions nor does it provide any +support for managing the "working set". Furthermore, +``importlib_metadata`` assumes that only one version of a given +distribution is discoverable at any time (no support for multi-version +installs). Any projects that require the above behavior needs to +provide that behavior independently. + +``importlib_metadata`` does aim to resolve metadata concerns late +such that any dynamic changes to package availability should be +reflected immediately. + +Convenience functions +===================== + +In addition to the support for direct access to ``Distribution`` +objects (below), ``importlib_metadata`` presents some top-level +functions for easy access to the most common metadata: + +- :ref:`metadata` queries the metadata fields from the distribution. +- :ref:`version` provides quick access to the distribution version. +- :ref:`requirements` presents the requirements of the distribution. +- :ref:`files` provides file-like access to the data blobs backing + the metadata. + +pkg_resources.find_distributions() +================================== + +``importlib_metadata`` provides functionality +similar to ``find_distributions()``. Both ``distributions(...)`` and +``Distribution.discover(...)`` return an iterable of :ref:`distributions` +matching the indicated parameters. + +pkg_resources.get_distribution() +================================= + +Similar to ``distributions``, the ``distribution()`` function provides +access to a single distribution by name. + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/docs/using.rst new/importlib_metadata-4.11.3/docs/using.rst --- old/importlib_metadata-4.8.2/docs/using.rst 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/docs/using.rst 2022-03-13 19:08:11.000000000 +0100 @@ -236,13 +236,14 @@ Package distributions --------------------- -A convience method to resolve the distribution or +A convenience method to resolve the distribution or distributions (in the case of a namespace package) for top-level Python packages or modules:: >>> packages_distributions() {'importlib_metadata': ['importlib-metadata'], 'yaml': ['PyYAML'], 'jaraco': ['jaraco.classes', 'jaraco.functools'], ...} +.. _distributions: Distributions ============= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/exercises.py new/importlib_metadata-4.11.3/exercises.py --- old/importlib_metadata-4.8.2/exercises.py 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/exercises.py 2022-03-13 19:08:11.000000000 +0100 @@ -34,3 +34,12 @@ # end warmup importlib.invalidate_caches() importlib_metadata.distribution('ipython') + + +def entrypoint_regexp_perf(): + import importlib_metadata + import re + + input = '0' + ' ' * 2**10 + '0' # end warmup + + re.match(importlib_metadata.EntryPoint.pattern, input) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/importlib_metadata/__init__.py new/importlib_metadata-4.11.3/importlib_metadata/__init__.py --- old/importlib_metadata-4.8.2/importlib_metadata/__init__.py 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/importlib_metadata/__init__.py 2022-03-13 19:08:11.000000000 +0100 @@ -157,12 +157,21 @@ See `the packaging docs on entry points <https://packaging.python.org/specifications/entry-points/>`_ for more information. + + >>> ep = EntryPoint( + ... name=None, group=None, value='package.module:attr [extra1, extra2]') + >>> ep.module + 'package.module' + >>> ep.attr + 'attr' + >>> ep.extras + ['extra1', 'extra2'] """ pattern = re.compile( r'(?P<module>[\w.]+)\s*' - r'(:\s*(?P<attr>[\w.]+))?\s*' - r'(?P<extras>\[.*\])?\s*$' + r'(:\s*(?P<attr>[\w.]+)\s*)?' + r'((?P<extras>\[.*\])\s*)?$' ) """ A regular expression describing the syntax for an entry point, @@ -208,7 +217,7 @@ @property def extras(self): match = self.pattern.match(self.value) - return list(re.finditer(r'\w+', match.group('extras') or '')) + return re.findall(r'\w+', match.group('extras') or '') def _for(self, dist): vars(self).update(dist=dist) @@ -226,6 +235,25 @@ return iter((self.name, self)) def matches(self, **params): + """ + EntryPoint matches the given parameters. + + >>> ep = EntryPoint(group='foo', name='bar', value='bing:bong [extra1, extra2]') + >>> ep.matches(group='foo') + True + >>> ep.matches(name='bar', value='bing:bong [extra1, extra2]') + True + >>> ep.matches(group='foo', name='other') + False + >>> ep.matches() + True + >>> ep.matches(extras=['extra1', 'extra2']) + True + >>> ep.matches(module='bing') + True + >>> ep.matches(attr='bong') + True + """ attrs = (getattr(self, param) for param in params) return all(map(operator.eq, params.values(), attrs)) @@ -283,6 +311,8 @@ 1 """ + __slots__ = () + _warn = functools.partial( warnings.warn, "EntryPoints list interface is deprecated. Cast to list if needed.", @@ -295,21 +325,15 @@ self._warn() return getattr(super(), method_name)(*args, **kwargs) - return wrapped + return method_name, wrapped - for method_name in [ - '__setitem__', - '__delitem__', - 'append', - 'reverse', - 'extend', - 'pop', - 'remove', - '__iadd__', - 'insert', - 'sort', - ]: - locals()[method_name] = _wrap_deprecated_method(method_name) + locals().update( + map( + _wrap_deprecated_method, + '__setitem__ __delitem__ append reverse extend pop remove ' + '__iadd__ insert sort'.split(), + ) + ) def __add__(self, other): if not isinstance(other, tuple): @@ -576,18 +600,6 @@ ) return filter(None, declared) - @classmethod - def _local(cls, root='.'): - from pep517 import build, meta - - system = build.compat_system(root) - builder = functools.partial( - meta.build, - source_dir=root, - system=system, - ) - return PathDistribution(zipp.Path(meta.build_as_zip(builder))) - @property def metadata(self) -> _meta.PackageMetadata: """Return the parsed metadata for this Distribution. @@ -675,7 +687,7 @@ def _read_egg_info_reqs(self): source = self.read_text('requires.txt') - return source and self._deps_from_requires_text(source) + return pass_none(self._deps_from_requires_text)(source) @classmethod def _deps_from_requires_text(cls, source): @@ -696,7 +708,7 @@ def make_condition(name): return name and f'extra == "{name}"' - def parse_condition(section): + def quoted_marker(section): section = section or '' extra, sep, markers = section.partition(':') if extra and markers: @@ -704,8 +716,17 @@ conditions = list(filter(None, [markers, make_condition(extra)])) return '; ' + ' and '.join(conditions) if conditions else '' + def url_req_space(req): + """ + PEP 508 requires a space between the url_spec and the quoted_marker. + Ref python/importlib_metadata#357. + """ + # '@' is uniquely indicative of a url_req. + return ' ' * ('@' in req) + for section in sections: - yield section.value + parse_condition(section.name) + space = url_req_space(section.value) + yield section.value + space + quoted_marker(section.name) class DistributionFinder(MetaPathFinder): @@ -770,7 +791,7 @@ return super().__new__(cls) def __init__(self, root): - self.root = str(root) + self.root = root def joinpath(self, child): return pathlib.Path(self.root, child) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/importlib_metadata.egg-info/PKG-INFO new/importlib_metadata-4.11.3/importlib_metadata.egg-info/PKG-INFO --- old/importlib_metadata-4.8.2/importlib_metadata.egg-info/PKG-INFO 2021-11-09 02:15:16.000000000 +0100 +++ new/importlib_metadata-4.11.3/importlib_metadata.egg-info/PKG-INFO 2022-03-13 19:08:40.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: importlib-metadata -Version: 4.8.2 +Version: 4.11.3 Summary: Read metadata from Python packages Home-page: https://github.com/python/importlib_metadata Author: Jason R. Coombs @@ -12,7 +12,7 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3 :: Only -Requires-Python: >=3.6 +Requires-Python: >=3.7 Provides-Extra: testing Provides-Extra: docs Provides-Extra: perf @@ -37,7 +37,7 @@ .. image:: https://readthedocs.org/projects/importlib-metadata/badge/?version=latest :target: https://importlib-metadata.readthedocs.io/en/latest/?badge=latest -.. image:: https://img.shields.io/badge/skeleton-2021-informational +.. image:: https://img.shields.io/badge/skeleton-2022-informational :target: https://blog.jaraco.com/skeleton @@ -60,6 +60,8 @@ * - importlib_metadata - stdlib + * - 4.8 + - 3.11 * - 4.4 - 3.10 * - 1.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/importlib_metadata.egg-info/SOURCES.txt new/importlib_metadata-4.11.3/importlib_metadata.egg-info/SOURCES.txt --- old/importlib_metadata-4.8.2/importlib_metadata.egg-info/SOURCES.txt 2021-11-09 02:15:16.000000000 +0100 +++ new/importlib_metadata-4.11.3/importlib_metadata.egg-info/SOURCES.txt 2022-03-13 19:08:40.000000000 +0100 @@ -13,7 +13,6 @@ pyproject.toml pytest.ini setup.cfg -setup.py tox.ini .github/dependabot.yml .github/workflows/main.yml @@ -22,6 +21,7 @@ docs/conf.py docs/history.rst docs/index.rst +docs/migration.rst docs/using.rst importlib_metadata/__init__.py importlib_metadata/_adapters.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/importlib_metadata.egg-info/requires.txt new/importlib_metadata-4.11.3/importlib_metadata.egg-info/requires.txt --- old/importlib_metadata-4.8.2/importlib_metadata.egg-info/requires.txt 2021-11-09 02:15:16.000000000 +0100 +++ new/importlib_metadata-4.11.3/importlib_metadata.egg-info/requires.txt 2022-03-13 19:08:40.000000000 +0100 @@ -5,7 +5,7 @@ [docs] sphinx -jaraco.packaging>=8.2 +jaraco.packaging>=9 rst.linker>=1.9 [perf] @@ -18,14 +18,13 @@ pytest-cov pytest-enabler>=1.0.1 packaging -pep517 pyfakefs flufl.flake8 pytest-perf>=0.9.2 [testing:platform_python_implementation != "PyPy"] pytest-black>=0.3.7 -pytest-mypy +pytest-mypy>=0.9.1 [testing:python_version < "3.9"] importlib_resources>=1.3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/pytest.ini new/importlib_metadata-4.11.3/pytest.ini --- old/importlib_metadata-4.8.2/pytest.ini 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/pytest.ini 2022-03-13 19:08:11.000000000 +0100 @@ -5,5 +5,13 @@ filterwarnings= # Suppress deprecation warning in flake8 ignore:SelectableGroups dict interface is deprecated::flake8 - # Suppress deprecation warning in pypa/packaging#433 - ignore:The distutils package is deprecated::packaging.tags + + # shopkeep/pytest-black#55 + ignore:<class 'pytest_black.BlackItem'> is not using a cooperative constructor:pytest.PytestDeprecationWarning + ignore:The \(fspath. py.path.local\) argument to BlackItem is deprecated.:pytest.PytestDeprecationWarning + ignore:BlackItem is an Item subclass and should not be a collector:pytest.PytestWarning + + # tholo/pytest-flake8#83 + ignore:<class 'pytest_flake8.Flake8Item'> is not using a cooperative constructor:pytest.PytestDeprecationWarning + ignore:The \(fspath. py.path.local\) argument to Flake8Item is deprecated.:pytest.PytestDeprecationWarning + ignore:Flake8Item is an Item subclass and should not be a collector:pytest.PytestWarning diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/setup.cfg new/importlib_metadata-4.11.3/setup.cfg --- old/importlib_metadata-4.8.2/setup.cfg 2021-11-09 02:15:16.083703800 +0100 +++ new/importlib_metadata-4.11.3/setup.cfg 2022-03-13 19:08:40.478635000 +0100 @@ -15,7 +15,7 @@ [options] packages = find_namespace: include_package_data = true -python_requires = >=3.6 +python_requires = >=3.7 install_requires = zipp>=0.5 typing-extensions>=3.6.4; python_version < "3.8" @@ -36,19 +36,18 @@ pytest-black >= 0.3.7; \ python_implementation != "PyPy" pytest-cov - pytest-mypy; \ + pytest-mypy >= 0.9.1; \ python_implementation != "PyPy" pytest-enabler >= 1.0.1 importlib_resources>=1.3; python_version < "3.9" packaging - pep517 pyfakefs flufl.flake8 pytest-perf >= 0.9.2 docs = sphinx - jaraco.packaging >= 8.2 + jaraco.packaging >= 9 rst.linker >= 1.9 perf = ipython diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/setup.py new/importlib_metadata-4.11.3/setup.py --- old/importlib_metadata-4.8.2/setup.py 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/setup.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +0,0 @@ -#!/usr/bin/env python - -import setuptools - -if __name__ == "__main__": - setuptools.setup() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/tests/fixtures.py new/importlib_metadata-4.11.3/tests/fixtures.py --- old/importlib_metadata-4.8.2/tests/fixtures.py 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/tests/fixtures.py 2022-03-13 19:08:11.000000000 +0100 @@ -11,7 +11,7 @@ from typing import Dict, Union try: - from importlib import resources + from importlib import resources # type: ignore getattr(resources, 'files') getattr(resources, 'as_file') @@ -231,21 +231,6 @@ build_files(EggInfoFile.files, prefix=self.site_dir) -class LocalPackage: - files: FilesDef = { - "setup.py": """ - import setuptools - setuptools.setup(name="local-pkg", version="2.0.1") - """, - } - - def setUp(self): - self.fixtures = contextlib.ExitStack() - self.addCleanup(self.fixtures.close) - self.fixtures.enter_context(tempdir_as_cwd()) - build_files(self.files) - - def build_files(file_defs, prefix=pathlib.Path()): """Build a set of files/directories, as described by the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/tests/test_api.py new/importlib_metadata-4.11.3/tests/test_api.py --- old/importlib_metadata-4.8.2/tests/test_api.py 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/tests/test_api.py 2022-03-13 19:08:11.000000000 +0100 @@ -180,6 +180,11 @@ entry_points().get('entries', 'default') == entry_points()['entries'] entry_points().get('missing', ()) == () + def test_entry_points_allows_no_attributes(self): + ep = entry_points().select(group='entries', name='main') + with self.assertRaises(AttributeError): + ep.foo = 4 + def test_metadata_for_this_package(self): md = metadata('egginfo-pkg') assert md['author'] == 'Steven Ma' @@ -227,6 +232,16 @@ assert len(deps) == 2 assert any(dep == 'wheel >= 1.0; python_version >= "2.7"' for dep in deps) + def test_requires_egg_info_empty(self): + fixtures.build_files( + { + 'requires.txt': '', + }, + self.site_dir.joinpath('egginfo_pkg.egg-info'), + ) + deps = requires('egginfo-pkg') + assert deps == [] + def test_requires_dist_info(self): deps = requires('distinfo-pkg') assert len(deps) == 2 @@ -245,6 +260,7 @@ [extra1] dep4 + dep6@ git+https://example.com/python/dep.git@v1.0.0 [extra2:python_version < "3"] dep5 @@ -257,6 +273,7 @@ 'dep3; python_version < "3"', 'dep4; extra == "extra1"', 'dep5; (python_version < "3") and extra == "extra2"', + 'dep6@ git+https://example.com/python/dep.git@v1.0.0 ; extra == "extra1"', ] # It's important that the environment marker expression be # wrapped in parentheses to avoid the following 'and' binding more diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/importlib_metadata-4.8.2/tests/test_integration.py new/importlib_metadata-4.11.3/tests/test_integration.py --- old/importlib_metadata-4.8.2/tests/test_integration.py 2021-11-09 02:14:49.000000000 +0100 +++ new/importlib_metadata-4.11.3/tests/test_integration.py 2022-03-13 19:08:11.000000000 +0100 @@ -4,7 +4,6 @@ from . import fixtures from importlib_metadata import ( - Distribution, MetadataPathFinder, _compat, distributions, @@ -44,13 +43,6 @@ _compat.disable_stdlib_finder() -class LocalProjectTests(fixtures.LocalPackage, unittest.TestCase): - def test_find_local(self): - dist = Distribution._local() - assert dist.metadata['Name'] == 'local-pkg' - assert dist.version == '2.0.1' - - class DistSearch(unittest.TestCase): def test_search_dist_dirs(self): """