python-setuptools/remove-more-itertools-dependency-cycle.patch
Dirk Mueller 9b561131ed - update to 58.3.0:
*  ``setup.py install`` and ``easy_install`` commands are now officially
    deprecated. Use other standards-based installers (like pip) and builders (like
    build). Workloads reliant on this behavior should pin to this major version of
    Setuptools.
  * #1988: Deprecated the ``bdist_rpm`` command.
  * #2785: Replace confirparser's readfp with read_file, deprecated since Python 3.2.
  * #2823: Officially deprecated support for ``setup_requires``. Users are
    encouraged instead to migrate to PEP 518 ``build-system.requires`` in
    ``pyproject.toml``. Users reliant on ``setup_requires`` should consider
    pinning to this major version to avoid disruption.
  * #2762: Changed codecov.yml to configure the threshold to be lower
  * #2757: Add windows arm64 launchers for scripts generated by easy_install.
  * #2800: Added ``--owner`` and ``--group`` options to the ``sdist`` command,
    for specifying file ownership within the produced tarball (similarly
    to the corresponding distutils ``sdist`` options).
  * #2792: Document how the legacy and non-legacy versions are compared, and
    reference to the `PEP 440 <https://www.python.org/dev/peps/pep-0440/>`_
    scheme.
  * #2773: Retain case in setup.cfg during sdist.
  * #2777: Build does not fail fast when ``use_2to3`` is supplied but set to a
     false value.
  * #2769: Build now fails fast when ``use_2to3`` is supplied.
  * #2765: In Distribution.finalize_options, suppress known removed entry points
    to avoid issues with older Setuptools.
  * #2086: Removed support for 2to3 during builds. Projects should port to a
    unified codebase or pin to an older version of Setuptools using PEP 518
    build-requires.
  * #2712: Added implicit globbing support for `[options.data_files]` values.
  * #2737: fix various syntax and style errors in code snippets in docs

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-setuptools?expand=0&rev=220
2022-02-07 11:04:33 +00:00

109 lines
4.1 KiB
Diff

From: Antonio Larrosa <alarrosa@suse.com>
Subject: Remove dependency on more_itertools which generates a dependency cycle
setuptools buildrequires more_itertools just for one simple function
(unique_everseen) and more_itertools buildrequires setuptools, so
in order to remove the cycle, the unique_everseen function is copied
here so that it can be used without buildrequiring the external package.
Index: setuptools-58.3.0/setuptools/extern/__init__.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/extern/__init__.py
+++ setuptools-58.3.0/setuptools/extern/__init__.py
@@ -69,5 +69,5 @@ class VendorImporter:
sys.meta_path.append(self)
-names = 'packaging', 'pyparsing', 'ordered_set', 'more_itertools',
+names = 'packaging', 'pyparsing', 'ordered_set'
VendorImporter(__name__, names, 'setuptools._vendor').install()
Index: setuptools-58.3.0/setuptools/dist.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/dist.py
+++ setuptools-58.3.0/setuptools/dist.py
@@ -29,7 +29,7 @@ from distutils.version import StrictVers
from setuptools.extern import packaging
from setuptools.extern import ordered_set
-from setuptools.extern.more_itertools import unique_everseen
+from setuptools.more_itertools import unique_everseen
from . import SetuptoolsDeprecationWarning
Index: setuptools-58.3.0/setuptools/more_itertools.py
===================================================================
--- /dev/null
+++ setuptools-58.3.0/setuptools/more_itertools.py
@@ -0,0 +1,19 @@
+def unique_everseen(iterable, key=None):
+ """Yield unique elements, preserving order."""
+
+ seenset = set()
+ seenset_add = seenset.add
+ seenlist = []
+ seenlist_add = seenlist.append
+ use_key = key is not None
+
+ for element in iterable:
+ k = key(element) if use_key else element
+ try:
+ if k not in seenset:
+ seenset_add(k)
+ yield element
+ except TypeError:
+ if k not in seenlist:
+ seenlist_add(k)
+ yield element
Index: setuptools-58.3.0/setuptools/command/build_py.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/command/build_py.py
+++ setuptools-58.3.0/setuptools/command/build_py.py
@@ -8,7 +8,7 @@ import io
import distutils.errors
import itertools
import stat
-from setuptools.extern.more_itertools import unique_everseen
+from setuptools.more_itertools import unique_everseen
def make_writable(target):
Index: setuptools-58.3.0/setuptools/msvc.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/msvc.py
+++ setuptools-58.3.0/setuptools/msvc.py
@@ -30,7 +30,7 @@ import itertools
import subprocess
import distutils.errors
from setuptools.extern.packaging.version import LegacyVersion
-from setuptools.extern.more_itertools import unique_everseen
+from setuptools.more_itertools import unique_everseen
from .monkey import get_unpatched
Index: setuptools-58.3.0/setuptools/package_index.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/package_index.py
+++ setuptools-58.3.0/setuptools/package_index.py
@@ -27,7 +27,7 @@ from distutils import log
from distutils.errors import DistutilsError
from fnmatch import translate
from setuptools.wheel import Wheel
-from setuptools.extern.more_itertools import unique_everseen
+from setuptools.more_itertools import unique_everseen
EGG_FRAGMENT = re.compile(r'^egg=([-A-Za-z0-9_.+!]+)$')
Index: setuptools-58.3.0/setuptools/command/test.py
===================================================================
--- setuptools-58.3.0.orig/setuptools/command/test.py
+++ setuptools-58.3.0/setuptools/command/test.py
@@ -19,7 +19,7 @@ from pkg_resources import (
EntryPoint,
)
from setuptools import Command
-from setuptools.extern.more_itertools import unique_everseen
+from setuptools.more_itertools import unique_everseen
class ScanningLoader(TestLoader):