Z0Z-tools 3.2.2__tar.gz → 3.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. {z0z_tools-3.2.2/Z0Z_tools.egg-info → z0z_tools-3.2.3}/PKG-INFO +2 -2
  2. {z0z_tools-3.2.2 → z0z_tools-3.2.3/Z0Z_tools.egg-info}/PKG-INFO +2 -2
  3. z0z_tools-3.2.3/humpy_cytoolz/functoolz.pyi +354 -0
  4. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/functoolz.py +7 -1
  5. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/pyproject.toml +2 -2
  6. z0z_tools-3.2.2/humpy_cytoolz/functoolz.pyi +0 -192
  7. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/LICENSE +0 -0
  8. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/LICENSE-Rocklin +0 -0
  9. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/LICENSE-Welch +0 -0
  10. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/README.md +0 -0
  11. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/Z0Z_tools/__init__.py +0 -0
  12. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/Z0Z_tools/functionsNeedAHome.py +0 -0
  13. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/Z0Z_tools/py.typed +0 -0
  14. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/Z0Z_tools.egg-info/SOURCES.txt +0 -0
  15. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/Z0Z_tools.egg-info/dependency_links.txt +0 -0
  16. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/Z0Z_tools.egg-info/requires.txt +0 -0
  17. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/Z0Z_tools.egg-info/top_level.txt +0 -0
  18. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/__init__.pxd +0 -0
  19. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/__init__.py +0 -0
  20. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/__init__.pyi +0 -0
  21. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/_signatures.py +0 -0
  22. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/_signatures.pyi +0 -0
  23. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/cpython.pxd +0 -0
  24. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/curried/__init__.py +0 -0
  25. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/curried/exceptions.py +0 -0
  26. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/curried/exceptions.pyi +0 -0
  27. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/curried/operator.py +0 -0
  28. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/dicttoolz.c +0 -0
  29. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/dicttoolz.pxd +0 -0
  30. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/dicttoolz.pyi +0 -0
  31. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/dicttoolz.pyx +0 -0
  32. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/functoolz.c +0 -0
  33. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/functoolz.pxd +0 -0
  34. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/functoolz.pyx +0 -0
  35. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/itertoolz.c +0 -0
  36. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/itertoolz.pxd +0 -0
  37. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/itertoolz.pyi +0 -0
  38. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/itertoolz.pyx +0 -0
  39. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/py.typed +0 -0
  40. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/recipes.c +0 -0
  41. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/recipes.pxd +0 -0
  42. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/recipes.pyi +0 -0
  43. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/recipes.pyx +0 -0
  44. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/__init__.py +0 -0
  45. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/dev_skip_test.py +0 -0
  46. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_curried.py +0 -0
  47. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_curried_toolzlike.py +0 -0
  48. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_dev_skip_test.py +0 -0
  49. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_dicttoolz.py +0 -0
  50. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_docstrings.py +0 -0
  51. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_doctests.py +0 -0
  52. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_embedded_sigs.py +0 -0
  53. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_functoolz.py +0 -0
  54. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_get.py +0 -0
  55. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_inspect_args.py +0 -0
  56. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_itertoolz.py +0 -0
  57. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_none_safe.py +0 -0
  58. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_recipes.py +0 -0
  59. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_serialization.py +0 -0
  60. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_signatures.py +0 -0
  61. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_stubs.py +0 -0
  62. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_tlz.py +0 -0
  63. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/test_utils.py +0 -0
  64. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/typeAssertions_dicttoolz.py +0 -0
  65. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/tests/typeAssertions_get.py +0 -0
  66. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/theTypes.py +0 -0
  67. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/utils.c +0 -0
  68. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/utils.pxd +0 -0
  69. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/utils.pyi +0 -0
  70. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_cytoolz/utils.pyx +0 -0
  71. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_tlz/__init__.py +0 -0
  72. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_tlz/_build_tlz.py +0 -0
  73. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/__init__.py +0 -0
  74. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/_signatures.py +0 -0
  75. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/curried/__init__.py +0 -0
  76. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/curried/exceptions.py +0 -0
  77. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/curried/operator.py +0 -0
  78. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/curried/toolz.py +0 -0
  79. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/dicttoolz.py +0 -0
  80. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/itertoolz.py +0 -0
  81. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/py.typed +0 -0
  82. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/recipes.py +0 -0
  83. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/sandbox/__init__.py +0 -0
  84. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/sandbox/core.py +0 -0
  85. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/sandbox/parallel.py +0 -0
  86. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/sandbox/tests/__init__.py +0 -0
  87. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/sandbox/tests/test_core.py +0 -0
  88. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/sandbox/tests/test_parallel.py +0 -0
  89. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/__init__.py +0 -0
  90. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_curried.py +0 -0
  91. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_curried_doctests.py +0 -0
  92. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_dicttoolz.py +0 -0
  93. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_functoolz.py +0 -0
  94. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_get.py +0 -0
  95. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_inspect_args.py +0 -0
  96. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_itertoolz.py +0 -0
  97. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_package.py +0 -0
  98. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_recipes.py +0 -0
  99. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_serialization.py +0 -0
  100. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_signatures.py +0 -0
  101. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_tlz.py +0 -0
  102. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/test_utils.py +0 -0
  103. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/typeAssertions_dicttoolz.py +0 -0
  104. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/tests/typeAssertions_get.py +0 -0
  105. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/theTypes.py +0 -0
  106. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/humpy_toolz/utils.py +0 -0
  107. {z0z_tools-3.2.2 → z0z_tools-3.2.3}/setup.cfg +0 -0
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Z0Z_tools
3
- Version: 3.2.2
3
+ Version: 3.2.3
4
4
  Summary: Typing, documenting, and improving toolz and cytoolz.
5
5
  Author-email: Hunter Hogan <HunterHogan@pm.me>
6
6
  License-Expression: CC-BY-NC-4.0
7
- Project-URL: Context7, https://context7.com/hunterhogan/z0z-tools
7
+ Project-URL: Context7, https://context7.com/hunterhogan/z0z_tools
8
8
  Project-URL: Donate, https://www.patreon.com/integrated
9
9
  Project-URL: Download, https://pypi.org/project/Z0Z_tools
10
10
  Project-URL: Homepage, https://github.com/hunterhogan/Z0Z_tools
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Z0Z_tools
3
- Version: 3.2.2
3
+ Version: 3.2.3
4
4
  Summary: Typing, documenting, and improving toolz and cytoolz.
5
5
  Author-email: Hunter Hogan <HunterHogan@pm.me>
6
6
  License-Expression: CC-BY-NC-4.0
7
- Project-URL: Context7, https://context7.com/hunterhogan/z0z-tools
7
+ Project-URL: Context7, https://context7.com/hunterhogan/z0z_tools
8
8
  Project-URL: Donate, https://www.patreon.com/integrated
9
9
  Project-URL: Download, https://pypi.org/project/Z0Z_tools
10
10
  Project-URL: Homepage, https://github.com/hunterhogan/Z0Z_tools
@@ -0,0 +1,354 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Callable, Iterable, Mapping
4
+ from functools import partial
5
+ from typing import Any, Concatenate, overload
6
+ import inspect
7
+
8
+ type CurryState = tuple[Any, ...]
9
+ type _Getter[_Instance, _T] = Callable[[_Instance], _T]
10
+ type _Setter[_Instance, _T] = Callable[[_Instance, _T], None]
11
+ type _Deleter[_Instance] = Callable[[_Instance], None]
12
+ type InstancePropertyState[_Instance, _T] = tuple[_Getter[_Instance, _T] | None, _Setter[_Instance, _T] | None, _Deleter[_Instance] | None, str | None, _T | None]
13
+ PYPY: bool
14
+ __all__: tuple[str, ...] = ('apply', 'complement', 'compose', 'compose_left', 'curry', 'do', 'excepts', 'flip', 'identity', 'juxt', 'memoize', 'pipe', 'thread_first', 'thread_last')
15
+
16
+ def identity[T](x: T) -> T:
17
+ ...
18
+
19
+ @overload
20
+ def apply[**P, T](func: Callable[P, T], *args: P.args, **kwargs: P.kwargs) -> T:
21
+ ...
22
+
23
+ @overload
24
+ def apply(*func_and_args: Any, **kwargs: Any) -> Any:
25
+ ...
26
+
27
+ def apply(*func_and_args: Any, **kwargs: Any) -> Any:
28
+ ...
29
+
30
+ def thread_first[T, R](val: T, *forms: Callable[[T], R] | tuple[Callable[..., R], Any]) -> R:
31
+ ...
32
+
33
+ def thread_last[T, U](val: T, *forms: Callable[[T], U] | tuple[Callable[..., U], ...]) -> U:
34
+ ...
35
+
36
+ @overload
37
+ def instanceproperty[Instance, T](fget: _Getter[Instance, T], fset: _Setter[Instance, T] | None=..., fdel: _Deleter[Instance] | None=..., doc: str | None=..., classval: T | None=...) -> InstanceProperty[Instance, T]:
38
+ ...
39
+
40
+ @overload
41
+ def instanceproperty[Instance, T](fget: None=None, fset: _Setter[Instance, T] | None=..., fdel: _Deleter[Instance] | None=..., doc: str | None=..., classval: T | None=...) -> Callable[[_Getter[Instance, T]], InstanceProperty[Instance, T]]:
42
+ ...
43
+
44
+ def instanceproperty[Instance, T](fget: _Getter[Instance, T] | None=None, fset: _Setter[Instance, T] | None=None, fdel: _Deleter[Instance] | None=None, doc: str | None=None, classval: T | None=None) -> InstanceProperty[Instance, T] | Callable[[_Getter[Instance, T]], InstanceProperty[Instance, T]]:
45
+ ...
46
+
47
+ class InstanceProperty[Instance, T](property):
48
+
49
+ def __init__(self, fget: _Getter[Instance, T] | None=None, fset: _Setter[Instance, T] | None=None, fdel: _Deleter[Instance] | None=None, doc: str | None=None, classval: T | None=None) -> None:
50
+ ...
51
+
52
+ @overload
53
+ def __get__(self, obj: None, type: type | None=...) -> T | None:
54
+ ...
55
+
56
+ @overload
57
+ def __get__(self, obj: Instance, type: type | None=...) -> T:
58
+ ...
59
+
60
+ def __get__(self, obj: Instance | None, type: type | None=None) -> T | None:
61
+ ...
62
+
63
+ def __reduce__(self) -> tuple[type[InstanceProperty[Any, Any]], InstancePropertyState[Callable[..., Any], Any]]:
64
+ ...
65
+
66
+ class curry[**P, T]:
67
+
68
+ @overload
69
+ def __init__(self, func: curry[P, T] | partial[T], /, *args: Any, **kwargs: Any) -> None:
70
+ ...
71
+
72
+ @overload
73
+ def __init__(self, func: Callable[P, T], /, *args: Any, **kwargs: Any) -> None:
74
+ ...
75
+
76
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
77
+ ...
78
+
79
+ @instanceproperty
80
+ def func(self) -> Callable[P, T]:
81
+ ...
82
+
83
+ @instanceproperty
84
+ def __signature__(self) -> inspect.Signature:
85
+ ...
86
+
87
+ @instanceproperty
88
+ def args(self) -> tuple[Any, ...]:
89
+ ...
90
+
91
+ @instanceproperty
92
+ def keywords(self) -> dict[str, Any]:
93
+ ...
94
+
95
+ @instanceproperty
96
+ def func_name(self) -> str:
97
+ ...
98
+
99
+ def __str__(self) -> str:
100
+ ...
101
+
102
+ def __repr__(self) -> str:
103
+ ...
104
+
105
+ def __hash__(self) -> int:
106
+ ...
107
+
108
+ def __eq__(self, other: object) -> bool:
109
+ ...
110
+
111
+ def __ne__(self, other: object) -> bool:
112
+ ...
113
+
114
+ @overload
115
+ def __call__(self, *args: P.args, **kwargs: P.kwargs) -> T:
116
+ ...
117
+
118
+ @overload
119
+ def __call__[First, **Remaining](self: curry[Concatenate[First, Remaining], T], first: First, /) -> curry[Remaining, T]:
120
+ ...
121
+
122
+ @overload
123
+ def __call__[First, Second, **Remaining](self: curry[Concatenate[First, Second, Remaining], T], first: First, second: Second, /) -> curry[Remaining, T]:
124
+ ...
125
+
126
+ @overload
127
+ def __call__(self, *args: Any, **kwargs: Any) -> curry[P, T]:
128
+ ...
129
+
130
+ def __call__(self, *args: Any, **kwargs: Any) -> T | curry[P, T]:
131
+ ...
132
+
133
+ def _should_curry(self, args: tuple[Any, ...], kwargs: dict[str, Any], exc: TypeError | None=None) -> bool:
134
+ ...
135
+
136
+ def bind(self, *args: Any, **kwargs: Any) -> curry[P, T]:
137
+ ...
138
+
139
+ def call(self, *args: Any, **kwargs: Any) -> T:
140
+ ...
141
+
142
+ def __get__(self, instance: object | None, owner: type | None) -> curry[P, T]:
143
+ ...
144
+
145
+ def __reduce__(self) -> tuple[Callable[..., T], CurryState]:
146
+ ...
147
+
148
+ def _restore_curry[**P, T](cls: type[curry[P, T]], func: str | Callable[P, T], args: tuple[Any, ...], kwargs: Mapping[str, Any] | None, userdict: Iterable[tuple[str, Any]], is_decorated: bool | None) -> curry[P, T] | Callable[P, T]:
149
+ ...
150
+
151
+ @curry
152
+ def memoize[T](func: Callable[..., T], cache: dict[Any, T] | None=None, key: Callable[[tuple[Any, ...], Mapping[str, Any]], Any] | None=None) -> Callable[..., T]:
153
+ ...
154
+
155
+ class Compose:
156
+ first: Callable[..., Any]
157
+ funcs: tuple[Callable[..., Any], ...]
158
+
159
+ def __init__(self, funcs: Iterable[Callable[..., Any]]) -> None:
160
+ ...
161
+
162
+ def __call__(self, *args: Any, **kwargs: Any) -> Any:
163
+ ...
164
+
165
+ def __getstate__(self) -> tuple[Callable[..., Any], tuple[Callable[..., Any], ...]]:
166
+ ...
167
+
168
+ def __setstate__(self, state: tuple[Callable[..., Any], tuple[Callable[..., Any], ...]]) -> None:
169
+ ...
170
+
171
+ @instanceproperty(classval=__doc__)
172
+ def __doc__(self) -> str:
173
+ ...
174
+
175
+ @property
176
+ def __name__(self) -> str:
177
+ ...
178
+
179
+ def __repr__(self) -> str:
180
+ ...
181
+
182
+ def __eq__(self, other: object) -> bool:
183
+ ...
184
+
185
+ def __ne__(self, other: object) -> bool:
186
+ ...
187
+
188
+ def __hash__(self) -> int:
189
+ ...
190
+
191
+ def __get__(self, obj: object | None, objtype: type | None=None) -> Compose:
192
+ ...
193
+
194
+ @instanceproperty
195
+ def __signature__(self) -> inspect.Signature:
196
+ ...
197
+
198
+ @overload
199
+ def compose[**P, T](fn_0: Callable[P, T]) -> Callable[P, T]:
200
+ ...
201
+
202
+ @overload
203
+ def compose[**P, T0, T1](fn_0: Callable[[T0], T1], fn_1: Callable[P, T0]) -> Callable[P, T1]:
204
+ ...
205
+
206
+ @overload
207
+ def compose[**P, T0, T1, T2](fn_0: Callable[[T1], T2], fn_1: Callable[[T0], T1], fn_2: Callable[P, T0]) -> Callable[P, T2]:
208
+ ...
209
+
210
+ @overload
211
+ def compose[**P, T0, T1, T2, T3](fn_0: Callable[[T2], T3], fn_1: Callable[[T1], T2], fn_2: Callable[[T0], T1], fn_3: Callable[P, T0]) -> Callable[P, T3]:
212
+ ...
213
+
214
+ @overload
215
+ def compose[**P, T0, T1, T2, T3, T4](fn_0: Callable[[T3], T4], fn_1: Callable[[T2], T3], fn_2: Callable[[T1], T2], fn_3: Callable[[T0], T1], fn_4: Callable[P, T0]) -> Callable[P, T4]:
216
+ ...
217
+
218
+ @overload
219
+ def compose[**P, T0, T1, T2, T3, T4, T5](fn_0: Callable[[T4], T5], fn_1: Callable[[T3], T4], fn_2: Callable[[T2], T3], fn_3: Callable[[T1], T2], fn_4: Callable[[T0], T1], fn_5: Callable[P, T0]) -> Callable[P, T5]:
220
+ ...
221
+
222
+ @overload
223
+ def compose(*funcs: Callable[..., Any]) -> Callable[..., Any]:
224
+ ...
225
+
226
+ def compose(*funcs: Callable[..., Any]) -> Callable[..., Any]:
227
+ ...
228
+
229
+ @overload
230
+ def compose_left[**P, T](fn_0: Callable[P, T]) -> Callable[P, T]:
231
+ ...
232
+
233
+ @overload
234
+ def compose_left[**P, T0, T1](fn_0: Callable[P, T0], fn_1: Callable[[T0], T1]) -> Callable[P, T1]:
235
+ ...
236
+
237
+ @overload
238
+ def compose_left[**P, T0, T1, T2](fn_0: Callable[P, T0], fn_1: Callable[[T0], T1], fn_2: Callable[[T1], T2]) -> Callable[P, T2]:
239
+ ...
240
+
241
+ @overload
242
+ def compose_left[**P, T0, T1, T2, T3](fn_0: Callable[P, T0], fn_1: Callable[[T0], T1], fn_2: Callable[[T1], T2], fn_3: Callable[[T2], T3]) -> Callable[P, T3]:
243
+ ...
244
+
245
+ @overload
246
+ def compose_left[**P, T0, T1, T2, T3, T4](fn_0: Callable[P, T0], fn_1: Callable[[T0], T1], fn_2: Callable[[T1], T2], fn_3: Callable[[T2], T3], fn_4: Callable[[T3], T4]) -> Callable[P, T4]:
247
+ ...
248
+
249
+ @overload
250
+ def compose_left[**P, T0, T1, T2, T3, T4, T5](fn_0: Callable[P, T0], fn_1: Callable[[T0], T1], fn_2: Callable[[T1], T2], fn_3: Callable[[T2], T3], fn_4: Callable[[T3], T4], fn_5: Callable[[T4], T5]) -> Callable[P, T5]:
251
+ ...
252
+
253
+ @overload
254
+ def compose_left(*funcs: Callable[..., Any]) -> Callable[..., Any]:
255
+ ...
256
+
257
+ def compose_left(*funcs: Callable[..., Any]) -> Callable[..., Any]:
258
+ ...
259
+
260
+ @overload
261
+ def pipe[T0, T1](data: T0, fn_0: Callable[[T0], T1]) -> T1:
262
+ ...
263
+
264
+ @overload
265
+ def pipe[T0, T1, T2](data: T0, fn_0: Callable[[T0], T1], fn_1: Callable[[T1], T2]) -> T2:
266
+ ...
267
+
268
+ @overload
269
+ def pipe[T0, T1, T2, T3](data: T0, fn_0: Callable[[T0], T1], fn_1: Callable[[T1], T2], fn_2: Callable[[T2], T3]) -> T3:
270
+ ...
271
+
272
+ @overload
273
+ def pipe[T0, T1, T2, T3, T4](data: T0, fn_0: Callable[[T0], T1], fn_1: Callable[[T1], T2], fn_2: Callable[[T2], T3], fn_3: Callable[[T3], T4]) -> T4:
274
+ ...
275
+
276
+ @overload
277
+ def pipe[T0, T1, T2, T3, T4, T5](data: T0, fn_0: Callable[[T0], T1], fn_1: Callable[[T1], T2], fn_2: Callable[[T2], T3], fn_3: Callable[[T3], T4], fn_4: Callable[[T4], T5]) -> T5:
278
+ ...
279
+
280
+ @overload
281
+ def pipe[T0, T1, T2, T3, T4, T5, T6](data: T0, fn_0: Callable[[T0], T1], fn_1: Callable[[T1], T2], fn_2: Callable[[T2], T3], fn_3: Callable[[T3], T4], fn_4: Callable[[T4], T5], fn_5: Callable[[T5], T6]) -> T6:
282
+ ...
283
+
284
+ @overload
285
+ def pipe(data: Any, *funcs: Callable[..., Any]) -> Any:
286
+ ...
287
+
288
+ def pipe(data: Any, *funcs: Callable[..., Any]) -> Any:
289
+ ...
290
+
291
+ def complement[**P](func: Callable[P, bool]) -> Callable[P, bool]:
292
+ ...
293
+
294
+ class juxt[**P, T]:
295
+ funcs: tuple[Callable[..., Any], ...]
296
+
297
+ def __init__(self, *funcs: Callable[..., Any] | Iterable[Callable[..., Any]]) -> None:
298
+ ...
299
+
300
+ def __call__(self, *args: Any, **kwargs: Any) -> tuple[Any, ...]:
301
+ ...
302
+
303
+ def __getstate__(self) -> tuple[Callable[..., Any], ...]:
304
+ ...
305
+
306
+ def __setstate__(self, state: tuple[Callable[..., Any], ...]) -> None:
307
+ ...
308
+
309
+ def do[T](func: Callable[[T], Any], x: T) -> T:
310
+ ...
311
+
312
+ @curry
313
+ def flip[T, U, R](func: Callable[[T, U], R], a: U, b: T) -> R:
314
+ ...
315
+
316
+ def return_none(exc: Exception) -> None:
317
+ ...
318
+
319
+ class excepts[**P, T]:
320
+
321
+ def __init__(self, exc: type[Exception] | tuple[type[Exception], ...], func: Callable[P, T], handler: Callable[[Exception], T]=return_none) -> None:
322
+ ...
323
+
324
+ def __call__(self, *args: P.args, **kwargs: P.kwargs) -> T:
325
+ ...
326
+
327
+ @instanceproperty(classval=__doc__)
328
+ def __doc__(self) -> str:
329
+ ...
330
+
331
+ @property
332
+ def __name__(self) -> str:
333
+ ...
334
+
335
+ def _check_sigspec[T](sigspec: inspect.Signature | None, func: Callable[..., Any], builtin_func: Callable[..., T], *builtin_args: Any) -> tuple[inspect.Signature | None, T | bool | None]:
336
+ ...
337
+
338
+ def num_required_args(func: Callable[..., Any], sigspec: inspect.Signature | None=None) -> int | None:
339
+ ...
340
+
341
+ def has_varargs(func: Callable[..., Any], sigspec: inspect.Signature | None=None) -> bool | None:
342
+ ...
343
+
344
+ def has_keywords(func: Callable[..., Any], sigspec: inspect.Signature | None=None) -> bool | None:
345
+ ...
346
+
347
+ def is_valid_args(func: Callable[..., Any], args: tuple[Any, ...], kwargs: Mapping[str, Any], sigspec: inspect.Signature | None=None) -> bool | None:
348
+ ...
349
+
350
+ def is_partial_args(func: Callable[..., Any], args: tuple[Any, ...], kwargs: Mapping[str, Any], sigspec: inspect.Signature | None=None) -> bool | None:
351
+ ...
352
+
353
+ def is_arity(n: int, func: Callable[..., Any], sigspec: inspect.Signature | None=None) -> bool | None:
354
+ ...
@@ -29,7 +29,7 @@ from humpy_toolz.utils import no_default
29
29
  from importlib import import_module
30
30
  from operator import attrgetter, not_
31
31
  from types import MethodType
32
- from typing import overload, TYPE_CHECKING
32
+ from typing import Concatenate, overload, TYPE_CHECKING
33
33
  import contextlib
34
34
  import inspect
35
35
  import sys
@@ -394,6 +394,12 @@ class curry[**P, T]:
394
394
  @overload
395
395
  def __call__(self, *args: P.args, **kwargs: P.kwargs) -> T: ...
396
396
 
397
+ @overload
398
+ def __call__[First, **Remaining](self: curry[Concatenate[First, Remaining], T], first: First, /) -> curry[Remaining, T]: ...
399
+
400
+ @overload
401
+ def __call__[First, Second, **Remaining](self: curry[Concatenate[First, Second, Remaining], T], first: First, second: Second, /) -> curry[Remaining, T]: ...
402
+
397
403
  @overload
398
404
  def __call__(self, *args: Any, **kwargs: Any) -> curry[P, T]: ...
399
405
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "Z0Z_tools"
3
- version = "3.2.2"
3
+ version = "3.2.3"
4
4
  description = "Typing, documenting, and improving toolz and cytoolz."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -33,7 +33,7 @@ optional-dependencies = { development = [
33
33
  ], testing = ["pytest"] }
34
34
 
35
35
  [project.urls]
36
- Context7 = "https://context7.com/hunterhogan/z0z-tools"
36
+ Context7 = "https://context7.com/hunterhogan/z0z_tools"
37
37
  Donate = "https://www.patreon.com/integrated"
38
38
  Download = "https://pypi.org/project/Z0Z_tools"
39
39
  Homepage = "https://github.com/hunterhogan/Z0Z_tools"
@@ -1,192 +0,0 @@
1
-
2
- from collections.abc import Callable, Iterable, Mapping
3
- from typing import Any, overload
4
- import inspect
5
-
6
- type CurryState = tuple[Any, ...]
7
- type _Getter[_Instance, _T] = Callable[[_Instance], _T]
8
- type _Setter[_Instance, _T] = Callable[[_Instance, _T], None]
9
- type _Deleter[_Instance] = Callable[[_Instance], None]
10
- type InstancePropertyState[_Instance, _T] = tuple[_Getter[_Instance, _T] | None, _Setter[_Instance, _T] | None, _Deleter[_Instance] | None, str | None, _T | None]
11
- PYPY: bool
12
- __all__: tuple[str, ...] = ('apply', 'complement', 'compose', 'compose_left', 'curry', 'do', 'excepts', 'flip', 'identity', 'juxt', 'memoize', 'pipe', 'thread_first', 'thread_last')
13
-
14
- def identity[T](x: T) -> T:
15
- ...
16
-
17
- @overload
18
- def apply[**P, T](func: Callable[P, T], *args: P.args, **kwargs: P.kwargs) -> T:
19
- ...
20
-
21
- @overload
22
- def apply(*func_and_args: Any, **kwargs: Any) -> Any:
23
- ...
24
-
25
- def apply(*func_and_args: Any, **kwargs: Any) -> Any:
26
- ...
27
-
28
- def thread_first[T, R](val: T, *forms: Callable[[T], R] | tuple[Callable[..., R], Any]) -> R:
29
- ...
30
-
31
- def thread_last[T, U](val: T, *forms: Callable[[T], U] | tuple[Callable[..., U], ...]) -> U:
32
- ...
33
-
34
- @overload
35
- def instanceproperty[Instance, T](fget: _Getter[Instance, T], fset: _Setter[Instance, T] | None = ..., fdel: _Deleter[Instance] | None = ..., doc: str | None = ..., classval: T | None = ...) -> InstanceProperty[Instance, T]:
36
- ...
37
-
38
- @overload
39
- def instanceproperty[Instance, T](fget: None = None, fset: _Setter[Instance, T] | None = ..., fdel: _Deleter[Instance] | None = ..., doc: str | None = ..., classval: T | None = ...) -> Callable[[_Getter[Instance, T]], InstanceProperty[Instance, T]]:
40
- ...
41
-
42
- def instanceproperty[Instance, T](fget: _Getter[Instance, T] | None = None, fset: _Setter[Instance, T] | None = None, fdel: _Deleter[Instance] | None = None, doc: str | None = None, classval: T | None = None) -> InstanceProperty[Instance, T] | Callable[[_Getter[Instance, T]], InstanceProperty[Instance, T]]:
43
- ...
44
-
45
- class InstanceProperty[Instance, T](property):
46
- ...
47
-
48
- class curry[**P, T]:
49
- ...
50
-
51
- def _restore_curry[**P, T](cls: type[curry[P, T]], func: str | Callable[P, T], args: tuple[Any, ...], kwargs: Mapping[str, Any] | None, userdict: Iterable[tuple[str, Any]], is_decorated: bool | None) -> curry[P, T] | Callable[P, T]:
52
- ...
53
-
54
- @curry
55
- def memoize[T](func: Callable[..., T], cache: dict[Any, T] | None = None, key: Callable[[tuple[Any, ...], Mapping[str, Any]], Any] | None = None) -> Callable[..., T]:
56
- ...
57
-
58
- class Compose:
59
- ...
60
-
61
- @overload
62
- def compose[**P, T](fn_0: Callable[P, T]) -> Callable[P, T]:
63
- ...
64
-
65
- @overload
66
- def compose[**P, T0, T1](fn_0: Callable[[T0], T1], fn_1: Callable[P, T0]) -> Callable[P, T1]:
67
- ...
68
-
69
- @overload
70
- def compose[**P, T0, T1, T2](fn_0: Callable[[T1], T2], fn_1: Callable[[T0], T1], fn_2: Callable[P, T0]) -> Callable[P, T2]:
71
- ...
72
-
73
- @overload
74
- def compose[**P, T0, T1, T2, T3](fn_0: Callable[[T2], T3], fn_1: Callable[[T1], T2], fn_2: Callable[[T0], T1], fn_3: Callable[P, T0]) -> Callable[P, T3]:
75
- ...
76
-
77
- @overload
78
- def compose[**P, T0, T1, T2, T3, T4](fn_0: Callable[[T3], T4], fn_1: Callable[[T2], T3], fn_2: Callable[[T1], T2], fn_3: Callable[[T0], T1], fn_4: Callable[P, T0]) -> Callable[P, T4]:
79
- ...
80
-
81
- @overload
82
- def compose[**P, T0, T1, T2, T3, T4, T5](fn_0: Callable[[T4], T5], fn_1: Callable[[T3], T4], fn_2: Callable[[T2], T3], fn_3: Callable[[T1], T2], fn_4: Callable[[T0], T1], fn_5: Callable[P, T0]) -> Callable[P, T5]:
83
- ...
84
-
85
- @overload
86
- def compose(*funcs: Callable[..., Any]) -> Callable[..., Any]:
87
- ...
88
-
89
- def compose(*funcs: Callable[..., Any]) -> Callable[..., Any]:
90
- ...
91
-
92
- @overload
93
- def compose_left[**P, T](fn_0: Callable[P, T]) -> Callable[P, T]:
94
- ...
95
-
96
- @overload
97
- def compose_left[**P, T0, T1](fn_0: Callable[P, T0], fn_1: Callable[[T0], T1]) -> Callable[P, T1]:
98
- ...
99
-
100
- @overload
101
- def compose_left[**P, T0, T1, T2](fn_0: Callable[P, T0], fn_1: Callable[[T0], T1], fn_2: Callable[[T1], T2]) -> Callable[P, T2]:
102
- ...
103
-
104
- @overload
105
- def compose_left[**P, T0, T1, T2, T3](fn_0: Callable[P, T0], fn_1: Callable[[T0], T1], fn_2: Callable[[T1], T2], fn_3: Callable[[T2], T3]) -> Callable[P, T3]:
106
- ...
107
-
108
- @overload
109
- def compose_left[**P, T0, T1, T2, T3, T4](fn_0: Callable[P, T0], fn_1: Callable[[T0], T1], fn_2: Callable[[T1], T2], fn_3: Callable[[T2], T3], fn_4: Callable[[T3], T4]) -> Callable[P, T4]:
110
- ...
111
-
112
- @overload
113
- def compose_left[**P, T0, T1, T2, T3, T4, T5](fn_0: Callable[P, T0], fn_1: Callable[[T0], T1], fn_2: Callable[[T1], T2], fn_3: Callable[[T2], T3], fn_4: Callable[[T3], T4], fn_5: Callable[[T4], T5]) -> Callable[P, T5]:
114
- ...
115
-
116
- @overload
117
- def compose_left(*funcs: Callable[..., Any]) -> Callable[..., Any]:
118
- ...
119
-
120
- def compose_left(*funcs: Callable[..., Any]) -> Callable[..., Any]:
121
- ...
122
-
123
- @overload
124
- def pipe[T0, T1](data: T0, fn_0: Callable[[T0], T1]) -> T1:
125
- ...
126
-
127
- @overload
128
- def pipe[T0, T1, T2](data: T0, fn_0: Callable[[T0], T1], fn_1: Callable[[T1], T2]) -> T2:
129
- ...
130
-
131
- @overload
132
- def pipe[T0, T1, T2, T3](data: T0, fn_0: Callable[[T0], T1], fn_1: Callable[[T1], T2], fn_2: Callable[[T2], T3]) -> T3:
133
- ...
134
-
135
- @overload
136
- def pipe[T0, T1, T2, T3, T4](data: T0, fn_0: Callable[[T0], T1], fn_1: Callable[[T1], T2], fn_2: Callable[[T2], T3], fn_3: Callable[[T3], T4]) -> T4:
137
- ...
138
-
139
- @overload
140
- def pipe[T0, T1, T2, T3, T4, T5](data: T0, fn_0: Callable[[T0], T1], fn_1: Callable[[T1], T2], fn_2: Callable[[T2], T3], fn_3: Callable[[T3], T4], fn_4: Callable[[T4], T5]) -> T5:
141
- ...
142
-
143
- @overload
144
- def pipe[T0, T1, T2, T3, T4, T5, T6](data: T0, fn_0: Callable[[T0], T1], fn_1: Callable[[T1], T2], fn_2: Callable[[T2], T3], fn_3: Callable[[T3], T4], fn_4: Callable[[T4], T5], fn_5: Callable[[T5], T6]) -> T6:
145
- ...
146
-
147
- @overload
148
- def pipe(data: Any, *funcs: Callable[..., Any]) -> Any:
149
- ...
150
-
151
- def pipe(data: Any, *funcs: Callable[..., Any]) -> Any:
152
- ...
153
-
154
- def complement[**P](func: Callable[P, bool]) -> Callable[P, bool]:
155
- ...
156
-
157
- class juxt[**P, T]:
158
- ...
159
-
160
- def do[T](func: Callable[[T], Any], x: T) -> T:
161
- ...
162
-
163
- @curry
164
- def flip[T, U, R](func: Callable[[T, U], R], a: U, b: T) -> R:
165
- ...
166
-
167
- def return_none(exc: Exception) -> None:
168
- ...
169
-
170
- class excepts[**P, T]:
171
- ...
172
-
173
- def _check_sigspec[T](sigspec: inspect.Signature | None, func: Callable[..., Any], builtin_func: Callable[..., T], *builtin_args: Any) -> tuple[inspect.Signature | None, T | bool | None]:
174
- ...
175
-
176
- def num_required_args(func: Callable[..., Any], sigspec: inspect.Signature | None = None) -> int | None:
177
- ...
178
-
179
- def has_varargs(func: Callable[..., Any], sigspec: inspect.Signature | None = None) -> bool | None:
180
- ...
181
-
182
- def has_keywords(func: Callable[..., Any], sigspec: inspect.Signature | None = None) -> bool | None:
183
- ...
184
-
185
- def is_valid_args(func: Callable[..., Any], args: tuple[Any, ...], kwargs: Mapping[str, Any], sigspec: inspect.Signature | None = None) -> bool | None:
186
- ...
187
-
188
- def is_partial_args(func: Callable[..., Any], args: tuple[Any, ...], kwargs: Mapping[str, Any], sigspec: inspect.Signature | None = None) -> bool | None:
189
- ...
190
-
191
- def is_arity(n: int, func: Callable[..., Any], sigspec: inspect.Signature | None = None) -> bool | None:
192
- ...
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes