python-iterutils 0.2.6__py3-none-any.whl → 0.2.7__py3-none-any.whl
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.
- iterutils/__init__.py +27 -10
- {python_iterutils-0.2.6.dist-info → python_iterutils-0.2.7.dist-info}/METADATA +1 -1
- python_iterutils-0.2.7.dist-info/RECORD +7 -0
- python_iterutils-0.2.6.dist-info/RECORD +0 -7
- {python_iterutils-0.2.6.dist-info → python_iterutils-0.2.7.dist-info}/LICENSE +0 -0
- {python_iterutils-0.2.6.dist-info → python_iterutils-0.2.7.dist-info}/WHEEL +0 -0
iterutils/__init__.py
CHANGED
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
# encoding: utf-8
|
|
3
3
|
|
|
4
4
|
__author__ = "ChenyangGao <https://chenyanggao.github.io>"
|
|
5
|
-
__version__ = (0, 2,
|
|
5
|
+
__version__ = (0, 2, 7)
|
|
6
6
|
__all__ = [
|
|
7
|
-
"Yield", "YieldFrom", "GenStep", "
|
|
8
|
-
"
|
|
9
|
-
"as_gen_step_iter", "split_cm", "with_iter_next",
|
|
10
|
-
"map", "filter", "reduce", "zip", "chain",
|
|
11
|
-
"
|
|
12
|
-
"async_foreach", "through", "async_through",
|
|
7
|
+
"Yield", "YieldFrom", "GenStep", "GenStepIter", "iterable",
|
|
8
|
+
"async_iterable", "run_gen_step", "run_gen_step_iter",
|
|
9
|
+
"as_gen_step", "as_gen_step_iter", "split_cm", "with_iter_next",
|
|
10
|
+
"map", "filter", "reduce", "zip", "chain", "chain_from_iterable",
|
|
11
|
+
"chunked", "foreach", "async_foreach", "through", "async_through",
|
|
13
12
|
"flatten", "async_flatten", "collect", "async_collect",
|
|
14
13
|
"group_collect", "async_group_collect", "iter_unique",
|
|
15
14
|
"async_iter_unique", "wrap_iter", "wrap_aiter", "acc_step",
|
|
@@ -68,7 +67,15 @@ class GenStep:
|
|
|
68
67
|
"""专供 `run_gen_step` 和 `run_gen_step_iter`,说明值需要进一步提取
|
|
69
68
|
"""
|
|
70
69
|
value: Generator
|
|
71
|
-
max_depth: int =
|
|
70
|
+
max_depth: int = 0
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
@dataclass(slots=True, frozen=True, unsafe_hash=True)
|
|
74
|
+
class GenStepIter:
|
|
75
|
+
"""专供 `run_gen_step_iter`,说明值需要进一步提取
|
|
76
|
+
"""
|
|
77
|
+
value: Generator
|
|
78
|
+
max_depth: int = 0
|
|
72
79
|
|
|
73
80
|
|
|
74
81
|
iterable = Iterable.__instancecheck__
|
|
@@ -204,7 +211,9 @@ def _run_gen_step_iter(
|
|
|
204
211
|
val_type = type(value)
|
|
205
212
|
if issubclass(val_type, (Yield, YieldFrom)):
|
|
206
213
|
value = value.value
|
|
207
|
-
|
|
214
|
+
elif isinstance(value, GenStepIter):
|
|
215
|
+
yield from _run_gen_step_iter(value.value, value.max_depth)
|
|
216
|
+
elif isinstance(value, GenStep):
|
|
208
217
|
value = _run_gen_step(value.value, value.max_depth)
|
|
209
218
|
elif drive_generator and isinstance(value, Generator):
|
|
210
219
|
value = _run_gen_step(value, dgen)
|
|
@@ -221,7 +230,9 @@ def _run_gen_step_iter(
|
|
|
221
230
|
val_type = type(value)
|
|
222
231
|
if issubclass(val_type, (Yield, YieldFrom)):
|
|
223
232
|
value = value.value
|
|
224
|
-
|
|
233
|
+
elif isinstance(value, GenStepIter):
|
|
234
|
+
yield from _run_gen_step_iter(value.value, value.max_depth)
|
|
235
|
+
elif isinstance(value, GenStep):
|
|
225
236
|
value = _run_gen_step(value.value, value.max_depth)
|
|
226
237
|
elif drive_generator and isinstance(value, Generator):
|
|
227
238
|
value = _run_gen_step(value, dgen)
|
|
@@ -250,6 +261,9 @@ async def _run_gen_step_async_iter(
|
|
|
250
261
|
value = value.value
|
|
251
262
|
if isawaitable(value):
|
|
252
263
|
value = await value
|
|
264
|
+
elif isinstance(value, GenStepIter):
|
|
265
|
+
async for el in _run_gen_step_async_iter(value.value, value.max_depth):
|
|
266
|
+
yield el
|
|
253
267
|
elif isinstance(value, GenStep):
|
|
254
268
|
value = await _run_gen_step_async(value.value, value.max_depth)
|
|
255
269
|
elif drive_generator and isinstance(value, Generator):
|
|
@@ -274,6 +288,9 @@ async def _run_gen_step_async_iter(
|
|
|
274
288
|
value = value.value
|
|
275
289
|
if isawaitable(value):
|
|
276
290
|
value = await value
|
|
291
|
+
elif isinstance(value, GenStepIter):
|
|
292
|
+
async for el in _run_gen_step_async_iter(value.value, value.max_depth):
|
|
293
|
+
yield el
|
|
277
294
|
elif isinstance(value, GenStep):
|
|
278
295
|
value = await _run_gen_step_async(value.value, value.max_depth)
|
|
279
296
|
elif drive_generator and isinstance(value, Generator):
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
LICENSE,sha256=o5242_N2TgDsWwFhPn7yr8YJNF7XsJM5NxUMtcT97bc,1100
|
|
2
|
+
iterutils/__init__.py,sha256=44RZPpEkjbhfDwb9cmUcStPJTPfyixaoMifj9iHme2s,37665
|
|
3
|
+
iterutils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
python_iterutils-0.2.7.dist-info/LICENSE,sha256=o5242_N2TgDsWwFhPn7yr8YJNF7XsJM5NxUMtcT97bc,1100
|
|
5
|
+
python_iterutils-0.2.7.dist-info/METADATA,sha256=VjYnPSbvmJBEe8CV8Ba2C5NN3La6vqrrAqLsJeb3q8Q,1427
|
|
6
|
+
python_iterutils-0.2.7.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
7
|
+
python_iterutils-0.2.7.dist-info/RECORD,,
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
LICENSE,sha256=o5242_N2TgDsWwFhPn7yr8YJNF7XsJM5NxUMtcT97bc,1100
|
|
2
|
-
iterutils/__init__.py,sha256=gfuQk9Qp4hVpjCciZIyeS-0dRNIFsrO6HkWEZK4UgUo,36876
|
|
3
|
-
iterutils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
python_iterutils-0.2.6.dist-info/LICENSE,sha256=o5242_N2TgDsWwFhPn7yr8YJNF7XsJM5NxUMtcT97bc,1100
|
|
5
|
-
python_iterutils-0.2.6.dist-info/METADATA,sha256=Bd-gpNnYlks584NbnAndkac7XDznJNBDeeR-xoiKUdY,1427
|
|
6
|
-
python_iterutils-0.2.6.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
7
|
-
python_iterutils-0.2.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|