Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pydash for openSUSE:Factory 
checked in at 2026-01-22 15:19:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pydash (Old)
 and      /work/SRC/openSUSE:Factory/.python-pydash.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pydash"

Thu Jan 22 15:19:07 2026 rev:10 rq:1328661 version:8.0.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pydash/python-pydash.changes      
2025-08-04 15:25:11.394918978 +0200
+++ /work/SRC/openSUSE:Factory/.python-pydash.new.1928/python-pydash.changes    
2026-01-22 15:20:11.269251009 +0100
@@ -1,0 +2,7 @@
+Thu Jan 22 10:09:11 UTC 2026 - Marius Grossu <[email protected]>
+
+- Update to 8.0.6:
+  * Prevent access to object paths containing __globals__ or __builtins__ in 
invoke(). Attempting to access these keys will raise a ``KeyError
+- Updated patch support-new-mypy.patch
+
+-------------------------------------------------------------------

Old:
----
  pydash-8.0.5.tar.gz

New:
----
  pydash-8.0.6.tar.gz

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

Other differences:
------------------
++++++ python-pydash.spec ++++++
--- /var/tmp/diff_new_pack.45UIcN/_old  2026-01-22 15:20:13.425340695 +0100
+++ /var/tmp/diff_new_pack.45UIcN/_new  2026-01-22 15:20:13.441341361 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-pydash
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-pydash
-Version:        8.0.5
+Version:        8.0.6
 Release:        0
 Summary:        The kitchen sink of Python functional utility libraries
 License:        MIT

++++++ pydash-8.0.5.tar.gz -> pydash-8.0.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pydash-8.0.5/CHANGELOG.rst 
new/pydash-8.0.6/CHANGELOG.rst
--- old/pydash-8.0.5/CHANGELOG.rst      2025-01-17 17:01:56.000000000 +0100
+++ new/pydash-8.0.6/CHANGELOG.rst      2026-01-17 17:28:33.000000000 +0100
@@ -3,6 +3,12 @@
 Changelog
 =========
 
+v8.0.6 (2026-01-17)
+-------------------
+
+- Prevent access to object paths containing ``__globals__`` or 
``__builtins__`` in ``invoke(). Attempting to access these keys will raise a 
``KeyError``.
+
+
 v8.0.5 (2025-01-17)
 -------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pydash-8.0.5/PKG-INFO new/pydash-8.0.6/PKG-INFO
--- old/pydash-8.0.5/PKG-INFO   2025-01-17 17:08:45.657986400 +0100
+++ new/pydash-8.0.6/PKG-INFO   2026-01-17 17:42:53.363113000 +0100
@@ -1,18 +1,9 @@
-Metadata-Version: 2.2
+Metadata-Version: 2.4
 Name: pydash
-Version: 8.0.5
+Version: 8.0.6
 Summary: The kitchen sink of Python utility libraries for doing "stuff" in a 
functional way. Based on the Lo-Dash Javascript library.
 Author-email: Derrick Gilland <[email protected]>
-License: MIT License
-        
-        Copyright (c) 2020 Derrick Gilland
-        
-        Permission is hereby granted, free of charge, to any person obtaining 
a copy of this software and associated documentation files (the "Software"), to 
deal in the Software without restriction, including without limitation the 
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 
sell copies of the Software, and to permit persons to whom the Software is 
furnished to do so, subject to the following conditions:
-        
-        The above copyright notice and this permission notice shall be 
included in all copies or substantial portions of the Software.
-        
-        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES 
OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
DEALINGS IN THE SOFTWARE.
-        
+License-Expression: MIT
 Project-URL: Homepage, https://github.com/dgilland/pydash
 Project-URL: Documentation, https://pydash.readthedocs.org
 Project-URL: Repository, https://github.com/dgilland/pydash
@@ -20,20 +11,20 @@
 Project-URL: Changelog, 
https://github.com/dgilland/pydash/blob/develop/CHANGELOG.rst
 Keywords: pydash,utility,functional,lodash,underscore
 Classifier: Development Status :: 5 - Production/Stable
-Classifier: License :: OSI Approved :: MIT License
 Classifier: Intended Audience :: Developers
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
 Classifier: Topic :: Software Development :: Libraries
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
 Classifier: Topic :: Utilities
-Requires-Python: >=3.8
+Requires-Python: >=3.9
 Description-Content-Type: text/x-rst
 License-File: LICENSE.rst
 License-File: AUTHORS.rst
@@ -53,6 +44,7 @@
 Requires-Dist: twine; extra == "dev"
 Requires-Dist: wheel; extra == "dev"
 Requires-Dist: sphinx-autodoc-typehints; extra == "dev"
+Dynamic: license-file
 
 pydash
 ******
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pydash-8.0.5/docs/api.rst 
new/pydash-8.0.6/docs/api.rst
--- old/pydash-8.0.5/docs/api.rst       2019-02-04 02:30:20.000000000 +0100
+++ new/pydash-8.0.6/docs/api.rst       2026-01-07 05:32:59.000000000 +0100
@@ -30,14 +30,14 @@
 
     # OK (importing main module)
     import pydash
-    pydash.where({})
+    pydash.filter_({})
 
     # OK (import from main module)
-    from pydash import where
-    where({})
+    from pydash import filter_
+    filter_({})
 
     # NOT RECOMMENDED (importing from submodule)
-    from pydash.collections import where
+    from pydash.collections import filter_
 
 
 Only the main pydash module API is guaranteed to adhere to semver. It's 
possible that backwards incompatibility outside the main module API could be 
broken between minor releases.
@@ -70,7 +70,6 @@
 
 A full listing of aliased ``py_`` methods:
 
-- ``_.object`` is :func:`pydash.arrays.object_`
 - ``_.slice`` is :func:`pydash.arrays.slice_`
 - ``_.zip`` is :func:`pydash.arrays.zip_`
 - ``_.all`` is :func:`pydash.collections.all_`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pydash-8.0.5/pyproject.toml 
new/pydash-8.0.6/pyproject.toml
--- old/pydash-8.0.5/pyproject.toml     2024-07-22 14:25:37.000000000 +0200
+++ new/pydash-8.0.6/pyproject.toml     2025-10-26 18:40:51.000000000 +0100
@@ -8,25 +8,25 @@
 authors = [{ name = "Derrick Gilland", email = "[email protected]" }]
 description = 'The kitchen sink of Python utility libraries for doing "stuff" 
in a functional way. Based on the Lo-Dash Javascript library.'
 readme = "README.rst"
-license = { file = "LICENSE.rst" }
+license = "MIT"
 keywords = ["pydash", "utility", "functional", "lodash", "underscore"]
 classifiers = [
     "Development Status :: 5 - Production/Stable",
-    "License :: OSI Approved :: MIT License",
     "Intended Audience :: Developers",
     "Operating System :: OS Independent",
     "Programming Language :: Python",
     "Programming Language :: Python :: 3",
-    "Programming Language :: Python :: 3.8",
     "Programming Language :: Python :: 3.9",
     "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",
     "Programming Language :: Python :: 3.12",
+    "Programming Language :: Python :: 3.13",
+    "Programming Language :: Python :: 3.14",
     "Topic :: Software Development :: Libraries",
     "Topic :: Software Development :: Libraries :: Python Modules",
     "Topic :: Utilities",
 ]
-requires-python = ">=3.8"
+requires-python = ">=3.9"
 dependencies = ["typing-extensions>3.10,!=4.6.0"]
 
 [project.urls]
@@ -66,7 +66,7 @@
 extend-include = ["*.pyi"]
 line-length = 100
 # target the lowest supported version to avoid introducing unsupported syntax
-target-version = "py38"
+target-version = "py39"
 
 [tool.ruff.lint]
 select = [
@@ -106,7 +106,7 @@
 
 [tool.mypy]
 mypy_path = ["src"]
-python_version = "3.8"
+python_version = "3.9"
 exclude = [
     "tests/pytest_mypy_testing",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pydash-8.0.5/src/pydash/__init__.py 
new/pydash-8.0.6/src/pydash/__init__.py
--- old/pydash-8.0.5/src/pydash/__init__.py     2025-01-17 16:59:54.000000000 
+0100
+++ new/pydash-8.0.6/src/pydash/__init__.py     2026-01-17 17:31:26.000000000 
+0100
@@ -1,6 +1,6 @@
 """Python port of Lo-Dash."""
 
-__version__ = "8.0.5"
+__version__ = "8.0.6"
 
 from .arrays import (
     chunk,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pydash-8.0.5/src/pydash/helpers.py 
new/pydash-8.0.6/src/pydash/helpers.py
--- old/pydash-8.0.5/src/pydash/helpers.py      2025-01-17 16:41:02.000000000 
+0100
+++ new/pydash-8.0.6/src/pydash/helpers.py      2026-01-17 17:20:19.000000000 
+0100
@@ -96,7 +96,7 @@
         # instance objects are incorrectly reported as accepting varargs when 
they only accept a
         # single argument.
         if isinstance(iteratee, (operator.itemgetter, operator.attrgetter, 
operator.methodcaller)):
-            argcount = 1
+            argcount = 1  # pragma: no cover
         else:
             argspec = inspect.getfullargspec(iteratee)
             if argspec and not argspec.varargs:  # pragma: no cover
@@ -133,7 +133,7 @@
     if isinstance(obj, Mapping):
         return obj.items()
     elif hasattr(obj, "iteritems"):
-        return obj.iteritems()  # noqa: B301
+        return obj.iteritems()
     elif hasattr(obj, "items"):
         return iter(obj.items())
     elif isinstance(obj, Iterable):
@@ -215,10 +215,11 @@
     return value
 
 
-def _raise_if_restricted_key(key):
+def _raise_if_restricted_key(*keys):
     # Prevent access to restricted keys for security reasons.
-    if key in RESTRICTED_KEYS:
-        raise KeyError(f"access to restricted key {key!r} is not allowed")
+    for key in keys:
+        if key in RESTRICTED_KEYS:
+            raise KeyError(f"access to restricted key {key!r} is not allowed")
 
 
 def base_set(obj, key, value, allow_override=True):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pydash-8.0.5/src/pydash/objects.py 
new/pydash-8.0.6/src/pydash/objects.py
--- old/pydash-8.0.5/src/pydash/objects.py      2024-07-22 14:25:37.000000000 
+0200
+++ new/pydash-8.0.6/src/pydash/objects.py      2026-01-17 17:26:27.000000000 
+0100
@@ -14,7 +14,17 @@
 
 import pydash as pyd
 
-from .helpers import UNSET, Unset, base_get, base_set, callit, getargcount, 
iterator, iteriteratee
+from .helpers import (
+    UNSET,
+    Unset,
+    _raise_if_restricted_key,
+    base_get,
+    base_set,
+    callit,
+    getargcount,
+    iterator,
+    iteriteratee,
+)
 from .types import IterateeObjT, PathT
 from .utilities import PathToken, to_path, to_path_tokens
 
@@ -1046,6 +1056,8 @@
     .. versionadded:: 1.0.0
     """
     paths = to_path(path)
+    _raise_if_restricted_key(*paths)
+
     target_path = pyd.initial(paths)
     method_name = pyd.last(paths)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pydash-8.0.5/src/pydash/predicates.py 
new/pydash-8.0.6/src/pydash/predicates.py
--- old/pydash-8.0.5/src/pydash/predicates.py   2024-07-22 14:25:37.000000000 
+0200
+++ new/pydash-8.0.6/src/pydash/predicates.py   2025-10-26 18:32:34.000000000 
+0100
@@ -173,7 +173,7 @@
 
     .. versionadded:: 3.3.0
     """
-    return value > other
+    return bool(value > other)
 
 
 def gt_cmp(other: T) -> t.Callable[["SupportsDunderGT[T]"], bool]:
@@ -222,7 +222,7 @@
 
     .. versionadded:: 3.3.0
     """
-    return value >= other
+    return bool(value >= other)
 
 
 def gte_cmp(other: T) -> t.Callable[["SupportsDunderGE[T]"], bool]:
@@ -271,7 +271,7 @@
 
     .. versionadded:: 3.3.0
     """
-    return value < other
+    return bool(value < other)
 
 
 def lt_cmp(other: T) -> t.Callable[["SupportsDunderLT[T]"], bool]:
@@ -320,7 +320,7 @@
 
     .. versionadded:: 3.3.0
     """
-    return value <= other
+    return bool(value <= other)
 
 
 def lte_cmp(other: T) -> t.Callable[["SupportsDunderLE[T]"], bool]:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pydash-8.0.5/src/pydash.egg-info/PKG-INFO 
new/pydash-8.0.6/src/pydash.egg-info/PKG-INFO
--- old/pydash-8.0.5/src/pydash.egg-info/PKG-INFO       2025-01-17 
17:08:44.000000000 +0100
+++ new/pydash-8.0.6/src/pydash.egg-info/PKG-INFO       2026-01-17 
17:42:51.000000000 +0100
@@ -1,18 +1,9 @@
-Metadata-Version: 2.2
+Metadata-Version: 2.4
 Name: pydash
-Version: 8.0.5
+Version: 8.0.6
 Summary: The kitchen sink of Python utility libraries for doing "stuff" in a 
functional way. Based on the Lo-Dash Javascript library.
 Author-email: Derrick Gilland <[email protected]>
-License: MIT License
-        
-        Copyright (c) 2020 Derrick Gilland
-        
-        Permission is hereby granted, free of charge, to any person obtaining 
a copy of this software and associated documentation files (the "Software"), to 
deal in the Software without restriction, including without limitation the 
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 
sell copies of the Software, and to permit persons to whom the Software is 
furnished to do so, subject to the following conditions:
-        
-        The above copyright notice and this permission notice shall be 
included in all copies or substantial portions of the Software.
-        
-        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES 
OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
DEALINGS IN THE SOFTWARE.
-        
+License-Expression: MIT
 Project-URL: Homepage, https://github.com/dgilland/pydash
 Project-URL: Documentation, https://pydash.readthedocs.org
 Project-URL: Repository, https://github.com/dgilland/pydash
@@ -20,20 +11,20 @@
 Project-URL: Changelog, 
https://github.com/dgilland/pydash/blob/develop/CHANGELOG.rst
 Keywords: pydash,utility,functional,lodash,underscore
 Classifier: Development Status :: 5 - Production/Stable
-Classifier: License :: OSI Approved :: MIT License
 Classifier: Intended Audience :: Developers
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
 Classifier: Topic :: Software Development :: Libraries
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
 Classifier: Topic :: Utilities
-Requires-Python: >=3.8
+Requires-Python: >=3.9
 Description-Content-Type: text/x-rst
 License-File: LICENSE.rst
 License-File: AUTHORS.rst
@@ -53,6 +44,7 @@
 Requires-Dist: twine; extra == "dev"
 Requires-Dist: wheel; extra == "dev"
 Requires-Dist: sphinx-autodoc-typehints; extra == "dev"
+Dynamic: license-file
 
 pydash
 ******
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pydash-8.0.5/tests/test_objects.py 
new/pydash-8.0.6/tests/test_objects.py
--- old/pydash-8.0.5/tests/test_objects.py      2024-07-01 06:17:27.000000000 
+0200
+++ new/pydash-8.0.6/tests/test_objects.py      2026-01-17 17:24:11.000000000 
+0100
@@ -219,6 +219,24 @@
 
 
 @parametrize(
+    "case",
+    [
+        ({}, "__globals__"),
+        ({}, "__builtins__"),
+        ({}, "a.__globals__.b"),
+        ({}, "a.__builtins__.b"),
+        ([], "__globals__"),
+        ([], "__builtins__"),
+        ([], "a.__globals__.b"),
+        ([], "a.__builtins__.b"),
+    ],
+)
+def test_invoke__raises_for_objects_when_path_restricted(case):
+    with pytest.raises(KeyError, match="access to restricted key"):
+        _.invoke(*case)
+
+
+@parametrize(
     "case,expected",
     [
         # NOTE: The expected is a list of values but find_key returns only a 
single
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pydash-8.0.5/tox.ini new/pydash-8.0.6/tox.ini
--- old/pydash-8.0.5/tox.ini    2024-07-21 04:29:07.000000000 +0200
+++ new/pydash-8.0.6/tox.ini    2025-10-26 18:37:08.000000000 +0100
@@ -1,14 +1,15 @@
 [tox]
-envlist = py38, py39, py310, py311, py312
+envlist = py39, py310, py311, py312, py313, py314
 isolated_build = true
 
 [gh-actions]
 python =
-    3.8: py38
     3.9: py39
     3.10: py310
     3.11: py311
     3.12: py312
+    3.13: py313
+    3.14: py314
 
 [testenv]
 passenv = *

++++++ support-new-mypy.patch ++++++
--- /var/tmp/diff_new_pack.45UIcN/_old  2026-01-22 15:20:14.209373308 +0100
+++ /var/tmp/diff_new_pack.45UIcN/_new  2026-01-22 15:20:14.245374806 +0100
@@ -1,21 +1,115 @@
-Index: pydash-8.0.5/pyproject.toml
+Index: pydash-8.0.6/pyproject.toml
 ===================================================================
---- pydash-8.0.5.orig/pyproject.toml
-+++ pydash-8.0.5/pyproject.toml
+--- pydash-8.0.6.orig/pyproject.toml
++++ pydash-8.0.6/pyproject.toml
 @@ -106,7 +106,7 @@ docstring-code-format = true
  
  [tool.mypy]
  mypy_path = ["src"]
--python_version = "3.8"
-+python_version = "3.9"
+-python_version = "3.9"
++python_version = "3.13"
  exclude = [
      "tests/pytest_mypy_testing",
  ]
-Index: pydash-8.0.5/tests/pytest_mypy_testing/test_arrays.py
+Index: pydash-8.0.6/tests/pytest_mypy_testing/test_arrays.py
 ===================================================================
---- pydash-8.0.5.orig/tests/pytest_mypy_testing/test_arrays.py
-+++ pydash-8.0.5/tests/pytest_mypy_testing/test_arrays.py
-@@ -408,7 +408,7 @@ def test_mypy_unshift() -> None:
+--- pydash-8.0.6.orig/tests/pytest_mypy_testing/test_arrays.py
++++ pydash-8.0.6/tests/pytest_mypy_testing/test_arrays.py
+@@ -93,8 +93,8 @@ def test_mypy_find_last_index() -> None:
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_flatten() -> None:
+-    my_list: t.List[t.List[t.Union[int, t.List[int]]]] = [[1], [2, [3]], 
[[4]]]
+-    reveal_type(_.flatten(my_list))  # R: builtins.list[Union[builtins.int, 
builtins.list[builtins.int]]]
++    my_list: t.List[t.List[int | t.List[int]]] = [[1], [2, [3]], [[4]]]
++    reveal_type(_.flatten(my_list))  # R: builtins.list[builtins.int | 
builtins.list[builtins.int]]
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -109,8 +109,8 @@ def test_mypy_flatten_depth() -> None:
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_from_pairs() -> None:
+-    my_list: t.List[t.List[t.Union[str, int]]] = [['a', 1], ['b', 2]]
+-    reveal_type(_.from_pairs(my_list))  # R: 
builtins.dict[Union[builtins.str, builtins.int], Union[builtins.str, 
builtins.int]]
++    my_list: t.List[t.List[str | int]] = [['a', 1], ['b', 2]]
++    reveal_type(_.from_pairs(my_list))  # R: builtins.dict[builtins.str | 
builtins.int, builtins.str | builtins.int]
+ 
+     my_list2: t.List[t.Tuple[str, int]] = [('a', 1), ('b', 2)]
+     reveal_type(_.from_pairs(my_list2))  # R: builtins.dict[builtins.str, 
builtins.int]
+@@ -118,7 +118,7 @@ def test_mypy_from_pairs() -> None:
+ #
+ @pytest.mark.mypy_testing
+ def test_mypy_head() -> None:
+-    reveal_type(_.head([1, 2, 3, 4]))  # R: Union[builtins.int, None]
++    reveal_type(_.head([1, 2, 3, 4]))  # R: builtins.int | None
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -135,7 +135,8 @@ def test_mypy_initial() -> None:
+ @pytest.mark.mypy_testing
+ def test_mypy_intercalate() -> None:
+     my_list: t.List[t.List[int]] = [[2], [3]]
+-    reveal_type(_.intercalate(my_list, 'x'))  # R: 
builtins.list[Union[builtins.int, builtins.str]]
++    reveal_type(_.intercalate(my_list, 'x'))  # R: builtins.list[builtins.int 
| builtins.str]
++
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -168,13 +169,13 @@ def test_mypy_intersection_with() -> Non
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_intersperse() -> None:
+-    my_list: t.List[t.Union[int, t.List[int]]] = [1, [2], [3], 4]
+-    reveal_type(_.intersperse(my_list, 'x'))  # R: 
builtins.list[Union[builtins.int, builtins.list[builtins.int], builtins.str]]
++   my_list: t.List[int | t.List[int]] = [1, [2], [3], 4]
++   reveal_type(_.intersperse(my_list, 'x'))  # R: builtins.list[builtins.int 
| builtins.list[builtins.int] | builtins.str]
+ 
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_last() -> None:
+-    reveal_type(_.last([1, 2, 3, 4]))  # R: Union[builtins.int, None]
++    reveal_type(_.last([1, 2, 3, 4]))  # R: builtins.int | None
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -193,8 +194,8 @@ def test_mypy_mapcat() -> None:
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_nth() -> None:
+-    reveal_type(_.nth([1, 2, 3], 0))  # R: Union[builtins.int, None]
+-    reveal_type(_.nth([11, 22, 33]))  # R: Union[builtins.int, None]
++    reveal_type(_.nth([1, 2, 3], 0))  # R: builtins.int | None
++    reveal_type(_.nth([11, 22, 33]))  # R: builtins.int | None
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -235,8 +236,7 @@ def test_mypy_pull_at() -> None:
+ @pytest.mark.mypy_testing
+ def test_mypy_push() -> None:
+     array = [1, 2, 3]
+-    reveal_type(_.push(array, [4], [6]))  # R: 
builtins.list[Union[builtins.int, builtins.list[builtins.int]]]
+-
++    reveal_type(_.push(array, [4], [6]))  # R: builtins.list[builtins.int | 
builtins.list[builtins.int]]
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_remove() -> None:
+@@ -366,7 +366,7 @@ def test_mypy_take_while() -> None:
+ @pytest.mark.mypy_testing
+ def test_mypy_union() -> None:
+     reveal_type(_.union([1, 2, 3], [2, 3, 4], [3, 4, 5]))  # R: 
builtins.list[builtins.int]
+-    reveal_type(_.union([1, 2, 3], ["hello"]))  # R: 
builtins.list[Union[builtins.int, builtins.str]]
++    reveal_type(_.union([1, 2, 3], ["hello"]))  # R: 
builtins.list[builtins.int | builtins.str]
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -403,12 +403,12 @@ def test_mypy_uniq_with() -> None:
+ def test_mypy_unshift() -> None:
+     array = [1, 2, 3, 4]
+     reveal_type(_.unshift(array, -1, -2))  # R: builtins.list[builtins.int]
+-    reveal_type(_.unshift(array, "hello"))  # R: 
builtins.list[Union[builtins.int, builtins.str]]
++    reveal_type(_.unshift(array, "hello"))  # R: builtins.list[builtins.int | 
builtins.str]
+ 
  
  @pytest.mark.mypy_testing
  def test_mypy_unzip() -> None:
@@ -35,10 +129,19 @@
  
  
  @pytest.mark.mypy_testing
-Index: pydash-8.0.5/tests/pytest_mypy_testing/test_functions.py
+Index: pydash-8.0.6/tests/pytest_mypy_testing/test_functions.py
 ===================================================================
---- pydash-8.0.5.orig/tests/pytest_mypy_testing/test_functions.py
-+++ pydash-8.0.5/tests/pytest_mypy_testing/test_functions.py
+--- pydash-8.0.6.orig/tests/pytest_mypy_testing/test_functions.py
++++ pydash-8.0.6/tests/pytest_mypy_testing/test_functions.py
+@@ -12,7 +12,7 @@ def test_mypy_after() -> None:
+ 
+     after_func = _.after(func, 1)
+     reveal_type(after_func)  # R: pydash.functions.After[[a: builtins.int, b: 
builtins.dict[builtins.str, builtins.int], c: builtins.bytes], builtins.str]
+-    reveal_type(after_func(1, {}, b""))  # R: Union[builtins.str, None]
++    reveal_type(after_func(1, {}, b""))  # R: builtins.str | None
+ 
+ 
+ @pytest.mark.mypy_testing
 @@ -21,8 +21,8 @@ def test_mypy_ary() -> None:
          return (a, b, c, d)
  
@@ -55,7 +158,7 @@
  
      before_func = _.before(func, 3)
 -    reveal_type(before_func(1, 2, 3))  # R: Union[Tuple[builtins.int, 
builtins.int, builtins.int], None]
-+    reveal_type(before_func(1, 2, 3))  # R: Union[tuple[builtins.int, 
builtins.int, builtins.int], None]
++    reveal_type(before_func(1, 2, 3))  # R: tuple[builtins.int, builtins.int, 
builtins.int] | None
  
  
  @pytest.mark.mypy_testing
@@ -151,11 +254,72 @@
 -    reveal_type(wrapper(1))  # R: Tuple[builtins.str, builtins.int]
 +    reveal_type(wrapper)  # R: pydash.functions.Partial[tuple[builtins.str, 
builtins.int]]
 +    reveal_type(wrapper(1))  # R: tuple[builtins.str, builtins.int]
-Index: pydash-8.0.5/tests/pytest_mypy_testing/test_objects.py
+Index: pydash-8.0.6/tests/pytest_mypy_testing/test_objects.py
 ===================================================================
---- pydash-8.0.5.orig/tests/pytest_mypy_testing/test_objects.py
-+++ pydash-8.0.5/tests/pytest_mypy_testing/test_objects.py
-@@ -299,8 +299,8 @@ def test_mypy_to_number() -> None:
+--- pydash-8.0.6.orig/tests/pytest_mypy_testing/test_objects.py
++++ pydash-8.0.6/tests/pytest_mypy_testing/test_objects.py
+@@ -81,8 +81,8 @@ def test_mypy_find_key() -> None:
+     def is_one(x: int) -> bool:
+         return x == 1
+ 
+-    reveal_type(_.find_key({"a": 1, "b": 2, "c": 3}, is_one))  # R: 
Union[builtins.str, None]
+-    reveal_type(_.find_key([1, 2, 3, 4], is_one))  # R: Union[builtins.int, 
None]
++    reveal_type(_.find_key({"a": 1, "b": 2, "c": 3}, is_one))  # R: 
builtins.str | None
++    reveal_type(_.find_key([1, 2, 3, 4], is_one))              # R: 
builtins.int | None
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -90,8 +90,8 @@ def test_mypy_find_last_key() -> None:
+     def is_one(x: int) -> bool:
+         return x == 1
+ 
+-    reveal_type(_.find_last_key({"a": 1, "b": 2, "c": 3}, is_one))  # R: 
Union[builtins.str, None]
+-    reveal_type(_.find_last_key([1, 2, 3, 1], is_one))  # R: 
Union[builtins.int, None]
++    reveal_type(_.find_last_key({"a": 1, "b": 2, "c": 3}, is_one))  # R: 
builtins.str | None
++    reveal_type(_.find_last_key([1, 2, 3, 1], is_one))              # R: 
builtins.int | None
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -115,7 +115,7 @@ def test_mypy_get() -> None:
+     reveal_type(_.get({}, "a.b.c"))  # R: Any
+     reveal_type(_.get({"a": {"b": {"c": [1, 2, 3, 4]}}}, "a.b.c[1]"))  # R: 
Any
+     reveal_type(_.get({"a": {"b": [0, {"c": [1, 2]}]}}, "a.b.1.c.2"))  # R: 
Any
+-    reveal_type(_.get(["a", "b"], 0))  # R: Union[builtins.str, None]
++    reveal_type(_.get(["a", "b"], 0))  # R: builtins.str | None
+     reveal_type(_.get(["a", "b"], 0, "c"))  # R: builtins.str
+     reveal_type(_.get(MyClass(), "x"))  # R: Any
+ 
+@@ -220,8 +220,8 @@ def test_mypy_omit_by() -> None:
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_parse_int() -> None:
+-    reveal_type(_.parse_int("5"))  # R: Union[builtins.int, None]
+-    reveal_type(_.parse_int("12", 8))  # R: Union[builtins.int, None]
++    reveal_type(_.parse_int("5"))        # R: builtins.int | None
++    reveal_type(_.parse_int("12", 8))    # R: builtins.int | None
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -260,7 +260,7 @@ def test_mypy_set_with() -> None:
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_to_boolean() -> None:
+-    reveal_type(_.to_boolean("true"))  # R: Union[builtins.bool, None]
++    reveal_type(_.to_boolean("true"))  # R: builtins.bool | None
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -292,15 +292,15 @@ def test_mypy_to_list() -> None:
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_to_number() -> None:
+-    reveal_type(_.to_number("1234.5678"))  # R: Union[builtins.float, None]
+-    reveal_type(_.to_number("1234.5678", 4))  # R: Union[builtins.float, None]
+-    reveal_type(_.to_number(1, 2))  # R: Union[builtins.float, None]
++    reveal_type(_.to_number("1234.5678"))      # R: builtins.float | None
++    reveal_type(_.to_number("1234.5678", 4))   # R: builtins.float | None
++    reveal_type(_.to_number(1, 2))             # R: builtins.float | None
+ 
  
  @pytest.mark.mypy_testing
  def test_mypy_to_pairs() -> None:
@@ -166,4 +330,84 @@
      reveal_type(_.to_pairs(MyClass()))  # R: builtins.list[Any]
  
  
+Index: pydash-8.0.6/tests/pytest_mypy_testing/test_collections.py
+===================================================================
+--- pydash-8.0.6.orig/tests/pytest_mypy_testing/test_collections.py
++++ pydash-8.0.6/tests/pytest_mypy_testing/test_collections.py
+@@ -7,8 +7,8 @@ import pydash as _
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_at() -> None:
+-    reveal_type(_.at([1, 2, 3, 4], 0, 2))  # R: 
builtins.list[Union[builtins.int, None]]
+-    reveal_type(_.at({"a": 1, "b": 2, "c": 3, "d": 4}, "a", "c"))  # R: 
builtins.list[Union[builtins.int, None]]
++    reveal_type(_.at([1, 2, 3, 4], 0, 2))  # R: builtins.list[builtins.int | 
None]
++    reveal_type(_.at({"a": 1, "b": 2, "c": 3, "d": 4}, "a", "c"))  # R: 
builtins.list[builtins.int | None]
+     reveal_type(_.at({"a": 1, "b": 2, "c": {"d": {"e": 3}}}, "a", ["c", "d", 
"e"]))  # R: builtins.list[Any]
+ 
+ 
+@@ -38,14 +38,14 @@ def test_mypy_filter_() -> None:
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_find() -> None:
+-    reveal_type(_.find([1, 2, 3, 4], lambda x: x >= 3))  # R: 
Union[builtins.int, None]
+-    reveal_type(_.find([{"a": 1}, {"b": 2}, {"a": 1, "b": 2}], {"a": 1}))  # 
R: Union[builtins.dict[builtins.str, builtins.int], None]
++    reveal_type(_.find([1, 2, 3, 4], lambda x: x >= 3))  # R: builtins.int | 
None
++    reveal_type(_.find([{"a": 1}, {"b": 2}, {"a": 1, "b": 2}], {"a": 1}))  # 
R: builtins.dict[builtins.str, builtins.int] | None
+ 
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_find_last() -> None:
+-    reveal_type(_.find_last([1, 2, 3, 4], lambda x: x >= 3))  # R: 
Union[builtins.int, None]
+-    reveal_type(_.find_last([{"a": 1}, {"b": 2}, {"a": 1, "b": 2}], {"a": 
1}))  # R: Union[builtins.dict[builtins.str, builtins.int], None]
++    reveal_type(_.find_last([1, 2, 3, 4], lambda x: x >= 3))  # R: 
builtins.int | None
++    reveal_type(_.find_last([{"a": 1}, {"b": 2}, {"a": 1, "b": 2}], {"a": 
1}))  # R: builtins.dict[builtins.str, builtins.int] | None
+ 
+ 
+ @pytest.mark.mypy_testing
+Index: pydash-8.0.6/tests/pytest_mypy_testing/test_numerical.py
+===================================================================
+--- pydash-8.0.6.orig/tests/pytest_mypy_testing/test_numerical.py
++++ pydash-8.0.6/tests/pytest_mypy_testing/test_numerical.py
+@@ -87,8 +87,8 @@ def test_mypy_max_by() -> None:
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_median() -> None:
+-    reveal_type(_.median([1, 2, 3, 4, 5]))  # R: Union[builtins.float, 
builtins.int]
+-    reveal_type(_.median([1, 2, 3, 4]))  # R: Union[builtins.float, 
builtins.int]
++    reveal_type(_.median([1, 2, 3, 4, 5]))  # R: builtins.float | builtins.int
++    reveal_type(_.median([1, 2, 3, 4]))     # R: builtins.float | builtins.int
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -130,7 +130,7 @@ def test_mypy_multiply() -> None:
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_power() -> None:
+-    reveal_type(_.power(5, 2))  # R: Union[builtins.int, builtins.float]
++    reveal_type(_.power(5, 2))     # R: builtins.int | builtins.float
+     reveal_type(_.power(12.5, 3))  # R: builtins.float
+ 
+ 
+Index: pydash-8.0.6/tests/pytest_mypy_testing/test_utilities.py
+===================================================================
+--- pydash-8.0.6.orig/tests/pytest_mypy_testing/test_utilities.py
++++ pydash-8.0.6/tests/pytest_mypy_testing/test_utilities.py
+@@ -10,7 +10,7 @@ def test_mypy_attempt() -> None:
+     def divide_by_zero(n: int) -> float:
+         return n/0
+ 
+-    reveal_type(_.attempt(divide_by_zero, 1))  # R: Union[builtins.float, 
builtins.Exception]
++    reveal_type(_.attempt(divide_by_zero, 1))  # R: builtins.float | 
builtins.Exception
+ 
+ 
+ @pytest.mark.mypy_testing
+@@ -182,7 +182,7 @@ def test_mypy_properties() -> None:
+ 
+ @pytest.mark.mypy_testing
+ def test_mypy_property_of() -> None:
+-    reveal_type(_.property_of({'a': 1, 'b': 2, 'c': 3}))  # R: def 
(Union[typing.Hashable, builtins.list[typing.Hashable]]) -> Any
++    reveal_type(_.property_of({'a': 1, 'b': 2, 'c': 3}))  # R: def 
(typing.Hashable | builtins.list[typing.Hashable]) -> Any
+ 
+ 
+ @pytest.mark.mypy_testing
 

Reply via email to