geneva.actions.tree¶
Defines an action tree. Action trees are comprised of a trigger and a tree of actions.
-
exception
tree.ActionTreeParseError¶ Bases:
ExceptionException thrown when an action tree is malformed or cannot be parsed.
-
class
tree.ActionTree(direction, trigger=None)¶ Bases:
objectDefines an ActionTree for the Geneva system.
-
__init__(direction, trigger=None)¶ Creates this action tree.
Parameters: - direction (str) – Direction this tree is facing (“out”, “in”)
- trigger (
actions.trigger.Trigger) – Trigger to use with this tree
-
add_action(new_action)¶ Adds an action to this action tree.
-
check(packet, logger)¶ Checks if this action tree should run on this packet.
-
choose_one()¶ Picks a random element in the tree.
-
contains(action)¶ Checks if an action is contained in the tree.
-
count_leaves()¶ Counts the number of leaves.
-
do_parse(node, string, logger)¶ Handles the preorder recursive parsing.
-
do_run(node, packet, logger)¶ Handles recursively running a packet down the tree.
-
get_parent(node)¶ Returns the parent of the given node and direction of the child.
-
get_rand_action(direction, request=None, allow_terminal=True, disabled=None)¶ Retrieves and initializes a random action that can run in the given direction.
-
get_slots()¶ Returns the number of locations a new action could be added.
-
initialize(num_actions, environment_id, allow_terminal=True, disabled=None)¶ Sets up this action tree with a given number of random actions. Note that the returned action trees may have less actions than num_actions if terminal actions are used.
-
mate(other_tree)¶ Mates this tree with another tree.
-
mutate()¶ Mutates this action tree with respect to a given direction.
-
parse(string, logger)¶ Parses a string representation of an action tree into this object.
-
preorder(node)¶ Yields a preorder traversal of the tree.
-
pretty_print(visual=False)¶ Pretty prints the tree.
-
pretty_print_help(root, visual=False, parent=None)¶ - Pretty prints the tree.
- root is the highest-level node you wish to start printing
- [visual] controls whether a png should be created, by default, this is false.
- [parent] is an optional parameter specifying the parent of a given node, should only be used by this function.
Returns the root with its children as an anytree node.
-
remove_action(action)¶ Removes a given action from the tree.
-
remove_one()¶ Removes a random leaf from the tree.
-
run(packet, logger)¶ Runs a packet through the action tree.
-
string_repr(node)¶ Yields a preorder traversal of the tree to create a string representation.
-
swap(my_donation, other_tree, other_donation)¶ Swaps a node in this tree with a node in another tree.
-