main.py 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import sys
  2. import argparse
  3. import wrappers.modelverse as mv
  4. from commons import new_instance_model, new_example_model
  5. from sketchUI.main import run_ui
  6. from evolution import upload_ops
  7. def upload_graph_MM():
  8. print("Uploading graph metamodel ...")
  9. try:
  10. mv.model_delete("formalisms/graphMM")
  11. except mv.UnknownLocation:
  12. pass
  13. content = open("models/sketching/graphMM.mvc").read()
  14. mv.model_add("formalisms/graphMM", "formalisms/SimpleClassDiagrams", content)
  15. def upload_example_models():
  16. print("Uploading example models ...")
  17. # clear all example models
  18. try:
  19. mv.model_delete("models/example")
  20. except mv.UnknownLocation:
  21. # folder does not exist, ignore
  22. pass
  23. content = open("models/sketching/example_model_1.mvc").read()
  24. mv.model_add("models/example/ex1", "formalisms/graphMM", content)
  25. mv.verify("models/example/ex1", "formalisms/graphMM")
  26. content = open("models/sketching/example_model_2.mvc").read()
  27. mv.model_add("models/example/ex2", "formalisms/graphMM", content)
  28. mv.verify("models/example/ex2", "formalisms/graphMM")
  29. def upload_instance_model():
  30. print("Uploading instance model ...")
  31. # clear all example models
  32. try:
  33. mv.model_delete("models/instance")
  34. except mv.UnknownLocation:
  35. # folder does not exist, ignore
  36. pass
  37. content = open("models/sketching/instance_model.mvc").read()
  38. mv.model_add("models/instance/im1", "formalisms/graphMM", content)
  39. mv.verify("models/instance/im1", "formalisms/graphMM")
  40. if __name__ == "__main__":
  41. parser = argparse.ArgumentParser()
  42. parser.add_argument("-u", action="store_true", default=False, help="Upload models")
  43. parser.add_argument("-im", action="store_true", default=False, help="Instance modeling")
  44. parser.add_argument("-exm", action="store_true", default=False, help="Example modeling")
  45. parser.add_argument("-m", help="Model to open")
  46. args = parser.parse_args()
  47. mv.init()
  48. mv.login("admin", "admin")
  49. # load modelverse with necessary models?
  50. if args.u:
  51. upload_graph_MM()
  52. #upload_example_models()
  53. #upload_instance_model()
  54. upload_ops.upload_evolution_ops()
  55. # determine modeling mode
  56. mode = None
  57. if args.im and args.exm or (not args.im and not args.exm):
  58. print("Choose either im or exm")
  59. sys.exit()
  60. if args.im:
  61. mode = "IM"
  62. else:
  63. mode = "EXM"
  64. # open existing model?
  65. if args.m:
  66. model = args.m
  67. else:
  68. # no model to open, create an empty one
  69. if mode == "IM":
  70. model = new_instance_model()
  71. else:
  72. model = new_example_model()
  73. run_ui(mode, model)
  74. print("verify ... ")
  75. print(mv.verify(model, "formalisms/graphMM"))
  76. sys.exit(0)