RxPY - Operadores condicionales y booleanos

todas

Este operador comprobará si todos los valores de la fuente observable satisfacen la condición dada.

Sintaxis

all(predicate)

Parámetros

predicado: booleano. Esta función se aplicará a todos los valores, desde la fuente observable y devolverá verdadero o falso según la condición dada.

Valor devuelto

El valor de retorno es un observable, que tendrá el valor booleano verdadero o falso, según la condición aplicada a todos los valores de la fuente observable.

Ejemplo 1

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

Salida

E:\pyrx>python testrx.py
The result is False

Ejemplo 2

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

Salida

E:\pyrx>python testrx.py
The result is True

contiene

Este operador devolverá un observable con el valor verdadero o falso si el valor dado está presente son los valores de la fuente observable.

Sintaxis

contains(value, comparer=None)

Parámetros

valor: el valor que se comprobará si está presente en la fuente observable

comparador: opcional. Esta es una función de comparación que se aplicará a los valores presentes en la fuente observable para la comparación.

Example

from rx import of, operators as op
test = of(17, 25, 34, 56, 78)
sub1 = test.pipe(
   op.contains(34)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The value is True

Ejemplo 2: uso de comparador

from rx import of, operators as op
test = of(17, 25, 34, 56, 78)
sub1 = test.pipe(
   op.contains(34, lambda x, y: x == y)
)
sub1.subscribe(lambda x: print("The valus is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The value is True

default_if_empty

Este operador devolverá un valor predeterminado si la fuente observable está vacía.

Sintaxis

default_if_empty(default_value=None)

Parámetros

valor_predeterminado: opcional. Dará la salida, ya que None es nada se pasa como valor_predeterminado, de lo contrario, dará cualquier valor que se pase.

Valor devuelto

Devolverá un observable con un valor predeterminado si el observable de origen está vacío.

Ejemplo 1

from rx import of, operators as op
test = of()
sub1 = test.pipe(
   op.default_if_empty()
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The value is None

Ejemplo 2: valor_predeterminado pasado

from rx import of, operators as op
test = of()
sub1 = test.pipe(
   op.default_if_empty("Empty!")
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The value is Empty!

sequence_equal

Este operador comparará dos secuencias de observables o una matriz de valores y devolverá un observable con el valor verdadero o falso.

Sintaxis

sequence_equal(second_seq, comparer=None)

Parámetros

second_seq: observable o matriz a comparar con el primer observable.

comparador: opcional. Función de comparación que se aplicará para comparar valores en ambas secuencias.

Ejemplo

from rx import of, operators as op
test = of(1,2,3)
test1 = of(1,2,3)
sub1 = test.pipe(
   op.sequence_equal(test1)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The value is True

Ejemplo: usar una función de comparación

from rx import of, operators as op
test = of(1,2,3)
test1 = of(1,2,3)
sub1 = test.pipe(
   op.sequence_equal(test1, lambda x, y : x == y)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The value is True

saltar_hasta

Este operador descartará valores de la fuente observable hasta que el segundo observable emita un valor.

Sintaxis

skip_until(observable)

Parámetros

observable: el segundo observable que cuando emite un valor disparará la fuente observable.

Valor devuelto

Devolverá un observable que tendrá valores desde la fuente observable hasta que el segundo observable emita un valor.

Ejemplo

from rx import interval,range, operators as op
from datetime import date
test = interval(0)
test1 = range(10)
sub1 = test1.pipe(
   op.skip_until(test)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

Salida

E:\pyrx>python testrx.py
The value is 0
The value is 1
The value is 2
The value is 3
The value is 4
The value is 5
The value is 6
The value is 7
The value is 8
The value is 9

saltar_mientras

Este operador devolverá un observable con valores de la fuente observable que satisfaga la condición pasada.

Sintaxis

skip_while(predicate_func)

Parámetros

predicate_func: esta función se aplicará a todos los valores de la fuente observable y devolverá los valores que satisfagan la condición.

Valor devuelto

Devolverá un observable con valores de la fuente observable que satisfaga la condición pasada.

Ejemplo

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

Salida

E:\pyrx>python testrx.py
The value is 5
The value is 6
The value is 7
The value is 8
The value is 9
The value is 10

tomar_hasta

Este operador descartará los valores de la fuente observable después de que el segundo observable emita un valor o finalice.

Sintaxis

take_until(observable)

Parámetros

observable: el segundo observable que, cuando emite un valor, terminará la fuente observable.

Valor devuelto

Devolverá un observable, que tendrá valores de la fuente solo observables, cuando el segundo observable utilizado emita un valor.

Ejemplo

from rx import timer,range, operators as op
from datetime import date
test = timer(0.01)
test1 = range(500)
sub1 = test1.pipe(
   op.take_until(test)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))

En este ejemplo, obtendrá los valores emitidos desde range. Pero, una vez que el temporizador esté listo, evitará que la fuente observable emita más.

Salida

E:\pyrx>python testrx.py
The value is 0
The value is 1
The value is 2
The value is 3
The value is 4
The value is 5
The value is 6
The value is 7
The value is 8
The value is 9
The value is 10
The value is 11
The value is 12
The value is 13
The value is 14
The value is 15
The value is 16
The value is 17
The value is 18
The value is 19
The value is 20
The value is 21
The value is 22
The value is 23
The value is 24
The value is 25
The value is 26

tomar_mientras

Este operador descartará los valores de la fuente observables cuando la condición falla.

Sintaxis

take_while(predicate_func)

Parámetros

predicate_func: esta función evaluará cada valor de la fuente observable.

Valor devuelto

Devolverá un observable con valores hasta que la función de predicado satisfaga.

Ejemplo

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

Salida

E:\pyrx>python testrx.py
The value is 1
The value is 2
The value is 3
The value is 4