RxPY - Operadores de transformação

amortecedor

Esse operador coletará todos os valores da fonte observável e os emitirá em intervalos regulares assim que a condição de contorno fornecida for satisfeita.

Sintaxe

buffer(boundaries)

Parâmetros

limites: A entrada é observável que decidirá quando parar para que os valores coletados sejam emitidos.

Valor de retorno

O valor de retorno é observável, que terá todos os valores coletados da fonte com base observável e que a duração do tempo é decidida pela entrada observável tomada.

Exemplo

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)))

Resultado

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

ground_by

Este operador agrupará os valores provenientes da fonte observável com base na função key_mapper fornecida.

Sintaxe

group_by(key_mapper)

Parâmetros

key_mapper: Esta função cuidará da extração das chaves da fonte observável.

Valor de retorno

Ele retorna um observável com valores agrupados com base na função key_mapper.

Exemplo

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)))

Resultado

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>

mapa

Este operador irá alterar cada valor da fonte observável em um novo valor com base na saída do mapper_func fornecido.

Sintaxe

map(mapper_func:None)

Parâmetros

mapper_func: (opcional) irá alterar os valores da fonte observável com base na saída proveniente desta função.

Exemplo

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)))

Resultado

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

Varredura

Este operador aplicará uma função de acumulador aos valores provenientes da fonte observável e retornará um observável com novos valores.

Sintaxe

scan(accumulator_func, seed=NotSet)

Parâmetros

acumulator_func: esta função é aplicada a todos os valores da fonte observável.

seed: (opcional) O valor inicial a ser usado dentro do Accumular_func.

Valor de retorno

Este operador retornará um observável que terá novos valores com base na função acumuladora aplicada a cada valor do observável de origem.

Exemplo

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)))

Resultado

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