Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-setuptools for 
openSUSE:Factory checked in at 2023-09-06 18:55:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-setuptools (Old)
 and      /work/SRC/openSUSE:Factory/.python-setuptools.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-setuptools"

Wed Sep  6 18:55:43 2023 rev:78 rq:1108946 version:68.1.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-setuptools/python-setuptools.changes      
2023-06-08 21:41:54.241758337 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-setuptools.new.1766/python-setuptools.changes
    2023-09-06 18:56:24.411737780 +0200
@@ -1,0 +2,55 @@
+Tue Aug 22 13:02:46 UTC 2023 - Markéta Machová <mmach...@suse.com>
+
+- update to 68.1.2
+  * Fix editable install finder handling of nested packages, by only 
+    handling 1 level of nesting and relying on importlib.machinery 
+    to find the remaining modules based on the parent package path. 
+- add sphinx72.patch: address circular imports in sphinx 7.2+
+
+-------------------------------------------------------------------
+Wed Aug 16 07:53:31 UTC 2023 - Markéta Machová <mmach...@suse.com>
+
+- update to 68.1.0
+  * Removed code referencing bdist_wininst in install_scripts. 
+  * Promote pyproject.toml’s [tool.setuptools] out of beta.
+  * Automatically add files listed in Extension.depends to sdists, 
+    as long as they are contained in the project directory 
+  * Require Python 3.8 or later.
+  * Use default encoding to create .pth files with editable_wheel.
+  * Detects (and complain about) scripts and gui-scripts set via 
+    setup.py when pyproject.toml does not include them in dynamic.
+
+-------------------------------------------------------------------
+Sun Aug 13 18:25:04 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 68.0.0:
+  * Removed verification for existing ``depends.txt`` file
+  * Remove autofixing of broken ``.egg-info`` directories
+    containing the ``-`` character in their base name (without suffix).
+  * Remove deprecated APIs in ``easy_install``:
+    ``get_script_args``,
+    ``get_script_header`` and ``get_writer``.
+  * Removed ``egg_info.get_pkg_info_revision`` (deprecated
+  * Removed ``setuptools.dist._get_unpatched`` (deprecated
+  * Removed support for SVN in
+    ``setuptools.package_index`` (deprecated since 2018).
+  * Removed support for invalid ``pyproject.toml`` files.
+  * Added symlink support to launcher for installed
+    executables -- by :user:`eugene-sevostianov-sc`
+  * Updated vendored ``packaging`` version from 23.0 to
+    23.1 -- by :user:`MetRonnie`
+  * Implemented workaround for old versions of
+    ``vswhere``, which miss the
+  * ``-requiresAny`` parameter, such as the ones distributed
+    together with Visual Studio 2017 < 15.6.
+  * Changed ``DistutilsMetaFinder`` to skip
+    ``spec_for_pip`` on Python >= 3.12.
+  * Removed ``_distutils_hack.remove_shim`` on Python >=
+    3.12 (since ``distutils`` was removed from the standard library,
+    ``DistutilsMetaFinder`` cannot be disabled on Python >=
+    3.12).
+  * #3920: Add a link to deprecation warning in ``pkg_resources``
+    and improve ``stacklevel`` for better visibility.
+- drop use-tarfile-extraction_filter.patch (upstream)
+
+-------------------------------------------------------------------

Old:
----
  setuptools-67.8.0.tar.gz
  use-tarfile-extraction_filter.patch

New:
----
  setuptools-68.1.2.tar.gz
  sphinx72.patch

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

Other differences:
------------------
++++++ python-setuptools.spec ++++++
--- /var/tmp/diff_new_pack.JRpkQb/_old  2023-09-06 18:56:25.799787262 +0200
+++ /var/tmp/diff_new_pack.JRpkQb/_new  2023-09-06 18:56:25.803787404 +0200
@@ -38,7 +38,7 @@
 %define mypython python
 %{?sle15_python_module_pythons}
 Name:           python-setuptools%{psuffix}
-Version:        67.8.0
+Version:        68.1.2
 Release:        0
 Summary:        Download, build, install, upgrade, and uninstall Python 
packages
 License:        Apache-2.0 AND MIT AND BSD-2-Clause AND Python-2.0
@@ -47,8 +47,8 @@
 Patch0:         sort-for-reproducibility.patch
 # PATCH-FIX-OPENSUSE fix-get-python-lib-python38.patch bsc#1204395
 Patch2:         fix-get-python-lib-python38.patch
-# PATCH-FIX-UPSTREAM gh#pypa/setuptools#3917
-Patch3:         use-tarfile-extraction_filter.patch
+# PATCH-FIX-UPSTREAM https://github.com/pypa/setuptools/pull/4023 Address 
circular imports complaints by Sphinx 7.2+
+Patch3:         sphinx72.patch
 BuildRequires:  %{python_module base >= 3.7}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
@@ -63,6 +63,7 @@
 BuildRequires:  %{python_module devel}
 BuildRequires:  %{python_module filelock >= 3.4.0}
 BuildRequires:  %{python_module ini2toml-lite >= 0.9}
+BuildRequires:  %{python_module jaraco.develop >= 7.21}
 BuildRequires:  %{python_module jaraco.envs >= 2.2}
 BuildRequires:  %{python_module jaraco.path >= 3.2.0}
 BuildRequires:  %{python_module pip >= 19.1}
@@ -126,7 +127,7 @@
 %files %{python_files}
 %if !%{with wheel}
 %license LICENSE
-%doc CHANGES.rst README.rst
+%doc NEWS.rst README.rst
 %{python_sitelib}/setuptools
 %{python_sitelib}/setuptools-%{version}*-info
 %dir %{python_sitelib}/pkg_resources

++++++ fix-get-python-lib-python38.patch ++++++
--- /var/tmp/diff_new_pack.JRpkQb/_old  2023-09-06 18:56:25.835788545 +0200
+++ /var/tmp/diff_new_pack.JRpkQb/_new  2023-09-06 18:56:25.839788687 +0200
@@ -1,8 +1,8 @@
-Index: setuptools-65.5.1/setuptools/_distutils/sysconfig.py
+Index: setuptools-68.0.0/setuptools/_distutils/sysconfig.py
 ===================================================================
---- setuptools-65.5.1.orig/setuptools/_distutils/sysconfig.py
-+++ setuptools-65.5.1/setuptools/_distutils/sysconfig.py
-@@ -238,9 +238,13 @@ def get_python_lib(plat_specific=0, stan
+--- setuptools-68.0.0.orig/setuptools/_distutils/sysconfig.py
++++ setuptools-68.0.0/setuptools/_distutils/sysconfig.py
+@@ -246,9 +246,13 @@ def get_python_lib(plat_specific=0, stan
  
      if os.name == "posix":
          if plat_specific or standard_lib:

++++++ setuptools-67.8.0.tar.gz -> setuptools-68.1.2.tar.gz ++++++
++++ 30546 lines of diff (skipped)

++++++ sort-for-reproducibility.patch ++++++
--- /var/tmp/diff_new_pack.JRpkQb/_old  2023-09-06 18:56:26.147799668 +0200
+++ /var/tmp/diff_new_pack.JRpkQb/_new  2023-09-06 18:56:26.151799810 +0200
@@ -6,9 +6,11 @@
  setuptools/tests/test_wheel.py     |    8 ++++----
  5 files changed, 8 insertions(+), 8 deletions(-)
 
---- a/setuptools/command/easy_install.py
-+++ b/setuptools/command/easy_install.py
-@@ -419,7 +419,7 @@ class easy_install(Command):
+Index: setuptools-68.1.0/setuptools/command/easy_install.py
+===================================================================
+--- setuptools-68.1.0.orig/setuptools/command/easy_install.py
++++ setuptools-68.1.0/setuptools/command/easy_install.py
+@@ -441,7 +441,7 @@ class easy_install(Command):
              for spec in self.args:
                  self.easy_install(spec, not self.no_deps)
              if self.record:
@@ -17,20 +19,24 @@
                  if self.root:  # strip any package prefix
                      root_len = len(self.root)
                      for counter in range(len(outputs)):
---- a/setuptools/command/egg_info.py
-+++ b/setuptools/command/egg_info.py
-@@ -694,7 +694,7 @@ def _write_requirements(stream, reqs):
- 
+Index: setuptools-68.1.0/setuptools/command/egg_info.py
+===================================================================
+--- setuptools-68.1.0.orig/setuptools/command/egg_info.py
++++ setuptools-68.1.0/setuptools/command/egg_info.py
+@@ -698,7 +698,7 @@ def _write_requirements(stream, reqs):
      def append_cr(line):
          return line + '\n'
+ 
 -    lines = map(append_cr, lines)
 +    lines = map(append_cr, sorted(lines))
      stream.writelines(lines)
  
  
---- a/setuptools/dist.py
-+++ b/setuptools/dist.py
-@@ -221,7 +221,7 @@ def write_pkg_file(self, file):  # noqa:
+Index: setuptools-68.1.0/setuptools/dist.py
+===================================================================
+--- setuptools-68.1.0.orig/setuptools/dist.py
++++ setuptools-68.1.0/setuptools/dist.py
+@@ -215,7 +215,7 @@ def write_pkg_file(self, file):  # noqa:
      if self.long_description_content_type:
          write_field('Description-Content-Type', 
self.long_description_content_type)
      if self.provides_extras:
@@ -39,9 +45,11 @@
              write_field('Provides-Extra', extra)
  
      self._write_list(file, 'License-File', self.license_files or [])
---- a/setuptools/tests/test_egg_info.py
-+++ b/setuptools/tests/test_egg_info.py
-@@ -304,8 +304,8 @@ class TestEggInfo:
+Index: setuptools-68.1.0/setuptools/tests/test_egg_info.py
+===================================================================
+--- setuptools-68.1.0.orig/setuptools/tests/test_egg_info.py
++++ setuptools-68.1.0/setuptools/tests/test_egg_info.py
+@@ -353,8 +353,8 @@ class TestEggInfo:
              wheel>=0.5
              pytest
  
@@ -49,11 +57,13 @@
          pytest
 +        wheel>=0.5
          ''',
- 
          '''
---- a/setuptools/tests/test_wheel.py
-+++ b/setuptools/tests/test_wheel.py
-@@ -423,30 +423,30 @@ WHEEL_INSTALL_TESTS = (
+         install_requires_ordered
+Index: setuptools-68.1.0/setuptools/tests/test_wheel.py
+===================================================================
+--- setuptools-68.1.0.orig/setuptools/tests/test_wheel.py
++++ setuptools-68.1.0/setuptools/tests/test_wheel.py
+@@ -424,30 +424,30 @@ WHEEL_INSTALL_TESTS = (
      dict(
          id='requires_ensure_order',
          install_requires='''

++++++ sphinx72.patch ++++++
>From c0985fee154e4a97ca2fd6355b40786841339dde Mon Sep 17 00:00:00 2001
From: Anderson Bravalheri <andersonbravalh...@gmail.com>
Date: Fri, 18 Aug 2023 10:47:21 +0100
Subject: [PATCH 1/5] Avoid circular imports between setuptools/__init__ and
 monkey

---
 setuptools/__init__.py | 18 +++++++-----------
 setuptools/monkey.py   | 16 ++++++++++------
 2 files changed, 17 insertions(+), 17 deletions(-)

Index: setuptools-68.1.2/setuptools/__init__.py
===================================================================
--- setuptools-68.1.2.orig/setuptools/__init__.py
+++ setuptools-68.1.2/setuptools/__init__.py
@@ -5,22 +5,18 @@ import os
 import re
 
 import _distutils_hack.override  # noqa: F401
-
 import distutils.core
 from distutils.errors import DistutilsOptionError
 from distutils.util import convert_path as _convert_path
 
+from . import logging, monkey
+from . import version as _version_module
+from .depends import Require
+from .discovery import PackageFinder, PEP420PackageFinder
+from .dist import Distribution
+from .extension import Extension
 from .warnings import SetuptoolsDeprecationWarning
 
-import setuptools.version
-from setuptools.extension import Extension
-from setuptools.dist import Distribution
-from setuptools.depends import Require
-from setuptools.discovery import PackageFinder, PEP420PackageFinder
-from . import monkey
-from . import logging
-
-
 __all__ = [
     'setup',
     'Distribution',
@@ -32,7 +28,7 @@ __all__ = [
     'find_namespace_packages',
 ]
 
-__version__ = setuptools.version.__version__
+__version__ = _version_module.__version__
 
 bootstrap_install_from = None
 
Index: setuptools-68.1.2/setuptools/monkey.py
===================================================================
--- setuptools-68.1.2.orig/setuptools/monkey.py
+++ setuptools-68.1.2/setuptools/monkey.py
@@ -2,15 +2,15 @@
 Monkey patching of distutils.
 """
 
-import sys
-import distutils.filelist
+import functools
+import inspect
 import platform
+import sys
 import types
-import functools
 from importlib import import_module
-import inspect
 
-import setuptools
+import distutils.filelist
+
 
 __all__ = []
 """
@@ -61,6 +61,8 @@ def get_unpatched_class(cls):
 
 
 def patch_all():
+    import setuptools
+
     # we can't patch distutils.cmd, alas
     distutils.core.Command = setuptools.Command
 
@@ -97,9 +99,11 @@ def patch_all():
 
 
 def _patch_distribution_metadata():
+    from . import dist
+
     """Patch write_pkg_file and read_pkg_file for higher metadata standards"""
     for attr in ('write_pkg_file', 'read_pkg_file', 'get_metadata_version'):
-        new_val = getattr(setuptools.dist, attr)
+        new_val = getattr(dist, attr)
         setattr(distutils.dist.DistributionMetadata, attr, new_val)
 
 
Index: setuptools-68.1.2/setup.cfg
===================================================================
--- setuptools-68.1.2.orig/setup.cfg
+++ setuptools-68.1.2/setup.cfg
@@ -79,7 +79,7 @@ testing-integration =
        build[virtualenv]
        filelock>=3.4.0
 docs = 
-       sphinx >= 3.5,<=7.1.2  # workaround, see comments in 
pypa/setuptools#4020
+       sphinx >= 3.5
        jaraco.packaging >= 9.3
        rst.linker >= 1.9
        furo
Index: setuptools-68.1.2/setuptools/dist.py
===================================================================
--- setuptools-68.1.2.orig/setuptools/dist.py
+++ setuptools-68.1.2/setuptools/dist.py
@@ -1,60 +1,56 @@
 __all__ = ['Distribution']
 
+
 import io
-import sys
-import re
-import os
-import numbers
-import distutils.log
-import distutils.core
-import distutils.cmd
-import distutils.dist
-import distutils.command
-from distutils.util import strtobool
-from distutils.debug import DEBUG
-from distutils.fancy_getopt import translate_longopt
-from glob import iglob
 import itertools
+import numbers
+import os
+import re
+import sys
 import textwrap
-from contextlib import suppress
-from typing import List, Optional, Set, TYPE_CHECKING
-from pathlib import Path
-
 from collections import defaultdict
+from contextlib import suppress
 from email import message_from_file
+from glob import iglob
+from pathlib import Path
+from typing import TYPE_CHECKING, List, Optional, Set
 
+import distutils.cmd
+import distutils.command
+import distutils.core
+import distutils.dist
+import distutils.log
+from distutils.debug import DEBUG
 from distutils.errors import DistutilsOptionError, DistutilsSetupError
+from distutils.fancy_getopt import translate_longopt
 from distutils.util import rfc822_escape
+from distutils.util import strtobool
 
-from setuptools.extern import packaging
-from setuptools.extern import ordered_set
-from setuptools.extern.more_itertools import unique_everseen, partition
-
-import setuptools
-import setuptools.command
-from setuptools import windows_support
-from setuptools.monkey import get_unpatched
-from setuptools.config import setupcfg, pyprojecttoml
-from setuptools.discovery import ConfigDiscovery
+from .extern.more_itertools import partition, unique_everseen
+from .extern.ordered_set import OrderedSet
+from .extern.packaging.markers import InvalidMarker, Marker
+from .extern.packaging.specifiers import InvalidSpecifier, SpecifierSet
+from .extern.packaging.version import InvalidVersion, Version
 
-from setuptools.extern.packaging import version
-from . import _reqs
 from . import _entry_points
 from . import _normalization
+from . import _reqs
+from . import command as _  # noqa  -- imported for side-effects
 from ._importlib import metadata
+from .config import setupcfg, pyprojecttoml
+from .discovery import ConfigDiscovery
+from .monkey import get_unpatched
 from .warnings import InformationOnly, SetuptoolsDeprecationWarning
 
+
 if TYPE_CHECKING:
     from email.message import Message
 
-__import__('setuptools.extern.packaging.specifiers')
-__import__('setuptools.extern.packaging.version')
-
 
 def get_metadata_version(self):
     mv = getattr(self, 'metadata_version', None)
     if mv is None:
-        mv = version.Version('2.1')
+        mv = Version('2.1')
         self.metadata_version = mv
     return mv
 
@@ -102,7 +98,7 @@ def read_pkg_file(self, file):
     """Reads the metadata values from a file object."""
     msg = message_from_file(file)
 
-    self.metadata_version = version.Version(msg['metadata-version'])
+    self.metadata_version = Version(msg['metadata-version'])
     self.name = _read_field_from_msg(msg, 'name')
     self.version = _read_field_from_msg(msg, 'version')
     self.description = _read_field_from_msg(msg, 'summary')
@@ -116,9 +112,7 @@ def read_pkg_file(self, file):
     self.license = _read_field_unescaped_from_msg(msg, 'license')
 
     self.long_description = _read_field_unescaped_from_msg(msg, 'description')
-    if self.long_description is None and self.metadata_version >= 
version.Version(
-        '2.1'
-    ):
+    if self.long_description is None and self.metadata_version >= 
Version('2.1'):
         self.long_description = _read_payload_from_msg(msg)
     self.description = _read_field_from_msg(msg, 'summary')
 
@@ -129,7 +123,7 @@ def read_pkg_file(self, file):
     self.classifiers = _read_list_from_msg(msg, 'classifier')
 
     # PEP 314 - these fields only exist in 1.1
-    if self.metadata_version == version.Version('1.1'):
+    if self.metadata_version == Version('1.1'):
         self.requires = _read_list_from_msg(msg, 'requires')
         self.provides = _read_list_from_msg(msg, 'provides')
         self.obsoletes = _read_list_from_msg(msg, 'obsoletes')
@@ -299,7 +293,7 @@ def _check_extra(extra, reqs):
     name, sep, marker = extra.partition(':')
     try:
         _check_marker(marker)
-    except packaging.markers.InvalidMarker:
+    except InvalidMarker:
         msg = f"Invalid environment marker: {marker} ({extra!r})"
         raise DistutilsSetupError(msg) from None
     list(_reqs.parse(reqs))
@@ -308,7 +302,7 @@ def _check_extra(extra, reqs):
 def _check_marker(marker):
     if not marker:
         return
-    m = packaging.markers.Marker(marker)
+    m = Marker(marker)
     m.evaluate()
 
 
@@ -344,8 +338,8 @@ def check_requirements(dist, attr, value
 def check_specifier(dist, attr, value):
     """Verify that value is a valid version specifier"""
     try:
-        packaging.specifiers.SpecifierSet(value)
-    except (packaging.specifiers.InvalidSpecifier, AttributeError) as error:
+        SpecifierSet(value)
+    except (InvalidSpecifier, AttributeError) as error:
         tmpl = (
             "{attr!r} must be a string " "containing valid version specifiers; 
{error}"
         )
@@ -448,7 +442,7 @@ class Distribution(_Distribution):
     _DISTUTILS_UNSUPPORTED_METADATA = {
         'long_description_content_type': lambda: None,
         'project_urls': dict,
-        'provides_extras': ordered_set.OrderedSet,
+        'provides_extras': OrderedSet,
         'license_file': lambda: None,
         'license_files': lambda: None,
     }
@@ -499,7 +493,7 @@ class Distribution(_Distribution):
         # Save the original dependencies before they are processed into the 
egg format
         self._orig_extras_require = {}
         self._orig_install_requires = []
-        self._tmp_extras_require = defaultdict(ordered_set.OrderedSet)
+        self._tmp_extras_require = defaultdict(OrderedSet)
 
         self.set_defaults = ConfigDiscovery(self)
 
@@ -535,10 +529,12 @@ class Distribution(_Distribution):
 
     @staticmethod
     def _normalize_version(version):
-        if isinstance(version, setuptools.sic) or version is None:
+        from . import sic
+
+        if isinstance(version, sic) or version is None:
             return version
 
-        normalized = str(packaging.version.Version(version))
+        normalized = str(Version(version))
         if version != normalized:
             InformationOnly.emit(f"Normalizing '{version}' to '{normalized}'")
             return normalized
@@ -552,8 +548,10 @@ class Distribution(_Distribution):
 
         if version is not None:
             try:
-                packaging.version.Version(version)
-            except (packaging.version.InvalidVersion, TypeError):
+                Version(version)
+            except (InvalidVersion, TypeError):
+                from . import sic
+
                 SetuptoolsDeprecationWarning.emit(
                     f"Invalid version: {version!r}.",
                     """
@@ -566,7 +564,7 @@ class Distribution(_Distribution):
                     # Warning initially introduced in 26 Sept 2014
                     # pypa/packaging already removed legacy versions.
                 )
-                return setuptools.sic(version)
+                return sic(version)
         return version
 
     def _finalize_requires(self):
@@ -602,7 +600,7 @@ class Distribution(_Distribution):
         `"extra:{marker}": ["barbazquux"]`.
         """
         spec_ext_reqs = getattr(self, 'extras_require', None) or {}
-        tmp = defaultdict(ordered_set.OrderedSet)
+        tmp = defaultdict(OrderedSet)
         self._tmp_extras_require = getattr(self, '_tmp_extras_require', tmp)
         for section, v in spec_ext_reqs.items():
             # Do not strip empty sections.
@@ -903,7 +901,7 @@ class Distribution(_Distribution):
 
     def fetch_build_eggs(self, requires):
         """Resolve pre-setup requirements"""
-        from setuptools.installer import _fetch_build_eggs
+        from .installer import _fetch_build_eggs
 
         return _fetch_build_eggs(self, requires)
 
@@ -946,6 +944,8 @@ class Distribution(_Distribution):
                 ep.load()(self, ep.name, value)
 
     def get_egg_cache_dir(self):
+        from . import windows_support
+
         egg_cache_dir = os.path.join(os.curdir, '.eggs')
         if not os.path.exists(egg_cache_dir):
             os.mkdir(egg_cache_dir)
@@ -966,7 +966,7 @@ class Distribution(_Distribution):
 
     def fetch_build_egg(self, req):
         """Fetch an egg needed for building"""
-        from setuptools.installer import fetch_build_egg
+        from .installer import fetch_build_egg
 
         return fetch_build_egg(self, req)
 
Index: setuptools-68.1.2/setuptools/depends.py
===================================================================
--- setuptools-68.1.2.orig/setuptools/depends.py
+++ setuptools-68.1.2/setuptools/depends.py
@@ -3,10 +3,10 @@ import marshal
 import contextlib
 import dis
 
-from setuptools.extern.packaging import version
 
-from ._imp import find_module, PY_COMPILED, PY_FROZEN, PY_SOURCE
 from . import _imp
+from ._imp import find_module, PY_COMPILED, PY_FROZEN, PY_SOURCE
+from .extern.packaging.version import Version
 
 
 __all__ = ['Require', 'find_module', 'get_module_constant', 'extract_constant']
@@ -19,7 +19,7 @@ class Require:
         self, name, requested_version, module, homepage='', attribute=None, 
format=None
     ):
         if format is None and requested_version is not None:
-            format = version.Version
+            format = Version
 
         if format is not None:
             requested_version = format(requested_version)
Index: setuptools-68.1.2/setuptools/tests/test_setuptools.py
===================================================================
--- setuptools-68.1.2.orig/setuptools/tests/test_setuptools.py
+++ setuptools-68.1.2/setuptools/tests/test_setuptools.py
@@ -11,13 +11,13 @@ from zipfile import ZipFile
 
 import pytest
 
-from setuptools.extern.packaging import version
-
 import setuptools
 import setuptools.dist
 import setuptools.depends as dep
 from setuptools.depends import Require
 
+from setuptools.extern.packaging.version import Version
+
 
 @pytest.fixture(autouse=True)
 def isolated_dir(tmpdir_cwd):
@@ -94,7 +94,7 @@ class TestDepends:
 
         assert req.name == 'Json'
         assert req.module == 'json'
-        assert req.requested_version == version.Version('1.0.3')
+        assert req.requested_version == Version('1.0.3')
         assert req.attribute == '__version__'
         assert req.full_name() == 'Json-1.0.3'
 
Index: setuptools-68.1.2/newsfragments/4023.misc.rst
===================================================================
--- /dev/null
+++ setuptools-68.1.2/newsfragments/4023.misc.rst
@@ -0,0 +1,2 @@
+Avoid circular imports (particularly between 
``setuptools/{__init__,dist,monkey}.py``),
+or at least delay them, so tools like ``sphinx`` don't have problems analysing 
the codebase.

Reply via email to