Event System
StatsReporter and LogObserver are replaced by a unified and simplified Event system.
Original Issue: #97
How to use:
# Simple functions serve as listeners
def omitted_listener(node):
print("Omitted:", node.name)
def started_listener(node):
print("Started:", node.name)
def finished_listener(node):
print("Finished:", node.name)
# Connect the listeners
INode.EVENTS['evaluation-omitted'].register(omitted_listener)
INode.EVENTS['evaluation-started'].register(started_listener)
INode.EVENTS['evaluation-finished'].register(finished_listener)
my_node = MyNode()
my_node.evaluate()
# Inspect the node's stats after evaluation
print(my_node.stats)
>> {"eval_time": 0.123, "start_time": 1573121193}