forked from ModECI/MDF
-
Notifications
You must be signed in to change notification settings - Fork 0
/
count.py
38 lines (34 loc) · 1.26 KB
/
count.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"""Create the MDF files for the count example and run using the scheduler."""
import os
from modeci_mdf.interfaces.actr import actr_to_mdf
from modeci_mdf.execution_engine import EvaluableGraph
from modeci_mdf.utils import load_mdf
def main():
"""Takes count.lisp, converts to MDF, and runs using the scheduler."""
file_name = os.path.dirname(os.path.realpath(__file__)) + "/count.lisp"
print(file_name)
mod = actr_to_mdf(file_name)
mdf_graph = load_mdf(file_name[:-5] + ".json").graphs[0]
eg = EvaluableGraph(graph=mdf_graph, verbose=False)
term = False
goal = {}
retrieval = {}
while not term:
eg.evaluate(initializer={"goal_input": goal, "dm_input": retrieval})
term = (
eg.enodes["check_termination"].evaluable_outputs["check_output"].curr_value
)
goal = (
eg.enodes["fire_production"]
.evaluable_outputs["fire_prod_output_to_goal"]
.curr_value
)
retrieval = (
eg.enodes["fire_production"]
.evaluable_outputs["fire_prod_output_to_retrieval"]
.curr_value
)
print("Final Goal:")
print(eg.enodes["goal_buffer"].evaluable_outputs["goal_output"].curr_value)
if __name__ == "__main__":
main()