upload_mappers.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. "MM_rendered_graphical",
  28. ] + get_model_constructor(open("models/MM_rendered_graphical.mvc", "r").read()) + [
  29. "model_add",
  30. "CausalBlockDiagrams",
  31. "my_CBD",
  32. ] + get_model_constructor(open("integration/code/my_cbd.mvc", "r").read()) + [
  33. "model_list",
  34. "transformation_add_MT_language",
  35. "CausalBlockDiagrams",
  36. "MM_rendered_graphical",
  37. "",
  38. "CBD_RAM",
  39. "model_modify",
  40. "__merged_CBD_RAM",
  41. "instantiate",
  42. "Association",
  43. "TracabilityLink",
  44. "CausalBlockDiagrams/Block",
  45. "MM_rendered_graphical/Group",
  46. "exit",
  47. "transformation_RAMify",
  48. "__merged_CBD_RAM",
  49. "CBD_RAM",
  50. "transformation_add_MT",
  51. "CBD_RAM",
  52. "CausalBlockDiagrams",
  53. "MM_rendered_graphical",
  54. "",
  55. "CausalBlockDiagrams",
  56. "MM_rendered_graphical",
  57. "",
  58. "render_graphical_CBD",
  59. ] + get_model_constructor(open("models/CBD_mapper.mvc", "r").read()) + [
  60. ]
  61. import urllib2
  62. import urllib
  63. import json
  64. import random
  65. taskname = str(random.random())
  66. INIT_TIMEOUT = 9999
  67. urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % taskname, "taskname": "task_manager"})), timeout=INIT_TIMEOUT).read()
  68. urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "data": json.dumps(commands), "taskname": taskname})), timeout=INIT_TIMEOUT).read()