From 5d090bbb4dfd80753d23b7b8d53caa35e816ad472e1b727646a7a4dbb2360e00 Mon Sep 17 00:00:00 2001 From: Steve Kowalik Date: Mon, 4 Aug 2025 02:15:32 +0000 Subject: [PATCH] - Add patch support-new-mypy.patch: * Support newer mypy than upstream. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pydash?expand=0&rev=17 --- python-pydash.changes | 6 ++ python-pydash.spec | 4 +- support-new-mypy.patch | 168 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 support-new-mypy.patch diff --git a/python-pydash.changes b/python-pydash.changes index bc95123..f8476e1 100644 --- a/python-pydash.changes +++ b/python-pydash.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Aug 4 02:14:58 UTC 2025 - Steve Kowalik + +- Add patch support-new-mypy.patch: + * Support newer mypy than upstream. + ------------------------------------------------------------------- Wed Feb 5 13:06:20 UTC 2025 - John Paul Adrian Glaubitz diff --git a/python-pydash.spec b/python-pydash.spec index 71a788f..8bce0d9 100644 --- a/python-pydash.spec +++ b/python-pydash.spec @@ -1,7 +1,7 @@ # # spec file for package python-pydash # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 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 @@ -24,6 +24,8 @@ Summary: The kitchen sink of Python functional utility libraries License: MIT URL: https://github.com/dgilland/pydash Source: https://files.pythonhosted.org/packages/source/p/pydash/pydash-%{version}.tar.gz +# PATCH-FIX-OPENSUSE Support newer mypy +Patch0: support-new-mypy.patch BuildRequires: %{python_module base >= 3.8} BuildRequires: %{python_module invoke} BuildRequires: %{python_module pip} diff --git a/support-new-mypy.patch b/support-new-mypy.patch new file mode 100644 index 0000000..cd857f6 --- /dev/null +++ b/support-new-mypy.patch @@ -0,0 +1,168 @@ +Index: pydash-8.0.5/pyproject.toml +=================================================================== +--- pydash-8.0.5.orig/pyproject.toml ++++ pydash-8.0.5/pyproject.toml +@@ -106,7 +106,7 @@ docstring-code-format = true + + [tool.mypy] + mypy_path = ["src"] +-python_version = "3.8" ++python_version = "3.9" + exclude = [ + "tests/pytest_mypy_testing", + ] +Index: pydash-8.0.5/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: + + @pytest.mark.mypy_testing + def test_mypy_unzip() -> None: +- reveal_type(_.unzip([(1, 4, 7), (2, 5, 8), (3, 6, 9)])) # R: builtins.list[Tuple[builtins.int, builtins.int, builtins.int]] ++ reveal_type(_.unzip([(1, 4, 7), (2, 5, 8), (3, 6, 9)])) # R: builtins.list[tuple[builtins.int, builtins.int, builtins.int]] + + + @pytest.mark.mypy_testing +@@ -446,8 +446,8 @@ def test_mypy_xor_with() -> None: + + @pytest.mark.mypy_testing + def test_mypy_zip_() -> None: +- reveal_type(_.zip_([1, 2, 3], [4, 5, 6], [7, 8, 9])) # R: builtins.list[Tuple[builtins.int, builtins.int, builtins.int]] +- reveal_type(_.zip_([1, 2, 3], ["one", "two", "three"])) # R: builtins.list[Tuple[builtins.int, builtins.str]] ++ reveal_type(_.zip_([1, 2, 3], [4, 5, 6], [7, 8, 9])) # R: builtins.list[tuple[builtins.int, builtins.int, builtins.int]] ++ reveal_type(_.zip_([1, 2, 3], ["one", "two", "three"])) # R: builtins.list[tuple[builtins.int, builtins.str]] + + + @pytest.mark.mypy_testing +Index: pydash-8.0.5/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 +@@ -21,8 +21,8 @@ def test_mypy_ary() -> None: + return (a, b, c, d) + + ary_func = _.ary(func, 2) +- reveal_type(ary_func(1, 2, 3, 4, 5, 6)) # R: Tuple[builtins.int, builtins.int, builtins.int, builtins.int] +- reveal_type(ary_func(1, 2, 3, 4, 5, 6, c=10, d=20)) # R: Tuple[builtins.int, builtins.int, builtins.int, builtins.int] ++ reveal_type(ary_func(1, 2, 3, 4, 5, 6)) # R: tuple[builtins.int, builtins.int, builtins.int, builtins.int] ++ reveal_type(ary_func(1, 2, 3, 4, 5, 6, c=10, d=20)) # R: tuple[builtins.int, builtins.int, builtins.int, builtins.int] + + + @pytest.mark.mypy_testing +@@ -31,7 +31,7 @@ def test_mypy_before() -> None: + return (a, b, c) + + 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] + + + @pytest.mark.mypy_testing +@@ -51,16 +51,16 @@ def test_mypy_curry() -> None: + return (a, b, c) + + currier = _.curry(func) +- reveal_type(currier) # R: pydash.functions.CurryThree[builtins.int, builtins.str, builtins.bytes, Tuple[builtins.int, builtins.str, builtins.bytes]] ++ reveal_type(currier) # R: pydash.functions.CurryThree[builtins.int, builtins.str, builtins.bytes, tuple[builtins.int, builtins.str, builtins.bytes]] + + currier1 = currier(1) +- reveal_type(currier1) # R: pydash.functions.CurryTwo[builtins.str, builtins.bytes, Tuple[builtins.int, builtins.str, builtins.bytes]] ++ reveal_type(currier1) # R: pydash.functions.CurryTwo[builtins.str, builtins.bytes, tuple[builtins.int, builtins.str, builtins.bytes]] + + currier2 = currier1("hi") +- reveal_type(currier2) # R: pydash.functions.CurryOne[builtins.bytes, Tuple[builtins.int, builtins.str, builtins.bytes]] ++ reveal_type(currier2) # R: pydash.functions.CurryOne[builtins.bytes, tuple[builtins.int, builtins.str, builtins.bytes]] + + currier3 = currier2(b"hi again") +- reveal_type(currier3) # R: Tuple[builtins.int, builtins.str, builtins.bytes] ++ reveal_type(currier3) # R: tuple[builtins.int, builtins.str, builtins.bytes] + + + @pytest.mark.mypy_testing +@@ -69,16 +69,16 @@ def test_mypy_curry_right() -> None: + return (a, b, c) + + currier = _.curry_right(func) +- reveal_type(currier) # R: pydash.functions.CurryRightThree[builtins.bytes, builtins.str, builtins.int, Tuple[builtins.int, builtins.str, builtins.bytes]] ++ reveal_type(currier) # R: pydash.functions.CurryRightThree[builtins.bytes, builtins.str, builtins.int, tuple[builtins.int, builtins.str, builtins.bytes]] + + currier1 = currier(b"hi again") +- reveal_type(currier1) # R: pydash.functions.CurryRightTwo[builtins.str, builtins.int, Tuple[builtins.int, builtins.str, builtins.bytes]] ++ reveal_type(currier1) # R: pydash.functions.CurryRightTwo[builtins.str, builtins.int, tuple[builtins.int, builtins.str, builtins.bytes]] + + currier2 = currier1("hi") +- reveal_type(currier2) # R: pydash.functions.CurryRightOne[builtins.int, Tuple[builtins.int, builtins.str, builtins.bytes]] ++ reveal_type(currier2) # R: pydash.functions.CurryRightOne[builtins.int, tuple[builtins.int, builtins.str, builtins.bytes]] + + currier3 = currier2(1) +- reveal_type(currier3) # R: Tuple[builtins.int, builtins.str, builtins.bytes] ++ reveal_type(currier3) # R: tuple[builtins.int, builtins.str, builtins.bytes] + + + @pytest.mark.mypy_testing +@@ -88,8 +88,8 @@ def test_mypy_debounce() -> None: + + debounced = _.debounce(func, 5000) + +- reveal_type(debounced) # R: pydash.functions.Debounce[[a: builtins.int, b: builtins.str], Tuple[builtins.int, builtins.str]] +- reveal_type(debounced(5, "hi")) # R: Tuple[builtins.int, builtins.str] ++ reveal_type(debounced) # R: pydash.functions.Debounce[[a: builtins.int, b: builtins.str], tuple[builtins.int, builtins.str]] ++ reveal_type(debounced(5, "hi")) # R: tuple[builtins.int, builtins.str] + + + @pytest.mark.mypy_testing +@@ -97,7 +97,7 @@ def test_mypy_delay() -> None: + def func(a: int, b: str) -> t.Tuple[int, str]: + return (a, b) + +- reveal_type(_.delay(func, 0, 5, "hi")) # R: Tuple[builtins.int, builtins.str] ++ reveal_type(_.delay(func, 0, 5, "hi")) # R: tuple[builtins.int, builtins.str] + + + @pytest.mark.mypy_testing +@@ -119,7 +119,7 @@ def test_mypy_flip() -> None: + def func(a: int, b: str, c: bytes) -> t.Tuple[int, str, bytes]: + return (a, b, c) + +- reveal_type(_.flip(func)) # R: def (builtins.bytes, builtins.str, builtins.int) -> Tuple[builtins.int, builtins.str, builtins.bytes] ++ reveal_type(_.flip(func)) # R: def (builtins.bytes, builtins.str, builtins.int) -> tuple[builtins.int, builtins.str, builtins.bytes] + + + @pytest.mark.mypy_testing +@@ -271,9 +271,9 @@ def test_mypy_unary() -> None: + return (a, b, c, d) + + unary_func = _.unary(func) +- reveal_type(unary_func) # R: pydash.functions.Ary[Tuple[builtins.int, builtins.int, builtins.int, builtins.int]] +- reveal_type(unary_func(1, 2, 3, 4, 5, 6)) # R: Tuple[builtins.int, builtins.int, builtins.int, builtins.int] +- reveal_type(unary_func(1, 2, 3, 4, 5, 6, c=10, d=20)) # R: Tuple[builtins.int, builtins.int, builtins.int, builtins.int] ++ reveal_type(unary_func) # R: pydash.functions.Ary[tuple[builtins.int, builtins.int, builtins.int, builtins.int]] ++ reveal_type(unary_func(1, 2, 3, 4, 5, 6)) # R: tuple[builtins.int, builtins.int, builtins.int, builtins.int] ++ reveal_type(unary_func(1, 2, 3, 4, 5, 6, c=10, d=20)) # R: tuple[builtins.int, builtins.int, builtins.int, builtins.int] + + + @pytest.mark.mypy_testing +@@ -282,5 +282,5 @@ def test_mypy_wrap() -> None: + return (x, y) + + wrapper = _.wrap('hello', as_tuple) +- reveal_type(wrapper) # R: pydash.functions.Partial[Tuple[builtins.str, builtins.int]] +- 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 +=================================================================== +--- 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: + + @pytest.mark.mypy_testing + def test_mypy_to_pairs() -> None: +- reveal_type(_.to_pairs([1, 2, 3, 4])) # R: builtins.list[Tuple[builtins.int, builtins.int]] +- reveal_type(_.to_pairs({"a": 1})) # R: builtins.list[Tuple[builtins.str, builtins.int]] ++ reveal_type(_.to_pairs([1, 2, 3, 4])) # R: builtins.list[tuple[builtins.int, builtins.int]] ++ reveal_type(_.to_pairs({"a": 1})) # R: builtins.list[tuple[builtins.str, builtins.int]] + reveal_type(_.to_pairs(MyClass())) # R: builtins.list[Any] + +