relib 1.2.10__tar.gz → 1.2.11__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.
- {relib-1.2.10 → relib-1.2.11}/PKG-INFO +1 -1
- {relib-1.2.10 → relib-1.2.11}/pyproject.toml +1 -1
- {relib-1.2.10 → relib-1.2.11}/relib/utils.py +33 -10
- {relib-1.2.10 → relib-1.2.11}/uv.lock +1 -1
- {relib-1.2.10 → relib-1.2.11}/.gitignore +0 -0
- {relib-1.2.10 → relib-1.2.11}/.python-version +0 -0
- {relib-1.2.10 → relib-1.2.11}/LICENSE +0 -0
- {relib-1.2.10 → relib-1.2.11}/README.md +0 -0
- {relib-1.2.10 → relib-1.2.11}/relib/__init__.py +0 -0
- {relib-1.2.10 → relib-1.2.11}/relib/hashing.py +0 -0
- {relib-1.2.10 → relib-1.2.11}/relib/measure_duration.py +0 -0
- {relib-1.2.10 → relib-1.2.11}/relib/system.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
import re
|
2
2
|
from itertools import chain
|
3
|
-
from typing import Any, Callable, Iterable, overload
|
3
|
+
from typing import Any, Callable, Iterable, Literal, overload
|
4
4
|
|
5
5
|
__all__ = [
|
6
6
|
"noop",
|
@@ -84,12 +84,9 @@ def dict_firsts[T, K](pairs: Iterable[tuple[K, T]]) -> dict[K, T]:
|
|
84
84
|
def distinct_by[T](pairs: Iterable[tuple[object, T]]) -> list[T]:
|
85
85
|
return list(dict_firsts(pairs).values())
|
86
86
|
|
87
|
-
def sort_by[T](pairs: Iterable[tuple[
|
88
|
-
|
89
|
-
|
90
|
-
for i in range(len(pair_list)):
|
91
|
-
pair_list[i] = pair_list[i][1]
|
92
|
-
return pair_list
|
87
|
+
def sort_by[T](pairs: Iterable[tuple[Any, T]]) -> list[T]:
|
88
|
+
pairs = sorted(pairs, key=lambda p: p[0])
|
89
|
+
return [v for _, v in pairs]
|
93
90
|
|
94
91
|
def first[T](iterable: Iterable[T]) -> T | None:
|
95
92
|
return next(iter(iterable), None)
|
@@ -161,10 +158,36 @@ def dict_by[T, K](keys: Iterable[K], values: Iterable[T]) -> dict[K, T]:
|
|
161
158
|
def tuple_by[T, K](d: dict[K, T], keys: Iterable[K]) -> tuple[T, ...]:
|
162
159
|
return tuple(d[key] for key in keys)
|
163
160
|
|
164
|
-
|
165
|
-
|
161
|
+
@overload
|
162
|
+
def flatten[T](iterable: Iterable[T], depth: Literal[0]) -> list[T]: ...
|
163
|
+
@overload
|
164
|
+
def flatten[T](iterable: Iterable[Iterable[T]], depth: Literal[1] = 1) -> list[T]: ...
|
165
|
+
@overload
|
166
|
+
def flatten[T](iterable: Iterable[Iterable[Iterable[T]]], depth: Literal[2]) -> list[T]: ...
|
167
|
+
@overload
|
168
|
+
def flatten[T](iterable: Iterable[Iterable[Iterable[Iterable[T]]]], depth: Literal[3]) -> list[T]: ...
|
169
|
+
@overload
|
170
|
+
def flatten[T](iterable: Iterable[Iterable[Iterable[Iterable[Iterable[T]]]]], depth: Literal[4]) -> list[T]: ...
|
171
|
+
@overload
|
172
|
+
def flatten(iterable: Iterable, depth: int) -> list: ...
|
173
|
+
|
174
|
+
def flatten(iterable: Iterable, depth: int = 1) -> list:
|
175
|
+
for _ in range(depth):
|
176
|
+
iterable = chain.from_iterable(iterable)
|
177
|
+
return list(iterable)
|
178
|
+
|
179
|
+
@overload
|
180
|
+
def transpose[T1, T2](tuples: Iterable[tuple[T1, T2]], default_num_returns: int = 0) -> tuple[list[T1], list[T2]]: ...
|
181
|
+
@overload
|
182
|
+
def transpose[T1, T2, T3](tuples: Iterable[tuple[T1, T2, T3]], default_num_returns: int = 0) -> tuple[list[T1], list[T2], list[T3]]: ...
|
183
|
+
@overload
|
184
|
+
def transpose[T1, T2, T3, T4](tuples: Iterable[tuple[T1, T2, T3, T4]], default_num_returns: int = 0) -> tuple[list[T1], list[T2], list[T3], list[T4]]: ...
|
185
|
+
@overload
|
186
|
+
def transpose[T1, T2, T3, T4, T5](tuples: Iterable[tuple[T1, T2, T3, T4, T5]], default_num_returns: int = 0) -> tuple[list[T1], list[T2], list[T3], list[T4], list[T5]]: ...
|
187
|
+
@overload
|
188
|
+
def transpose(tuples: Iterable[tuple], default_num_returns: int = 0) -> tuple[list, ...]: ...
|
166
189
|
|
167
|
-
def transpose(tuples, default_num_returns=0):
|
190
|
+
def transpose(tuples: Iterable[tuple], default_num_returns=0) -> tuple[list, ...]:
|
168
191
|
output = tuple(zip(*tuples))
|
169
192
|
if not output:
|
170
193
|
return ([],) * default_num_returns
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|