InEquality#

class supernodes.operations.InEquality(inequality: str, strings_to_numbers=True)[source]#

Bases: object

Runs an inequality operation from an inequality string. This is helpful when running a tree as a decision tree.

Examples

Running an inequality:

>>> inequality = InEquality("x == 10")
>>> inequality(x=7)
False
>>> inequality = InEquality("x == -10")
>>> inequality(x=-10)
True
>>> inequality = InEquality("y != 9.01")
>>> inequality(y=9.01)
False

Including a list in the inequality:

>>> inequality = InEquality("x[0] > x[1]")
>>> inequality(x=[10, 20])
False

Note that slicing is not yet supported when using lists.

Including two variables in the inequality:

>>> inequality = InEquality("x == y")
>>> inequality(x=10, y=10)
True

Including an inequality in a binary decision tree:

>>> from supernodes import SuperNode
>>> inequality = InEquality("x < 100")
>>> main_node = SuperNode(name="main-node", function=inequality)
>>> main_node['first-child'] = SuperNode()
>>> main_node['second-child'] = SuperNode()
>>> main_node.child_name_if_true = "first-child"
>>> main_node.child_name_if_false = "second-child"

Running the decision tree:

>>> main_node.run_as_binary_tree(x=101)
(name=second-child, value: NoneType)