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 2023-12-09 22:49:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-importlib-metadata (Old)
 and      /work/SRC/openSUSE:Factory/.python-importlib-metadata.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-importlib-metadata"

Sat Dec  9 22:49:06 2023 rev:22 rq:1131745 version:7.0.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-importlib-metadata/python-importlib-metadata.changes
      2023-07-17 19:22:55.249610358 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-importlib-metadata.new.25432/python-importlib-metadata.changes
   2023-12-09 22:49:13.070772244 +0100
@@ -1,0 +2,10 @@
+Thu Dec  7 22:49:16 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 7.0.0:
+  * Removed EntryPoint access by numeric index (tuple behavior).
+  * Added ``Distribution.origin`` supplying the
+    ``direct_url.json`` in a ``SimpleNamespace``. (#404)
+  * Added diagnose script. (#461)
+  * Added EntryPoints.__repr__ (#473)
+
+-------------------------------------------------------------------

Old:
----
  importlib_metadata-6.8.0.tar.gz

New:
----
  importlib_metadata-7.0.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-importlib-metadata.spec ++++++
--- /var/tmp/diff_new_pack.qCksTJ/_old  2023-12-09 22:49:13.794798383 +0100
+++ /var/tmp/diff_new_pack.qCksTJ/_new  2023-12-09 22:49:13.794798383 +0100
@@ -28,7 +28,7 @@
 %define skip_python2 1
 %{?sle15_python_module_pythons}
 Name:           python-importlib-metadata%{psuffix}
-Version:        6.8.0
+Version:        7.0.0
 Release:        0
 Summary:        Read metadata from Python packages
 License:        Apache-2.0

++++++ importlib_metadata-6.8.0.tar.gz -> importlib_metadata-7.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/importlib_metadata-6.8.0/.github/workflows/main.yml 
new/importlib_metadata-7.0.0/.github/workflows/main.yml
--- old/importlib_metadata-6.8.0/.github/workflows/main.yml     2023-07-07 
18:15:29.000000000 +0200
+++ new/importlib_metadata-7.0.0/.github/workflows/main.yml     2023-12-03 
18:41:47.000000000 +0100
@@ -6,35 +6,17 @@
   contents: read
 
 env:
-  # Environment variables to support color support (jaraco/skeleton#66):
-  # Request colored output from CLI tools supporting it. Different tools
-  # interpret the value differently. For some, just being set is sufficient.
-  # For others, it must be a non-zero integer. For yet others, being set
-  # to a non-empty value is sufficient. For tox, it must be one of
-  # <blank>, 0, 1, false, no, off, on, true, yes. The only enabling value
-  # in common is "1".
+  # Environment variable to support color support (jaraco/skeleton#66)
   FORCE_COLOR: 1
-  # MyPy's color enforcement (must be a non-zero number)
-  MYPY_FORCE_COLOR: -42
-  # Recognized by the `py` package, dependency of `pytest` (must be "1")
-  PY_COLORS: 1
-  # Make tox-wrapped tools see color requests
-  TOX_TESTENV_PASSENV: >-
-    FORCE_COLOR
-    MYPY_FORCE_COLOR
-    NO_COLOR
-    PY_COLORS
-    PYTEST_THEME
-    PYTEST_THEME_MODE
 
   # Suppress noisy pip warnings
   PIP_DISABLE_PIP_VERSION_CHECK: 'true'
   PIP_NO_PYTHON_VERSION_WARNING: 'true'
   PIP_NO_WARN_SCRIPT_LOCATION: 'true'
 
-  # Disable the spinner, noise in GHA; TODO(webknjaz): Fix this upstream
-  # Must be "1".
-  TOX_PARALLEL_NO_SPINNER: 1
+  # Ensure tests can sense settings about the environment
+  TOX_OVERRIDE: >-
+    testenv.pass_env+=GITHUB_*,FORCE_COLOR
 
 
 jobs:
@@ -54,48 +36,47 @@
           platform: ubuntu-latest
         - python: "3.10"
           platform: ubuntu-latest
-        # disabled for #463
-        # - python: pypy3.9
-        #   platform: ubuntu-latest
+        - python: pypy3.10
+          platform: ubuntu-latest
     runs-on: ${{ matrix.platform }}
-    continue-on-error: ${{ matrix.python == '3.12' }}
+    continue-on-error: ${{ matrix.python == '3.13' }}
     steps:
-      - uses: actions/checkout@v3
-        with:
-          # fetch all branches and tags (to get tags for versioning)
-          # ref actions/checkout#448
-          fetch-depth: 0
+      - uses: actions/checkout@v4
       - name: Setup Python
         uses: actions/setup-python@v4
         with:
           python-version: ${{ matrix.python }}
           allow-prereleases: true
       - name: Install tox
-        run: |
-          python -m pip install tox
-      - name: Run tests
+        run: python -m pip install tox
+      - name: Run
         run: tox
 
-  docs:
+  collateral:
+    strategy:
+      fail-fast: false
+      matrix:
+        job: [diffcov, docs]
     runs-on: ubuntu-latest
-    env:
-      TOXENV: docs
     steps:
-      - uses: actions/checkout@v3
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
       - name: Setup Python
         uses: actions/setup-python@v4
+        with:
+          python-version: 3.x
       - name: Install tox
-        run: |
-          python -m pip install tox
-      - name: Run tests
-        run: tox
+        run: python -m pip install tox
+      - name: Eval ${{ matrix.job }}
+        run: tox -e ${{ matrix.job }}
 
   check:  # This job does nothing and is only used for the branch protection
     if: always()
 
     needs:
     - test
-    - docs
+    - collateral
 
     runs-on: ubuntu-latest
 
@@ -104,24 +85,6 @@
       uses: re-actors/alls-green@release/v1
       with:
         jobs: ${{ toJSON(needs) }}
-  
-  diffcov:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          fetch-depth: 0
-      - name: Setup Python
-        uses: actions/setup-python@v2
-        with:
-          python-version: 3.9
-      - name: Install tox
-        run: |
-          python -m pip install tox
-      - name: Evaluate coverage
-        run: tox
-        env:
-          TOXENV: diffcov
 
   release:
     permissions:
@@ -132,15 +95,14 @@
     runs-on: ubuntu-latest
 
     steps:
-      - uses: actions/checkout@v3
+      - uses: actions/checkout@v4
       - name: Setup Python
         uses: actions/setup-python@v4
         with:
           python-version: 3.x
       - name: Install tox
-        run: |
-          python -m pip install tox
-      - name: Release
+        run: python -m pip install tox
+      - name: Run
         run: tox -e release
         env:
           TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/importlib_metadata-6.8.0/NEWS.rst 
new/importlib_metadata-7.0.0/NEWS.rst
--- old/importlib_metadata-6.8.0/NEWS.rst       2023-07-07 18:15:29.000000000 
+0200
+++ new/importlib_metadata-7.0.0/NEWS.rst       2023-12-03 18:41:47.000000000 
+0100
@@ -1,3 +1,39 @@
+v7.0.0
+======
+
+Deprecations and Removals
+-------------------------
+
+- Removed EntryPoint access by numeric index (tuple behavior).
+
+
+v6.11.0
+=======
+
+Features
+--------
+
+- Added ``Distribution.origin`` supplying the ``direct_url.json`` in a 
``SimpleNamespace``. (#404)
+
+
+v6.10.0
+=======
+
+Features
+--------
+
+- Added diagnose script. (#461)
+
+
+v6.9.0
+======
+
+Features
+--------
+
+- Added EntryPoints.__repr__ (#473)
+
+
 v6.8.0
 ======
 
@@ -131,6 +167,10 @@
   duplicate entry points by packages varying only by non-normalized
   name are hidden.
 
+Note (#459): This change had a backward-incompatible effect for
+any installers that created metadata in the filesystem with dashes
+in the package names (not replaced by underscores).
+
 v4.11.3
 =======
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/importlib_metadata-6.8.0/PKG-INFO 
new/importlib_metadata-7.0.0/PKG-INFO
--- old/importlib_metadata-6.8.0/PKG-INFO       2023-07-07 18:15:52.238363000 
+0200
+++ new/importlib_metadata-7.0.0/PKG-INFO       2023-12-03 18:42:06.648407700 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: importlib_metadata
-Version: 6.8.0
+Version: 7.0.0
 Summary: Read metadata from Python packages
 Home-page: https://github.com/python/importlib_metadata
 Author: Jason R. Coombs
@@ -11,10 +11,32 @@
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3 :: Only
 Requires-Python: >=3.8
+License-File: LICENSE
+Requires-Dist: zipp>=0.5
+Requires-Dist: typing-extensions>=3.6.4; python_version < "3.8"
 Provides-Extra: testing
+Requires-Dist: pytest>=6; extra == "testing"
+Requires-Dist: pytest-checkdocs>=2.4; extra == "testing"
+Requires-Dist: pytest-black>=0.3.7; platform_python_implementation != "PyPy" 
and extra == "testing"
+Requires-Dist: pytest-cov; extra == "testing"
+Requires-Dist: pytest-mypy>=0.9.1; platform_python_implementation != "PyPy" 
and extra == "testing"
+Requires-Dist: pytest-enabler>=2.2; extra == "testing"
+Requires-Dist: pytest-ruff; extra == "testing"
+Requires-Dist: importlib_resources>=1.3; python_version < "3.9" and extra == 
"testing"
+Requires-Dist: packaging; extra == "testing"
+Requires-Dist: pyfakefs; extra == "testing"
+Requires-Dist: flufl.flake8; extra == "testing"
+Requires-Dist: pytest-perf>=0.9.2; extra == "testing"
 Provides-Extra: docs
+Requires-Dist: sphinx>=3.5; extra == "docs"
+Requires-Dist: sphinx<7.2.5; extra == "docs"
+Requires-Dist: jaraco.packaging>=9.3; extra == "docs"
+Requires-Dist: rst.linker>=1.9; extra == "docs"
+Requires-Dist: furo; extra == "docs"
+Requires-Dist: sphinx-lint; extra == "docs"
+Requires-Dist: jaraco.tidelift>=1.4; extra == "docs"
 Provides-Extra: perf
-License-File: LICENSE
+Requires-Dist: ipython; extra == "perf"
 
 .. image:: https://img.shields.io/pypi/v/importlib_metadata.svg
    :target: https://pypi.org/project/importlib_metadata
@@ -108,10 +130,3 @@
 This project and the maintainers of thousands of other packages are working 
with Tidelift to deliver one enterprise subscription that covers all of the 
open source you use.
 
 `Learn more 
<https://tidelift.com/subscription/pkg/pypi-importlib-metadata?utm_source=pypi-importlib-metadata&utm_medium=referral&utm_campaign=github>`_.
-
-Security Contact
-================
-
-To report a security vulnerability, please use the
-`Tidelift security contact <https://tidelift.com/security>`_.
-Tidelift will coordinate the fix and disclosure.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/importlib_metadata-6.8.0/README.rst 
new/importlib_metadata-7.0.0/README.rst
--- old/importlib_metadata-6.8.0/README.rst     2023-07-07 18:15:29.000000000 
+0200
+++ new/importlib_metadata-7.0.0/README.rst     2023-12-03 18:41:47.000000000 
+0100
@@ -90,10 +90,3 @@
 This project and the maintainers of thousands of other packages are working 
with Tidelift to deliver one enterprise subscription that covers all of the 
open source you use.
 
 `Learn more 
<https://tidelift.com/subscription/pkg/pypi-importlib-metadata?utm_source=pypi-importlib-metadata&utm_medium=referral&utm_campaign=github>`_.
-
-Security Contact
-================
-
-To report a security vulnerability, please use the
-`Tidelift security contact <https://tidelift.com/security>`_.
-Tidelift will coordinate the fix and disclosure.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/importlib_metadata-6.8.0/SECURITY.md 
new/importlib_metadata-7.0.0/SECURITY.md
--- old/importlib_metadata-6.8.0/SECURITY.md    1970-01-01 01:00:00.000000000 
+0100
+++ new/importlib_metadata-7.0.0/SECURITY.md    2023-12-03 18:41:47.000000000 
+0100
@@ -0,0 +1,3 @@
+# Security Contact
+
+To report a security vulnerability, please use the [Tidelift security 
contact](https://tidelift.com/security). Tidelift will coordinate the fix and 
disclosure.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/importlib_metadata-6.8.0/docs/index.rst 
new/importlib_metadata-7.0.0/docs/index.rst
--- old/importlib_metadata-6.8.0/docs/index.rst 2023-07-07 18:15:29.000000000 
+0200
+++ new/importlib_metadata-7.0.0/docs/index.rst 2023-12-03 18:41:47.000000000 
+0100
@@ -1,6 +1,10 @@
 Welcome to |project| documentation!
 ===================================
 
+.. sidebar-links::
+   :home:
+   :pypi:
+
 ``importlib_metadata`` supplies a backport of :mod:`importlib.metadata`,
 enabling early access to features of future Python versions and making
 functionality available for older Python versions. Users are encouraged to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/importlib_metadata-6.8.0/importlib_metadata/__init__.py 
new/importlib_metadata-7.0.0/importlib_metadata/__init__.py
--- old/importlib_metadata-6.8.0/importlib_metadata/__init__.py 2023-07-07 
18:15:29.000000000 +0200
+++ new/importlib_metadata-7.0.0/importlib_metadata/__init__.py 2023-12-03 
18:41:47.000000000 +0100
@@ -3,8 +3,10 @@
 import abc
 import csv
 import sys
+import json
 import zipp
 import email
+import types
 import inspect
 import pathlib
 import operator
@@ -21,7 +23,6 @@
     NullFinder,
     StrPath,
     install,
-    pypy_partial,
 )
 from ._functools import method_cache, pass_none
 from ._itertools import always_iterable, unique_everseen
@@ -126,34 +127,7 @@
         return line and not line.startswith('#')
 
 
-class DeprecatedTuple:
-    """
-    Provide subscript item access for backward compatibility.
-
-    >>> recwarn = getfixture('recwarn')
-    >>> ep = EntryPoint(name='name', value='value', group='group')
-    >>> ep[:]
-    ('name', 'value', 'group')
-    >>> ep[0]
-    'name'
-    >>> len(recwarn)
-    1
-    """
-
-    # Do not remove prior to 2023-05-01 or Python 3.13
-    _warn = functools.partial(
-        warnings.warn,
-        "EntryPoint tuple interface is deprecated. Access members by name.",
-        DeprecationWarning,
-        stacklevel=pypy_partial(2),
-    )
-
-    def __getitem__(self, item):
-        self._warn()
-        return self._key()[item]
-
-
-class EntryPoint(DeprecatedTuple):
+class EntryPoint:
     """An entry point as defined by Python packaging conventions.
 
     See `the packaging docs on entry points
@@ -293,6 +267,13 @@
         except StopIteration:
             raise KeyError(name)
 
+    def __repr__(self):
+        """
+        Repr with classname and tuple constructor to
+        signal that we deviate from regular tuple behavior.
+        """
+        return '%s(%r)' % (self.__class__.__name__, tuple(self))
+
     def select(self, **params):
         """
         Select entry points from self that match the
@@ -618,6 +599,16 @@
             space = url_req_space(section.value)
             yield section.value + space + quoted_marker(section.name)
 
+    @property
+    def origin(self):
+        return self._load_json('direct_url.json')
+
+    def _load_json(self, filename):
+        return pass_none(json.loads)(
+            self.read_text(filename),
+            object_hook=lambda data: types.SimpleNamespace(**data),
+        )
+
 
 class DistributionFinder(MetaPathFinder):
     """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/importlib_metadata-6.8.0/importlib_metadata/_adapters.py 
new/importlib_metadata-7.0.0/importlib_metadata/_adapters.py
--- old/importlib_metadata-6.8.0/importlib_metadata/_adapters.py        
2023-07-07 18:15:29.000000000 +0200
+++ new/importlib_metadata-7.0.0/importlib_metadata/_adapters.py        
2023-12-03 18:41:47.000000000 +0100
@@ -54,7 +54,7 @@
     def __getitem__(self, item):
         """
         Warn users that a ``KeyError`` can be expected when a
-        mising key is supplied. Ref python/importlib_metadata#371.
+        missing key is supplied. Ref python/importlib_metadata#371.
         """
         res = super().__getitem__(item)
         if res is None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/importlib_metadata-6.8.0/importlib_metadata/diagnose.py 
new/importlib_metadata-7.0.0/importlib_metadata/diagnose.py
--- old/importlib_metadata-6.8.0/importlib_metadata/diagnose.py 1970-01-01 
01:00:00.000000000 +0100
+++ new/importlib_metadata-7.0.0/importlib_metadata/diagnose.py 2023-12-03 
18:41:47.000000000 +0100
@@ -0,0 +1,21 @@
+import sys
+
+from . import Distribution
+
+
+def inspect(path):
+    print("Inspecting", path)
+    dists = list(Distribution.discover(path=[path]))
+    if not dists:
+        return
+    print("Found", len(dists), "packages:", end=' ')
+    print(', '.join(dist.name for dist in dists))
+
+
+def run():
+    for path in sys.path:
+        inspect(path)
+
+
+if __name__ == '__main__':
+    run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/importlib_metadata-6.8.0/importlib_metadata.egg-info/PKG-INFO 
new/importlib_metadata-7.0.0/importlib_metadata.egg-info/PKG-INFO
--- old/importlib_metadata-6.8.0/importlib_metadata.egg-info/PKG-INFO   
2023-07-07 18:15:52.000000000 +0200
+++ new/importlib_metadata-7.0.0/importlib_metadata.egg-info/PKG-INFO   
2023-12-03 18:42:06.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: importlib-metadata
-Version: 6.8.0
+Version: 7.0.0
 Summary: Read metadata from Python packages
 Home-page: https://github.com/python/importlib_metadata
 Author: Jason R. Coombs
@@ -11,10 +11,32 @@
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3 :: Only
 Requires-Python: >=3.8
+License-File: LICENSE
+Requires-Dist: zipp>=0.5
+Requires-Dist: typing-extensions>=3.6.4; python_version < "3.8"
 Provides-Extra: testing
+Requires-Dist: pytest>=6; extra == "testing"
+Requires-Dist: pytest-checkdocs>=2.4; extra == "testing"
+Requires-Dist: pytest-black>=0.3.7; platform_python_implementation != "PyPy" 
and extra == "testing"
+Requires-Dist: pytest-cov; extra == "testing"
+Requires-Dist: pytest-mypy>=0.9.1; platform_python_implementation != "PyPy" 
and extra == "testing"
+Requires-Dist: pytest-enabler>=2.2; extra == "testing"
+Requires-Dist: pytest-ruff; extra == "testing"
+Requires-Dist: importlib_resources>=1.3; python_version < "3.9" and extra == 
"testing"
+Requires-Dist: packaging; extra == "testing"
+Requires-Dist: pyfakefs; extra == "testing"
+Requires-Dist: flufl.flake8; extra == "testing"
+Requires-Dist: pytest-perf>=0.9.2; extra == "testing"
 Provides-Extra: docs
+Requires-Dist: sphinx>=3.5; extra == "docs"
+Requires-Dist: sphinx<7.2.5; extra == "docs"
+Requires-Dist: jaraco.packaging>=9.3; extra == "docs"
+Requires-Dist: rst.linker>=1.9; extra == "docs"
+Requires-Dist: furo; extra == "docs"
+Requires-Dist: sphinx-lint; extra == "docs"
+Requires-Dist: jaraco.tidelift>=1.4; extra == "docs"
 Provides-Extra: perf
-License-File: LICENSE
+Requires-Dist: ipython; extra == "perf"
 
 .. image:: https://img.shields.io/pypi/v/importlib_metadata.svg
    :target: https://pypi.org/project/importlib_metadata
@@ -108,10 +130,3 @@
 This project and the maintainers of thousands of other packages are working 
with Tidelift to deliver one enterprise subscription that covers all of the 
open source you use.
 
 `Learn more 
<https://tidelift.com/subscription/pkg/pypi-importlib-metadata?utm_source=pypi-importlib-metadata&utm_medium=referral&utm_campaign=github>`_.
-
-Security Contact
-================
-
-To report a security vulnerability, please use the
-`Tidelift security contact <https://tidelift.com/security>`_.
-Tidelift will coordinate the fix and disclosure.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/importlib_metadata-6.8.0/importlib_metadata.egg-info/SOURCES.txt 
new/importlib_metadata-7.0.0/importlib_metadata.egg-info/SOURCES.txt
--- old/importlib_metadata-6.8.0/importlib_metadata.egg-info/SOURCES.txt        
2023-07-07 18:15:52.000000000 +0200
+++ new/importlib_metadata-7.0.0/importlib_metadata.egg-info/SOURCES.txt        
2023-12-03 18:42:06.000000000 +0100
@@ -6,6 +6,7 @@
 LICENSE
 NEWS.rst
 README.rst
+SECURITY.md
 conftest.py
 exercises.py
 mypy.ini
@@ -33,6 +34,7 @@
 importlib_metadata/_meta.py
 importlib_metadata/_py39compat.py
 importlib_metadata/_text.py
+importlib_metadata/diagnose.py
 importlib_metadata/py.typed
 importlib_metadata.egg-info/PKG-INFO
 importlib_metadata.egg-info/SOURCES.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/importlib_metadata-6.8.0/importlib_metadata.egg-info/requires.txt 
new/importlib_metadata-7.0.0/importlib_metadata.egg-info/requires.txt
--- old/importlib_metadata-6.8.0/importlib_metadata.egg-info/requires.txt       
2023-07-07 18:15:52.000000000 +0200
+++ new/importlib_metadata-7.0.0/importlib_metadata.egg-info/requires.txt       
2023-12-03 18:42:06.000000000 +0100
@@ -5,7 +5,8 @@
 
 [docs]
 sphinx>=3.5
-jaraco.packaging>=9
+sphinx<7.2.5
+jaraco.packaging>=9.3
 rst.linker>=1.9
 furo
 sphinx-lint
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/importlib_metadata-6.8.0/pytest.ini 
new/importlib_metadata-7.0.0/pytest.ini
--- old/importlib_metadata-6.8.0/pytest.ini     2023-07-07 18:15:29.000000000 
+0200
+++ new/importlib_metadata-7.0.0/pytest.ini     2023-12-03 18:41:47.000000000 
+0100
@@ -24,4 +24,7 @@
        # pypa/build#615
        ignore:'encoding' argument not specified::build.env
 
+       # dateutil/dateutil#1284
+       
ignore:datetime.datetime.utcfromtimestamp:DeprecationWarning:dateutil.tz.tz
+
        ## end upstream
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/importlib_metadata-6.8.0/setup.cfg 
new/importlib_metadata-7.0.0/setup.cfg
--- old/importlib_metadata-6.8.0/setup.cfg      2023-07-07 18:15:52.238363000 
+0200
+++ new/importlib_metadata-7.0.0/setup.cfg      2023-12-03 18:42:06.652407600 
+0100
@@ -47,7 +47,8 @@
        pytest-perf >= 0.9.2
 docs = 
        sphinx >= 3.5
-       jaraco.packaging >= 9
+       sphinx < 7.2.5
+       jaraco.packaging >= 9.3
        rst.linker >= 1.9
        furo
        sphinx-lint
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/importlib_metadata-6.8.0/tests/fixtures.py 
new/importlib_metadata-7.0.0/tests/fixtures.py
--- old/importlib_metadata-6.8.0/tests/fixtures.py      2023-07-07 
18:15:29.000000000 +0200
+++ new/importlib_metadata-7.0.0/tests/fixtures.py      2023-12-03 
18:41:47.000000000 +0100
@@ -1,6 +1,7 @@
 import os
 import sys
 import copy
+import json
 import shutil
 import pathlib
 import tempfile
@@ -85,7 +86,15 @@
         self.fixtures.enter_context(self.add_sys_path(self.site_dir))
 
 
-class DistInfoPkg(OnSysPath, SiteDir):
+class SiteBuilder(SiteDir):
+    def setUp(self):
+        super().setUp()
+        for cls in self.__class__.mro():
+            with contextlib.suppress(AttributeError):
+                build_files(cls.files, prefix=self.site_dir)
+
+
+class DistInfoPkg(OnSysPath, SiteBuilder):
     files: FilesSpec = {
         "distinfo_pkg-1.0.0.dist-info": {
             "METADATA": """
@@ -112,10 +121,6 @@
             """,
     }
 
-    def setUp(self):
-        super().setUp()
-        build_files(DistInfoPkg.files, self.site_dir)
-
     def make_uppercase(self):
         """
         Rewrite metadata with everything uppercase.
@@ -127,7 +132,28 @@
         build_files(files, self.site_dir)
 
 
-class DistInfoPkgWithDot(OnSysPath, SiteDir):
+class DistInfoPkgEditable(DistInfoPkg):
+    """
+    Package with a PEP 660 direct_url.json.
+    """
+
+    some_hash = 
'524127ce937f7cb65665130c695abd18ca386f60bb29687efb976faa1596fdcc'
+    files: FilesSpec = {
+        'distinfo_pkg-1.0.0.dist-info': {
+            'direct_url.json': json.dumps(
+                {
+                    "archive_info": {
+                        "hash": f"sha256={some_hash}",
+                        "hashes": {"sha256": f"{some_hash}"},
+                    },
+                    "url": 
"file:///path/to/distinfo_pkg-1.0.0.editable-py3-none-any.whl",
+                }
+            )
+        },
+    }
+
+
+class DistInfoPkgWithDot(OnSysPath, SiteBuilder):
     files: FilesSpec = {
         "pkg_dot-1.0.0.dist-info": {
             "METADATA": """
@@ -137,12 +163,8 @@
         },
     }
 
-    def setUp(self):
-        super().setUp()
-        build_files(DistInfoPkgWithDot.files, self.site_dir)
-
 
-class DistInfoPkgWithDotLegacy(OnSysPath, SiteDir):
+class DistInfoPkgWithDotLegacy(OnSysPath, SiteBuilder):
     files: FilesSpec = {
         "pkg.dot-1.0.0.dist-info": {
             "METADATA": """
@@ -158,18 +180,12 @@
         },
     }
 
-    def setUp(self):
-        super().setUp()
-        build_files(DistInfoPkgWithDotLegacy.files, self.site_dir)
-
 
-class DistInfoPkgOffPath(SiteDir):
-    def setUp(self):
-        super().setUp()
-        build_files(DistInfoPkg.files, self.site_dir)
+class DistInfoPkgOffPath(SiteBuilder):
+    files = DistInfoPkg.files
 
 
-class EggInfoPkg(OnSysPath, SiteDir):
+class EggInfoPkg(OnSysPath, SiteBuilder):
     files: FilesSpec = {
         "egginfo_pkg.egg-info": {
             "PKG-INFO": """
@@ -204,12 +220,8 @@
             """,
     }
 
-    def setUp(self):
-        super().setUp()
-        build_files(EggInfoPkg.files, prefix=self.site_dir)
 
-
-class EggInfoPkgPipInstalledNoToplevel(OnSysPath, SiteDir):
+class EggInfoPkgPipInstalledNoToplevel(OnSysPath, SiteBuilder):
     files: FilesSpec = {
         "egg_with_module_pkg.egg-info": {
             "PKG-INFO": "Name: egg_with_module-pkg",
@@ -239,12 +251,8 @@
             """,
     }
 
-    def setUp(self):
-        super().setUp()
-        build_files(EggInfoPkgPipInstalledNoToplevel.files, 
prefix=self.site_dir)
-
 
-class EggInfoPkgPipInstalledNoModules(OnSysPath, SiteDir):
+class EggInfoPkgPipInstalledNoModules(OnSysPath, SiteBuilder):
     files: FilesSpec = {
         "egg_with_no_modules_pkg.egg-info": {
             "PKG-INFO": "Name: egg_with_no_modules-pkg",
@@ -269,12 +277,8 @@
         },
     }
 
-    def setUp(self):
-        super().setUp()
-        build_files(EggInfoPkgPipInstalledNoModules.files, 
prefix=self.site_dir)
-
 
-class EggInfoPkgSourcesFallback(OnSysPath, SiteDir):
+class EggInfoPkgSourcesFallback(OnSysPath, SiteBuilder):
     files: FilesSpec = {
         "sources_fallback_pkg.egg-info": {
             "PKG-INFO": "Name: sources_fallback-pkg",
@@ -295,12 +299,8 @@
             """,
     }
 
-    def setUp(self):
-        super().setUp()
-        build_files(EggInfoPkgSourcesFallback.files, prefix=self.site_dir)
 
-
-class EggInfoFile(OnSysPath, SiteDir):
+class EggInfoFile(OnSysPath, SiteBuilder):
     files: FilesSpec = {
         "egginfo_file.egg-info": """
             Metadata-Version: 1.0
@@ -316,10 +316,6 @@
             """,
     }
 
-    def setUp(self):
-        super().setUp()
-        build_files(EggInfoFile.files, prefix=self.site_dir)
-
 
 # dedent all text strings before writing
 orig = _path.create.registry[str]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/importlib_metadata-6.8.0/tests/test_main.py 
new/importlib_metadata-7.0.0/tests/test_main.py
--- old/importlib_metadata-6.8.0/tests/test_main.py     2023-07-07 
18:15:29.000000000 +0200
+++ new/importlib_metadata-7.0.0/tests/test_main.py     2023-12-03 
18:41:47.000000000 +0100
@@ -400,7 +400,7 @@
 
         assert not any(name.endswith('.dist-info') for name in distributions)
 
-    def test_packages_distributions_symlinked_top_level(self):
+    def test_packages_distributions_symlinked_top_level(self) -> None:
         """
         Distribution is resolvable from a simple top-level symlink in RECORD.
         See #452.
@@ -457,3 +457,10 @@
         # sources_fallback-pkg has one import ('sources_fallback') inferred 
from
         # SOURCES.txt (top_level.txt and installed-files.txt is missing)
         assert import_names_from_package('sources_fallback-pkg') == 
{'sources_fallback'}
+
+
+class EditableDistributionTest(fixtures.DistInfoPkgEditable, 
unittest.TestCase):
+    def test_origin(self):
+        dist = Distribution.from_name('distinfo-pkg')
+        assert dist.origin.url.endswith('.whl')
+        assert dist.origin.archive_info.hashes.sha256
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/importlib_metadata-6.8.0/tox.ini 
new/importlib_metadata-7.0.0/tox.ini
--- old/importlib_metadata-6.8.0/tox.ini        2023-07-07 18:15:29.000000000 
+0200
+++ new/importlib_metadata-7.0.0/tox.ini        2023-12-03 18:41:47.000000000 
+0100
@@ -1,8 +1,5 @@
-[tox]
-toxworkdir={env:TOX_WORK_DIR:.tox}
-
-
 [testenv]
+description = perform primary checks (tests, style, types, coverage)
 deps =
 setenv =
        PYTHONWARNDEFAULTENCODING = 1
@@ -14,41 +11,46 @@
 extras =
        testing
 
+[testenv:diffcov]
+description = run tests and check that diff from main is covered
+deps =
+       diff-cover
+commands =
+       pytest {posargs} --cov-report xml
+       diff-cover coverage.xml --compare-branch=origin/main --html-report 
diffcov.html
+       diff-cover coverage.xml --compare-branch=origin/main --fail-under=100
 
 [testenv:docs]
+description = build the documentation
 extras =
        docs
        testing
 changedir = docs
 commands =
        python -m sphinx -W --keep-going . {toxinidir}/build/html
-       python -m sphinxlint
-
-[testenv:diffcov]
-deps =
-       diff-cover
-commands =
-       pytest {posargs} --cov-report xml
-       diff-cover coverage.xml --compare-branch=origin/main --html-report 
diffcov.html
-       diff-cover coverage.xml --compare-branch=origin/main --fail-under=100
+       python -m sphinxlint \
+               # workaround for sphinx-contrib/sphinx-lint#83
+               --jobs 1
 
 [testenv:finalize]
+description = assemble changelog and tag a release
 skip_install = True
 deps =
        towncrier
        jaraco.develop >= 7.23
-passenv = *
+pass_env = *
 commands =
        python -m jaraco.develop.finalize
 
 
 [testenv:release]
+description = publish the package to PyPI and GitHub
 skip_install = True
 deps =
        build
        twine>=3
        jaraco.develop>=7.1
-passenv =
+pass_env =
        TWINE_PASSWORD
        GITHUB_TOKEN
 setenv =

Reply via email to