Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-toolz for openSUSE:Factory 
checked in at 2022-10-12 18:24:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-toolz (Old)
 and      /work/SRC/openSUSE:Factory/.python-toolz.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-toolz"

Wed Oct 12 18:24:27 2022 rev:8 rq:1009874 version:0.12.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-toolz/python-toolz.changes        
2022-01-08 23:24:51.378292233 +0100
+++ /work/SRC/openSUSE:Factory/.python-toolz.new.2275/python-toolz.changes      
2022-10-12 18:25:58.909857891 +0200
@@ -1,0 +2,12 @@
+Tue Oct 11 16:02:42 UTC 2022 - Yogalakshmi Arunachalam <yarunacha...@suse.com>
+
+- update to version 0.12.0 
+  * Add apply (#411)
+  * Support newer Python versions--up to Python 3.11-alpha (#525, #527, #533)
+  * Improve warning when using toolz.compatibility (#485)
+  * Improve documentation (#507, #524, #526, #530)
+  * Improve performance of merge_with (#532)
+  * Improve import times (#534)
+  * Auto-upload new releases to PyPI (#536, #537)
+
+-------------------------------------------------------------------

Old:
----
  toolz-0.11.2.tar.gz

New:
----
  toolz-0.12.0.tar.gz

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

Other differences:
------------------
++++++ python-toolz.spec ++++++
--- /var/tmp/diff_new_pack.CW75bm/_old  2022-10-12 18:26:00.649862238 +0200
+++ /var/tmp/diff_new_pack.CW75bm/_new  2022-10-12 18:26:00.657862258 +0200
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python3-%{**}}
 %global skip_python2 1
 Name:           python-toolz
-Version:        0.11.2
+Version:        0.12.0
 Release:        0
 Summary:        List processing tools and functional utilities for python
 License:        BSD-3-Clause

++++++ toolz-0.11.2.tar.gz -> toolz-0.12.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/PKG-INFO new/toolz-0.12.0/PKG-INFO
--- old/toolz-0.11.2/PKG-INFO   2021-11-06 06:22:52.936383200 +0100
+++ new/toolz-0.12.0/PKG-INFO   2022-07-10 06:29:51.076025200 +0200
@@ -1,12 +1,145 @@
-Metadata-Version: 2.1
+Metadata-Version: 1.2
 Name: toolz
-Version: 0.11.2
+Version: 0.12.0
 Summary: List processing tools and functional utilities
 Home-page: https://github.com/pytoolz/toolz/
 Author: https://raw.github.com/pytoolz/toolz/master/AUTHORS.md
 Maintainer: Erik Welch
 Maintainer-email: erik.n.we...@gmail.com
 License: BSD
+Description: Toolz
+        =====
+        
+        |Build Status| |Coverage Status| |Version Status|
+        
+        A set of utility functions for iterators, functions, and dictionaries.
+        
+        See the PyToolz documentation at https://toolz.readthedocs.io
+        
+        LICENSE
+        -------
+        
+        New BSD. See `License File 
<https://github.com/pytoolz/toolz/blob/master/LICENSE.txt>`__.
+        
+        Install
+        -------
+        
+        ``toolz`` is on the Python Package Index (PyPI):
+        
+        ::
+        
+            pip install toolz
+        
+        Structure and Heritage
+        ----------------------
+        
+        ``toolz`` is implemented in three parts:
+        
+        |literal itertoolz|_, for operations on iterables. Examples: 
``groupby``,
+        ``unique``, ``interpose``,
+        
+        |literal functoolz|_, for higher-order functions. Examples: 
``memoize``,
+        ``curry``, ``compose``,
+        
+        |literal dicttoolz|_, for operations on dictionaries. Examples: 
``assoc``,
+        ``update-in``, ``merge``.
+        
+        .. |literal itertoolz| replace:: ``itertoolz``
+        .. _literal itertoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/itertoolz.py
+        
+        .. |literal functoolz| replace:: ``functoolz``
+        .. _literal functoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/functoolz.py
+        
+        .. |literal dicttoolz| replace:: ``dicttoolz``
+        .. _literal dicttoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/dicttoolz.py
+        
+        These functions come from the legacy of functional languages for list
+        processing. They interoperate well to accomplish common complex tasks.
+        
+        Read our `API
+        Documentation <https://toolz.readthedocs.io/en/latest/api.html>`__ for
+        more details.
+        
+        Example
+        -------
+        
+        This builds a standard wordcount function from pieces within ``toolz``:
+        
+        .. code:: python
+        
+            >>> def stem(word):
+            ...     """ Stem word to primitive form """
+            ...     return word.lower().rstrip(",.!:;'-\"").lstrip("'\"")
+        
+            >>> from toolz import compose, frequencies
+            >>> from toolz.curried import map
+            >>> wordcount = compose(frequencies, map(stem), str.split)
+        
+            >>> sentence = "This cat jumped over this other cat!"
+            >>> wordcount(sentence)
+            {'this': 2, 'cat': 2, 'jumped': 1, 'over': 1, 'other': 1}
+        
+        Dependencies
+        ------------
+        
+        ``toolz`` supports Python 3.5+ with a common codebase.
+        It is pure Python and requires no dependencies beyond the standard
+        library.
+        
+        It is, in short, a lightweight dependency.
+        
+        
+        CyToolz
+        -------
+        
+        The ``toolz`` project has been reimplemented in `Cython 
<http://cython.org>`__.
+        The ``cytoolz`` project is a drop-in replacement for the Pure Python
+        implementation.
+        See `CyToolz GitHub Page <https://github.com/pytoolz/cytoolz/>`__ for 
more
+        details.
+        
+        See Also
+        --------
+        
+        -  `Underscore.js <https://underscorejs.org/>`__: A similar library for
+           JavaScript
+        -  `Enumerable <https://ruby-doc.org/core-2.0.0/Enumerable.html>`__: A
+           similar library for Ruby
+        -  `Clojure <https://clojure.org/>`__: A functional language whose
+           standard library has several counterparts in ``toolz``
+        -  `itertools <https://docs.python.org/2/library/itertools.html>`__: 
The
+           Python standard library for iterator tools
+        -  `functools <https://docs.python.org/2/library/functools.html>`__: 
The
+           Python standard library for function tools
+        
+        Contributions Welcome
+        ---------------------
+        
+        ``toolz`` aims to be a repository for utility functions, particularly
+        those that come from the functional programming and list processing
+        traditions. We welcome contributions that fall within this scope.
+        
+        We also try to keep the API small to keep ``toolz`` manageable.  The 
ideal
+        contribution is significantly different from existing functions and has
+        precedent in a few other functional systems.
+        
+        Please take a look at our
+        `issue page <https://github.com/pytoolz/toolz/issues>`__
+        for contribution ideas.
+        
+        Community
+        ---------
+        
+        See our `mailing list 
<https://groups.google.com/forum/#!forum/pytoolz>`__.
+        We're friendly.
+        
+        .. |Build Status| image:: 
https://github.com/pytoolz/toolz/workflows/Test/badge.svg
+           :target: https://github.com/pytoolz/toolz/actions
+        .. |Coverage Status| image:: 
https://coveralls.io/repos/pytoolz/toolz/badge.svg?branch=master
+           :target: https://coveralls.io/r/pytoolz/toolz
+        .. |Version Status| image:: https://badge.fury.io/py/toolz.svg
+           :target: https://badge.fury.io/py/toolz
+        
 Keywords: functional utility itertools functools
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
@@ -22,140 +155,3 @@
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Requires-Python: >=3.5
-License-File: LICENSE.txt
-License-File: AUTHORS.md
-
-Toolz
-=====
-
-|Build Status| |Coverage Status| |Version Status|
-
-A set of utility functions for iterators, functions, and dictionaries.
-
-See the PyToolz documentation at https://toolz.readthedocs.io
-
-LICENSE
--------
-
-New BSD. See `License File 
<https://github.com/pytoolz/toolz/blob/master/LICENSE.txt>`__.
-
-Install
--------
-
-``toolz`` is on the Python Package Index (PyPI):
-
-::
-
-    pip install toolz
-
-Structure and Heritage
-----------------------
-
-``toolz`` is implemented in three parts:
-
-|literal itertoolz|_, for operations on iterables. Examples: ``groupby``,
-``unique``, ``interpose``,
-
-|literal functoolz|_, for higher-order functions. Examples: ``memoize``,
-``curry``, ``compose``,
-
-|literal dicttoolz|_, for operations on dictionaries. Examples: ``assoc``,
-``update-in``, ``merge``.
-
-.. |literal itertoolz| replace:: ``itertoolz``
-.. _literal itertoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/itertoolz.py
-
-.. |literal functoolz| replace:: ``functoolz``
-.. _literal functoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/functoolz.py
-
-.. |literal dicttoolz| replace:: ``dicttoolz``
-.. _literal dicttoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/dicttoolz.py
-
-These functions come from the legacy of functional languages for list
-processing. They interoperate well to accomplish common complex tasks.
-
-Read our `API
-Documentation <https://toolz.readthedocs.io/en/latest/api.html>`__ for
-more details.
-
-Example
--------
-
-This builds a standard wordcount function from pieces within ``toolz``:
-
-.. code:: python
-
-    >>> def stem(word):
-    ...     """ Stem word to primitive form """
-    ...     return word.lower().rstrip(",.!:;'-\"").lstrip("'\"")
-
-    >>> from toolz import compose, frequencies
-    >>> from toolz.curried import map
-    >>> wordcount = compose(frequencies, map(stem), str.split)
-
-    >>> sentence = "This cat jumped over this other cat!"
-    >>> wordcount(sentence)
-    {'this': 2, 'cat': 2, 'jumped': 1, 'over': 1, 'other': 1}
-
-Dependencies
-------------
-
-``toolz`` supports Python 3.5+ with a common codebase.
-It is pure Python and requires no dependencies beyond the standard
-library.
-
-It is, in short, a lightweight dependency.
-
-
-CyToolz
--------
-
-The ``toolz`` project has been reimplemented in `Cython <http://cython.org>`__.
-The ``cytoolz`` project is a drop-in replacement for the Pure Python
-implementation.
-See `CyToolz GitHub Page <https://github.com/pytoolz/cytoolz/>`__ for more
-details.
-
-See Also
---------
-
--  `Underscore.js <https://underscorejs.org/>`__: A similar library for
-   JavaScript
--  `Enumerable <https://ruby-doc.org/core-2.0.0/Enumerable.html>`__: A
-   similar library for Ruby
--  `Clojure <https://clojure.org/>`__: A functional language whose
-   standard library has several counterparts in ``toolz``
--  `itertools <https://docs.python.org/2/library/itertools.html>`__: The
-   Python standard library for iterator tools
--  `functools <https://docs.python.org/2/library/functools.html>`__: The
-   Python standard library for function tools
-
-Contributions Welcome
----------------------
-
-``toolz`` aims to be a repository for utility functions, particularly
-those that come from the functional programming and list processing
-traditions. We welcome contributions that fall within this scope.
-
-We also try to keep the API small to keep ``toolz`` manageable.  The ideal
-contribution is significantly different from existing functions and has
-precedent in a few other functional systems.
-
-Please take a look at our
-`issue page <https://github.com/pytoolz/toolz/issues>`__
-for contribution ideas.
-
-Community
----------
-
-See our `mailing list <https://groups.google.com/forum/#!forum/pytoolz>`__.
-We're friendly.
-
-.. |Build Status| image:: 
https://github.com/pytoolz/toolz/workflows/Test/badge.svg
-   :target: https://github.com/pytoolz/toolz/actions
-.. |Coverage Status| image:: 
https://coveralls.io/repos/pytoolz/toolz/badge.svg?branch=master
-   :target: https://coveralls.io/r/pytoolz/toolz
-.. |Version Status| image:: https://badge.fury.io/py/toolz.svg
-   :target: https://badge.fury.io/py/toolz
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/setup.cfg new/toolz-0.12.0/setup.cfg
--- old/toolz-0.11.2/setup.cfg  2021-11-06 06:22:52.937012200 +0100
+++ new/toolz-0.12.0/setup.cfg  2022-07-10 06:29:51.076025200 +0200
@@ -1,5 +1,5 @@
 [versioneer]
-VCS = git
+vcs = git
 style = pep440
 versionfile_source = toolz/_version.py
 versionfile_build = toolz/_version.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/tlz/_build_tlz.py 
new/toolz-0.12.0/tlz/_build_tlz.py
--- old/toolz-0.11.2/tlz/_build_tlz.py  2021-11-06 06:07:13.000000000 +0100
+++ new/toolz-0.12.0/tlz/_build_tlz.py  2022-07-10 06:29:48.000000000 +0200
@@ -2,9 +2,10 @@
 import types
 import toolz
 from importlib import import_module
+from importlib.machinery import ModuleSpec
 
 
-class TlzLoader(object):
+class TlzLoader:
     """ Finds and loads ``tlz`` modules when added to sys.meta_path"""
     def __init__(self):
         self.always_from_toolz = {
@@ -36,7 +37,7 @@
     def load_module(self, fullname):  # pragma: py3 no cover
         if fullname in sys.modules:  # pragma: no cover
             return sys.modules[fullname]
-        spec = TlzSpec(fullname, self)
+        spec = ModuleSpec(fullname, self)
         module = self.create_module(spec)
         sys.modules[fullname] = module
         self.exec_module(module)
@@ -45,7 +46,7 @@
     def find_spec(self, fullname, path, target=None):  # pragma: no cover
         package, dot, submodules = fullname.partition('.')
         if package == 'tlz':
-            return TlzSpec(fullname, self)
+            return ModuleSpec(fullname, self)
 
     def create_module(self, spec):
         return types.ModuleType(spec.name)
@@ -86,18 +87,6 @@
                 module.__dict__[k] = submodule
 
 
-class TlzSpec(object):
-    def __init__(self, name, loader):
-        self.name = name
-        self.loader = loader
-        self.origin = None
-        self.submodule_search_locations = []
-        self.loader_state = None
-        self.cached = None
-        self.parent = None
-        self.has_location = False
-
-
 tlz_loader = TlzLoader()
 sys.meta_path.append(tlz_loader)
 tlz_loader.exec_module(sys.modules['tlz'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/toolz/_version.py 
new/toolz-0.12.0/toolz/_version.py
--- old/toolz-0.11.2/toolz/_version.py  2021-11-06 06:22:52.938442500 +0100
+++ new/toolz-0.12.0/toolz/_version.py  2022-07-10 06:29:51.076025200 +0200
@@ -8,11 +8,11 @@
 
 version_json = '''
 {
- "date": "2021-11-06T00:07:13-0500",
+ "date": "2022-07-09T23:15:45-0500",
  "dirty": false,
  "error": null,
- "full-revisionid": "294e981edad035a7ac6f0e2b48f1738368fa4b34",
- "version": "0.11.2"
+ "full-revisionid": "245b78e6320c41a4a9cdd15c6123681fbfb62843",
+ "version": "0.12.0"
 }
 '''  # END VERSION_JSON
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/toolz/curried/operator.py 
new/toolz-0.12.0/toolz/curried/operator.py
--- old/toolz-0.11.2/toolz/curried/operator.py  2021-11-06 06:07:13.000000000 
+0100
+++ new/toolz-0.12.0/toolz/curried/operator.py  2022-07-10 06:29:48.000000000 
+0200
@@ -2,22 +2,21 @@
 
 import operator
 
-from toolz.functoolz import curry, num_required_args, has_keywords
-
-
-def should_curry(f):
-    num = num_required_args(f)
-    return num is None or num > 1 or num == 1 and has_keywords(f) is not False
+from toolz.functoolz import curry
 
 
+# Tests will catch if/when this needs updated
+IGNORE = {
+    "__abs__", "__index__", "__inv__", "__invert__", "__neg__", "__not__",
+    "__pos__", "_abs", "abs", "attrgetter", "index", "inv", "invert",
+    "itemgetter", "neg", "not_", "pos", "truth"
+}
 locals().update(
-    {name: curry(f) if should_curry(f) else f
-     for name, f in vars(operator).items() if callable(f)},
+    {name: f if name in IGNORE else curry(f)
+     for name, f in vars(operator).items() if callable(f)}
 )
 
 # Clean up the namespace.
+del IGNORE
 del curry
-del num_required_args
-del has_keywords
 del operator
-del should_curry
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/toolz/dicttoolz.py 
new/toolz-0.12.0/toolz/dicttoolz.py
--- old/toolz-0.11.2/toolz/dicttoolz.py 2021-11-06 06:07:13.000000000 +0100
+++ new/toolz-0.12.0/toolz/dicttoolz.py 2022-07-10 06:29:48.000000000 +0200
@@ -1,4 +1,5 @@
 import operator
+import collections
 from functools import reduce
 from collections.abc import Mapping
 
@@ -58,14 +59,15 @@
         dicts = dicts[0]
     factory = _get_factory(merge_with, kwargs)
 
-    result = factory()
+    values = collections.defaultdict(lambda: [].append)
     for d in dicts:
         for k, v in d.items():
-            if k not in result:
-                result[k] = [v]
-            else:
-                result[k].append(v)
-    return valmap(func, result, factory)
+            values[k](v)
+
+    result = factory()
+    for k, v in values.items():
+        result[k] = func(v.__self__)
+    return result
 
 
 def valmap(func, d, factory=dict):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/toolz/functoolz.py 
new/toolz-0.12.0/toolz/functoolz.py
--- old/toolz-0.11.2/toolz/functoolz.py 2021-11-06 06:07:13.000000000 +0100
+++ new/toolz-0.12.0/toolz/functoolz.py 2022-07-10 06:29:48.000000000 +0200
@@ -3,9 +3,7 @@
 import sys
 from operator import attrgetter, not_
 from importlib import import_module
-from textwrap import dedent
 from types import MethodType
-import sys
 
 from .utils import no_default
 
@@ -780,6 +778,8 @@
 
     @instanceproperty(classval=__doc__)
     def __doc__(self):
+        from textwrap import dedent
+
         exc = self.exc
         try:
             if isinstance(exc, tuple):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/toolz/itertoolz.py 
new/toolz-0.12.0/toolz/itertoolz.py
--- old/toolz-0.11.2/toolz/itertoolz.py 2021-11-06 06:07:13.000000000 +0100
+++ new/toolz-0.12.0/toolz/itertoolz.py 2022-07-10 06:29:48.000000000 +0200
@@ -4,7 +4,6 @@
 import operator
 from functools import partial
 from itertools import filterfalse, zip_longest
-from random import Random
 from collections.abc import Sequence
 from toolz.utils import no_default
 
@@ -1052,5 +1051,7 @@
     [7, 9, 19, 25, 30, 32, 34, 48, 59, 60, 81, 98]
     """
     if not hasattr(random_state, 'random'):
+        from random import Random
+
         random_state = Random(random_state)
     return filter(lambda _: random_state.random() < prob, seq)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/toolz/sandbox/core.py 
new/toolz-0.12.0/toolz/sandbox/core.py
--- old/toolz-0.11.2/toolz/sandbox/core.py      2021-11-06 06:07:13.000000000 
+0100
+++ new/toolz-0.12.0/toolz/sandbox/core.py      2022-07-10 06:29:48.000000000 
+0200
@@ -40,7 +40,7 @@
     [[], (), [1], [2], {}]
 
     **Warning:** don't change the equality value of an item already in a hash
-    containter.  Unhashable types are unhashable for a reason.  For example:
+    container.  Unhashable types are unhashable for a reason.  For example:
 
     >>> L1 = [1] ; L2 = [2]
     >>> s = set(map(EqualityHashDefault, [L1, L2]))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/toolz/tests/test_curried.py 
new/toolz-0.12.0/toolz/tests/test_curried.py
--- old/toolz-0.11.2/toolz/tests/test_curried.py        2021-11-06 
06:07:13.000000000 +0100
+++ new/toolz-0.12.0/toolz/tests/test_curried.py        2022-07-10 
06:29:48.000000000 +0200
@@ -41,7 +41,18 @@
     assert toolz.curried.__name__ == 'toolz.curried'
 
 
+def should_curry(func):
+    if not callable(func) or isinstance(func, toolz.curry):
+        return False
+    nargs = toolz.functoolz.num_required_args(func)
+    if nargs is None or nargs > 1:
+        return True
+    return nargs == 1 and toolz.functoolz.has_keywords(func)
+
+
 def test_curried_operator():
+    import operator
+
     for k, v in vars(cop).items():
         if not callable(v):
             continue
@@ -60,6 +71,7 @@
                 raise AssertionError(
                     'toolz.curried.operator.%s is not curried!' % k,
                 )
+        assert should_curry(getattr(operator, k)) == isinstance(v, 
toolz.curry), k
 
     # Make sure this isn't totally empty.
     assert len(set(vars(cop)) & {'add', 'sub', 'mul'}) == 3
@@ -69,14 +81,6 @@
     exceptions = import_module('toolz.curried.exceptions')
     namespace = {}
 
-    def should_curry(func):
-        if not callable(func) or isinstance(func, toolz.curry):
-            return False
-        nargs = toolz.functoolz.num_required_args(func)
-        if nargs is None or nargs > 1:
-            return True
-        return nargs == 1 and toolz.functoolz.has_keywords(func)
-
 
     def curry_namespace(ns):
         return {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/toolz.egg-info/PKG-INFO 
new/toolz-0.12.0/toolz.egg-info/PKG-INFO
--- old/toolz-0.11.2/toolz.egg-info/PKG-INFO    2021-11-06 06:22:52.000000000 
+0100
+++ new/toolz-0.12.0/toolz.egg-info/PKG-INFO    2022-07-10 06:29:51.000000000 
+0200
@@ -1,12 +1,145 @@
-Metadata-Version: 2.1
+Metadata-Version: 1.2
 Name: toolz
-Version: 0.11.2
+Version: 0.12.0
 Summary: List processing tools and functional utilities
 Home-page: https://github.com/pytoolz/toolz/
 Author: https://raw.github.com/pytoolz/toolz/master/AUTHORS.md
 Maintainer: Erik Welch
 Maintainer-email: erik.n.we...@gmail.com
 License: BSD
+Description: Toolz
+        =====
+        
+        |Build Status| |Coverage Status| |Version Status|
+        
+        A set of utility functions for iterators, functions, and dictionaries.
+        
+        See the PyToolz documentation at https://toolz.readthedocs.io
+        
+        LICENSE
+        -------
+        
+        New BSD. See `License File 
<https://github.com/pytoolz/toolz/blob/master/LICENSE.txt>`__.
+        
+        Install
+        -------
+        
+        ``toolz`` is on the Python Package Index (PyPI):
+        
+        ::
+        
+            pip install toolz
+        
+        Structure and Heritage
+        ----------------------
+        
+        ``toolz`` is implemented in three parts:
+        
+        |literal itertoolz|_, for operations on iterables. Examples: 
``groupby``,
+        ``unique``, ``interpose``,
+        
+        |literal functoolz|_, for higher-order functions. Examples: 
``memoize``,
+        ``curry``, ``compose``,
+        
+        |literal dicttoolz|_, for operations on dictionaries. Examples: 
``assoc``,
+        ``update-in``, ``merge``.
+        
+        .. |literal itertoolz| replace:: ``itertoolz``
+        .. _literal itertoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/itertoolz.py
+        
+        .. |literal functoolz| replace:: ``functoolz``
+        .. _literal functoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/functoolz.py
+        
+        .. |literal dicttoolz| replace:: ``dicttoolz``
+        .. _literal dicttoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/dicttoolz.py
+        
+        These functions come from the legacy of functional languages for list
+        processing. They interoperate well to accomplish common complex tasks.
+        
+        Read our `API
+        Documentation <https://toolz.readthedocs.io/en/latest/api.html>`__ for
+        more details.
+        
+        Example
+        -------
+        
+        This builds a standard wordcount function from pieces within ``toolz``:
+        
+        .. code:: python
+        
+            >>> def stem(word):
+            ...     """ Stem word to primitive form """
+            ...     return word.lower().rstrip(",.!:;'-\"").lstrip("'\"")
+        
+            >>> from toolz import compose, frequencies
+            >>> from toolz.curried import map
+            >>> wordcount = compose(frequencies, map(stem), str.split)
+        
+            >>> sentence = "This cat jumped over this other cat!"
+            >>> wordcount(sentence)
+            {'this': 2, 'cat': 2, 'jumped': 1, 'over': 1, 'other': 1}
+        
+        Dependencies
+        ------------
+        
+        ``toolz`` supports Python 3.5+ with a common codebase.
+        It is pure Python and requires no dependencies beyond the standard
+        library.
+        
+        It is, in short, a lightweight dependency.
+        
+        
+        CyToolz
+        -------
+        
+        The ``toolz`` project has been reimplemented in `Cython 
<http://cython.org>`__.
+        The ``cytoolz`` project is a drop-in replacement for the Pure Python
+        implementation.
+        See `CyToolz GitHub Page <https://github.com/pytoolz/cytoolz/>`__ for 
more
+        details.
+        
+        See Also
+        --------
+        
+        -  `Underscore.js <https://underscorejs.org/>`__: A similar library for
+           JavaScript
+        -  `Enumerable <https://ruby-doc.org/core-2.0.0/Enumerable.html>`__: A
+           similar library for Ruby
+        -  `Clojure <https://clojure.org/>`__: A functional language whose
+           standard library has several counterparts in ``toolz``
+        -  `itertools <https://docs.python.org/2/library/itertools.html>`__: 
The
+           Python standard library for iterator tools
+        -  `functools <https://docs.python.org/2/library/functools.html>`__: 
The
+           Python standard library for function tools
+        
+        Contributions Welcome
+        ---------------------
+        
+        ``toolz`` aims to be a repository for utility functions, particularly
+        those that come from the functional programming and list processing
+        traditions. We welcome contributions that fall within this scope.
+        
+        We also try to keep the API small to keep ``toolz`` manageable.  The 
ideal
+        contribution is significantly different from existing functions and has
+        precedent in a few other functional systems.
+        
+        Please take a look at our
+        `issue page <https://github.com/pytoolz/toolz/issues>`__
+        for contribution ideas.
+        
+        Community
+        ---------
+        
+        See our `mailing list 
<https://groups.google.com/forum/#!forum/pytoolz>`__.
+        We're friendly.
+        
+        .. |Build Status| image:: 
https://github.com/pytoolz/toolz/workflows/Test/badge.svg
+           :target: https://github.com/pytoolz/toolz/actions
+        .. |Coverage Status| image:: 
https://coveralls.io/repos/pytoolz/toolz/badge.svg?branch=master
+           :target: https://coveralls.io/r/pytoolz/toolz
+        .. |Version Status| image:: https://badge.fury.io/py/toolz.svg
+           :target: https://badge.fury.io/py/toolz
+        
 Keywords: functional utility itertools functools
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
@@ -22,140 +155,3 @@
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Requires-Python: >=3.5
-License-File: LICENSE.txt
-License-File: AUTHORS.md
-
-Toolz
-=====
-
-|Build Status| |Coverage Status| |Version Status|
-
-A set of utility functions for iterators, functions, and dictionaries.
-
-See the PyToolz documentation at https://toolz.readthedocs.io
-
-LICENSE
--------
-
-New BSD. See `License File 
<https://github.com/pytoolz/toolz/blob/master/LICENSE.txt>`__.
-
-Install
--------
-
-``toolz`` is on the Python Package Index (PyPI):
-
-::
-
-    pip install toolz
-
-Structure and Heritage
-----------------------
-
-``toolz`` is implemented in three parts:
-
-|literal itertoolz|_, for operations on iterables. Examples: ``groupby``,
-``unique``, ``interpose``,
-
-|literal functoolz|_, for higher-order functions. Examples: ``memoize``,
-``curry``, ``compose``,
-
-|literal dicttoolz|_, for operations on dictionaries. Examples: ``assoc``,
-``update-in``, ``merge``.
-
-.. |literal itertoolz| replace:: ``itertoolz``
-.. _literal itertoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/itertoolz.py
-
-.. |literal functoolz| replace:: ``functoolz``
-.. _literal functoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/functoolz.py
-
-.. |literal dicttoolz| replace:: ``dicttoolz``
-.. _literal dicttoolz: 
https://github.com/pytoolz/toolz/blob/master/toolz/dicttoolz.py
-
-These functions come from the legacy of functional languages for list
-processing. They interoperate well to accomplish common complex tasks.
-
-Read our `API
-Documentation <https://toolz.readthedocs.io/en/latest/api.html>`__ for
-more details.
-
-Example
--------
-
-This builds a standard wordcount function from pieces within ``toolz``:
-
-.. code:: python
-
-    >>> def stem(word):
-    ...     """ Stem word to primitive form """
-    ...     return word.lower().rstrip(",.!:;'-\"").lstrip("'\"")
-
-    >>> from toolz import compose, frequencies
-    >>> from toolz.curried import map
-    >>> wordcount = compose(frequencies, map(stem), str.split)
-
-    >>> sentence = "This cat jumped over this other cat!"
-    >>> wordcount(sentence)
-    {'this': 2, 'cat': 2, 'jumped': 1, 'over': 1, 'other': 1}
-
-Dependencies
-------------
-
-``toolz`` supports Python 3.5+ with a common codebase.
-It is pure Python and requires no dependencies beyond the standard
-library.
-
-It is, in short, a lightweight dependency.
-
-
-CyToolz
--------
-
-The ``toolz`` project has been reimplemented in `Cython <http://cython.org>`__.
-The ``cytoolz`` project is a drop-in replacement for the Pure Python
-implementation.
-See `CyToolz GitHub Page <https://github.com/pytoolz/cytoolz/>`__ for more
-details.
-
-See Also
---------
-
--  `Underscore.js <https://underscorejs.org/>`__: A similar library for
-   JavaScript
--  `Enumerable <https://ruby-doc.org/core-2.0.0/Enumerable.html>`__: A
-   similar library for Ruby
--  `Clojure <https://clojure.org/>`__: A functional language whose
-   standard library has several counterparts in ``toolz``
--  `itertools <https://docs.python.org/2/library/itertools.html>`__: The
-   Python standard library for iterator tools
--  `functools <https://docs.python.org/2/library/functools.html>`__: The
-   Python standard library for function tools
-
-Contributions Welcome
----------------------
-
-``toolz`` aims to be a repository for utility functions, particularly
-those that come from the functional programming and list processing
-traditions. We welcome contributions that fall within this scope.
-
-We also try to keep the API small to keep ``toolz`` manageable.  The ideal
-contribution is significantly different from existing functions and has
-precedent in a few other functional systems.
-
-Please take a look at our
-`issue page <https://github.com/pytoolz/toolz/issues>`__
-for contribution ideas.
-
-Community
----------
-
-See our `mailing list <https://groups.google.com/forum/#!forum/pytoolz>`__.
-We're friendly.
-
-.. |Build Status| image:: 
https://github.com/pytoolz/toolz/workflows/Test/badge.svg
-   :target: https://github.com/pytoolz/toolz/actions
-.. |Coverage Status| image:: 
https://coveralls.io/repos/pytoolz/toolz/badge.svg?branch=master
-   :target: https://coveralls.io/r/pytoolz/toolz
-.. |Version Status| image:: https://badge.fury.io/py/toolz.svg
-   :target: https://badge.fury.io/py/toolz
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/toolz-0.11.2/versioneer.py 
new/toolz-0.12.0/versioneer.py
--- old/toolz-0.11.2/versioneer.py      2021-11-06 06:07:13.000000000 +0100
+++ new/toolz-0.12.0/versioneer.py      2022-07-10 06:29:48.000000000 +0200
@@ -180,7 +180,7 @@
   `setup.cfg`, and `tox.ini`. Projects like these produce multiple PyPI
   distributions (and upload multiple independently-installable tarballs).
 * Source trees whose main purpose is to contain a C library, but which also
-  provide bindings to Python (and perhaps other langauges) in subdirectories.
+  provide bindings to Python (and perhaps other languages) in subdirectories.
 
 Versioneer will look for `.git` in parent directories, and most operations
 should get the right version string. However `pip` and `setuptools` have bugs
@@ -688,7 +688,7 @@
         # TAG-NUM-gHEX
         mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe)
         if not mo:
-            # unparseable. Maybe git-describe is misbehaving?
+            # unparsable. Maybe git-describe is misbehaving?
             pieces["error"] = ("unable to parse git-describe output: '%%s'"
                                %% describe_out)
             return pieces
@@ -1080,7 +1080,7 @@
         # TAG-NUM-gHEX
         mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe)
         if not mo:
-            # unparseable. Maybe git-describe is misbehaving?
+            # unparsable. Maybe git-describe is misbehaving?
             pieces["error"] = ("unable to parse git-describe output: '%s'"
                                % describe_out)
             return pieces

Reply via email to