Datatoy Logo

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.