 }
 
 stage = 0;
-id = 0;
-run_stage(N, S, "", stage, id, propagate());
+run_stage(N, S, "1", stage, propagate()) =>
+  printf("RESULTS: COMPLETE");

    v = propagate();
}

(void v) run_dummy(string parent, int stage, int id, void block)
{
  json_fragment = ----
"pre_module":  "data_setup",
"post_module": "data_setup",
"plan":        "/home/wozniak/plan.json",
"dataframe_from":
    "/usb1/wozniak/CANDLE-Benchmarks-Data/top21_dataframe_8x8.csv"
----;
  if (stage == 0)
  {
    db_setup() =>
      v = propagate();
  }
  else
  {
    node = parent + "." + stage;
    json = "{\"node\": \"%s\", %s}" % (node, json_fragment);
    block =>
      printf("running obj(%s)", node) =>


file plan_json = input("~/plan.json");

(void v)
run_stage(int N, int S, string this, int stage, void block)
{
  printf("stage: %i this: %s", stage, this);
  void p = run_single(this, stage, block);
  if (stage < S)
  {
    foreach id_child in [1:N]
    {
      run_stage(N, S, this+"."+id_child, stage+1, p);
    }
  }
  v = propagate();
}

(void v) db_setup()
