upload_mappers.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import sys
  2. sys.path.append("interface/HUTN")
  3. from hutn_compiler.compiler import main as do_compile
  4. address = "http://127.0.0.1:8001"
  5. def get_model_constructor(code):
  6. # First change multiple spaces to a tab
  7. code_fragments = code.split("\n")
  8. code_fragments = [i for i in code_fragments if i.strip() != ""]
  9. code_fragments = [i.replace(" ", "\t") for i in code_fragments]
  10. initial_tabs = min([len(i) - len(i.lstrip("\t")) for i in code_fragments])
  11. code_fragments = [i[initial_tabs:] for i in code_fragments]
  12. code_fragments.append("")
  13. code = "\n".join(code_fragments)
  14. with open("__model.mvc", "w") as f:
  15. f.write(code)
  16. f.flush()
  17. return get_model_constructor_2("__model.mvc")
  18. def get_model_constructor_2(f):
  19. return do_compile(f, "interface/HUTN/grammars/modelling.g", "M") + ["exit"]
  20. commands = [ "root", "root", "root",
  21. "model_add",
  22. "SimpleClassDiagrams",
  23. "CausalBlockDiagrams",
  24. ] + get_model_constructor(open("integration/code/cbd_design.mvc", "r").read()) + [
  25. "model_add",
  26. "SimpleClassDiagrams",
  27. "Trace",
  28. ] + get_model_constructor(open("models/trace.mvc", "r").read()) + [
  29. "model_add",
  30. "SimpleClassDiagrams",
  31. "MM_rendered_graphical",
  32. ] + get_model_constructor(open("models/MM_rendered_graphical.mvc", "r").read()) + [
  33. "model_add",
  34. "SimpleClassDiagrams",
  35. "MM_rendered_plot",
  36. ] + get_model_constructor(open("models/MM_rendered_plot.mvc", "r").read()) + [
  37. "model_add",
  38. "CausalBlockDiagrams",
  39. "my_CBD",
  40. ] + get_model_constructor(open("integration/code/my_cbd.mvc", "r").read()) + [
  41. "model_add",
  42. "Trace",
  43. "trace_example",
  44. ] + get_model_constructor(open("models/trace_example.mvc", "r").read()) + [
  45. "transformation_add_MT_language",
  46. "CausalBlockDiagrams",
  47. "Trace",
  48. "MM_rendered_graphical",
  49. "MM_rendered_plot",
  50. "",
  51. "CBD_RAM",
  52. "model_modify",
  53. "__merged_CBD_RAM",
  54. "instantiate",
  55. "Association",
  56. "TracabilityGraphical",
  57. "CausalBlockDiagrams/Block",
  58. "MM_rendered_graphical/Group",
  59. "instantiate",
  60. "Association",
  61. "TracabilityPlot",
  62. "Trace/Signal",
  63. "MM_rendered_plot/Dataset",
  64. "exit",
  65. "transformation_RAMify",
  66. "__merged_CBD_RAM",
  67. "CBD_RAM",
  68. "transformation_add_MT",
  69. "CBD_RAM",
  70. "CausalBlockDiagrams",
  71. "MM_rendered_graphical",
  72. "",
  73. "CausalBlockDiagrams",
  74. "MM_rendered_graphical",
  75. "",
  76. "render_graphical_CBD",
  77. ] + get_model_constructor(open("models/CBD_mapper.mvc", "r").read()) + [
  78. "transformation_add_MT",
  79. "CBD_RAM",
  80. "Trace",
  81. "MM_rendered_plot",
  82. "",
  83. "Trace",
  84. "MM_rendered_plot",
  85. "",
  86. "render_plot_trace",
  87. ] + get_model_constructor(open("models/trace_mapper.mvc", "r").read()) + [
  88. ]
  89. import urllib2
  90. import urllib
  91. import json
  92. import random
  93. taskname = str(random.random())
  94. INIT_TIMEOUT = 9999
  95. urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % taskname, "taskname": "task_manager"})), timeout=INIT_TIMEOUT).read()
  96. urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "data": json.dumps(commands), "taskname": taskname})), timeout=INIT_TIMEOUT).read()