RxPY - Opérateurs conditionnels et booléens

tout

Cet opérateur vérifiera si toutes les valeurs de l'observable source satisfont à la condition donnée.

Syntaxe

all(predicate)

Paramètres

prédicat: booléen. Cette fonction sera appliquée à toutes les valeurs, à partir de l'observable source et retournera vrai ou faux en fonction de la condition donnée.

Valeur de retour

La valeur de retour est une observable, qui aura la valeur booléenne true ou false, en fonction de la condition appliquée sur toutes les valeurs de l'observable source.

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

Production

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

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

Production

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

contient

Cet opérateur retournera une observable avec la valeur true ou false si la valeur donnée est présente est les valeurs de l'observable source.

Syntaxe

contains(value, comparer=None)

Paramètres

value: La valeur à vérifier si elle est présente dans l'observable source

comparateur: facultatif. Il s'agit d'une fonction de comparaison à appliquer aux valeurs présentes dans l'observable source pour comparaison.

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

Production

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

Exemple 2: Utilisation du comparateur

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

Production

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

default_if_empty

Cet opérateur renverra une valeur par défaut si l'observable source est vide.

Syntaxe

default_if_empty(default_value=None)

Paramètres

default_value: facultatif. Il donnera la sortie, car None est rien est passé comme valeur par défaut, sinon il donnera la valeur passée.

Valeur de retour

Il renverra une observable avec une valeur par défaut si l'observable source est vide.

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

Production

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

Exemple 2: default_value passé

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

Production

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

sequence_equal

Cet opérateur comparera deux séquences d'observables, ou un tableau de valeurs et retournera une observable avec la valeur true ou false.

Syntaxe

sequence_equal(second_seq, comparer=None)

Paramètres

second_seq: observable ou tableau à comparer avec le premier observable.

comparateur: facultatif. Comparer la fonction à appliquer pour comparer les valeurs dans les deux séquences.

Exemple

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

Production

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

Exemple: utilisation d'une fonction de comparaison

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

Production

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

skip_until

Cet opérateur rejettera les valeurs de l'observable source jusqu'à ce que la seconde observable émette une valeur.

Syntaxe

skip_until(observable)

Paramètres

observable: le deuxième observable qui lorsqu'il émet une valeur déclenchera l'observable source.

Valeur de retour

Il renverra une observable qui aura des valeurs de l'observable source jusqu'à ce que la seconde observable émette une valeur.

Exemple

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

Production

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

skip_ while

Cet opérateur renverra une observable avec des valeurs de l'observable source qui satisfait la condition passée.

Syntaxe

skip_while(predicate_func)

Paramètres

predicate_func: Cette fonction sera appliquée à toutes les valeurs de l'observable source, et retournera les valeurs qui satisfont la condition.

Valeur de retour

Il renverra une observable avec des valeurs de l'observable source qui satisfait la condition passée.

Exemple

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

Production

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

take_until

Cet opérateur rejettera les valeurs de l'observable source après que la seconde observable ait émis une valeur ou soit terminée.

Syntaxe

take_until(observable)

Paramètres

observable: la deuxième observable qui, lorsqu'elle émet une valeur, terminera l'observable source.

Valeur de retour

Il renverra une observable, qui aura des valeurs de l'observable source uniquement, lorsque la deuxième observable utilisée émettra une valeur.

Exemple

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

Dans cet exemple, vous obtiendrez les valeurs émises par range. Mais, une fois la minuterie terminée, cela empêchera la source observable d'émettre davantage.

Production

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

prendre_maintenant

Cet opérateur rejettera les valeurs de la source observable lorsque la condition échoue.

Syntaxe

take_while(predicate_func)

Paramètres

predicate_func: cette fonction évaluera chaque valeur de l'observable source.

Valeur de retour

Il retournera une observable avec des valeurs jusqu'à ce que la fonction de prédicat satisfasse.

Exemple

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

Production

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