RxPY - Operatori di trasformazione

buffer

Questo operatore raccoglierà tutti i valori dalla sorgente osservabile e li emetterà ad intervalli regolari una volta soddisfatta la data condizione al contorno.

Sintassi

buffer(boundaries)

Parametri

confini: è osservabile l'input che deciderà quando fermarsi in modo che vengano emessi i valori raccolti.

Valore di ritorno

Il valore di ritorno è osservabile, che avrà tutti i valori raccolti dalla fonte osservabile basata e cioè la durata del tempo è decisa dall'input osservabile preso.

Esempio

from rx import of, interval, operators as op
from datetime import date
test = of(1, 2,3,4,5,6,7,8,9,10)
sub1 = test.pipe(
   op.buffer(interval(1.0))
)
sub1.subscribe(lambda x: print("The element is {0}".format(x)))

Produzione

E:\pyrx>python test1.py
The elements are [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

ground_by

Questo operatore raggrupperà i valori provenienti dalla sorgente osservabile in base alla funzione key_mapper data.

Sintassi

group_by(key_mapper)

Parametri

key_mapper: questa funzione si occuperà di estrarre le chiavi dalla sorgente osservabile.

Valore di ritorno

Restituisce un osservabile con valori raggruppati in base alla funzione key_mapper.

Esempio

from rx import from_, interval, operators as op
test = from_(["A", "B", "C", "D"])
sub1 = test.pipe(
   op.group_by(lambda v: v[0])
)
sub1.subscribe(lambda x: print("The element is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The element is <rx.core.observable.groupedobservable.GroupedObservable object
at
 0x000000C99A2E6550>
The element is <rx.core.observable.groupedobservable.GroupedObservable object at
 0x000000C99A2E65C0>
The element is <rx.core.observable.groupedobservable.GroupedObservable object at
 0x000000C99A2E6588>
The element is <rx.core.observable.groupedobservable.GroupedObservable object at
 0x000000C99A2E6550>

carta geografica

Questo operatore cambierà ogni valore dalla sorgente osservabile in un nuovo valore basato sull'output di mapper_func fornito.

Sintassi

map(mapper_func:None)

Parametri

mapper_func: (opzionale) cambierà i valori dalla sorgente osservabile in base all'output proveniente da questa funzione.

Esempio

from rx import of, interval, operators as op
test = of(1, 2,3,4,5,6,7,8,9,10)
sub1 = test.pipe(
   op.map(lambda x :x*x)
)
sub1.subscribe(lambda x: print("The element is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The element is 1
The element is 4
The element is 9
The element is 16
The element is 25
The element is 36
The element is 49
The element is 64
The element is 81
The element is 100

scansione

Questo operatore applicherà una funzione accumulatore ai valori provenienti dalla sorgente osservabile e restituirà un osservabile con nuovi valori.

Sintassi

scan(accumulator_func, seed=NotSet)

Parametri

accumulator_func: questa funzione viene applicata a tutti i valori dalla sorgente osservabile.

seed: (opzionale) il valore iniziale da utilizzare all'interno di accumular_func.

Valore di ritorno

Questo operatore restituirà un osservabile che avrà nuovi valori basati sulla funzione accumulatore applicata a ciascun valore della sorgente osservabile.

Esempio

from rx import of, interval, operators as op
test = of(1, 2,3,4,5,6,7,8,9,10)
sub1 = test.pipe(
   op.scan(lambda acc, a: acc + a, 0))
sub1.subscribe(lambda x: print("The element is {0}".format(x)))

Produzione

E:\pyrx>python testrx.py
The element is 1
The element is 3
The element is 6
The element is 10
The element is 15
The element is 21
The element is 28
The element is 36
The element is 45
The element is 55