Explode
Un item en entrée, plusieurs en sortie
.explode(fn) appelle fn(item) et émet chaque élément de l'itérable renvoyé comme un item séparé. Sans argument, .explode() itère directement sur l'item reçu : c'est l'inverse de .batch(n).
Signature
Pipeline.explode(explode_function=None) -> Pipeline[OutPacket]python
from olympipe import Pipeline
def words(line: str) -> list[str]:
return line.split()
lines = ["olympipe chains steps", "in parallel"]
print(Pipeline(lines).explode(words).wait_for_result())
# Sans fonction, chaque item doit déjà être itérable
print(Pipeline(range(7)).batch(3).explode().wait_for_result())Sortie
['olympipe', 'chains', 'steps', 'in', 'parallel']
[0, 1, 2, 3, 4, 5, 6]Comment ça fonctionne
L'étape tourne dans son propre processus comme une .task : le résultat de fn est parcouru et chaque élément est envoyé un par un dans la file suivante. Un itérable vide ne produit aucun item.
