model_object_visitor.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from model_visitor import ModelVisitor
  2. from compiler import main as do_compile
  3. import os
  4. import urllib2
  5. import urllib
  6. import json
  7. def jsonstr(s):
  8. return '"%s"' % s
  9. def empty(s):
  10. return None
  11. class ModelObjectVisitor(ModelVisitor):
  12. def __init__(self, args):
  13. ModelVisitor.__init__(self, args)
  14. self.username = args[0]
  15. self.obj_file = args[1]
  16. self.real_file = args[2]
  17. self.address = args[3]
  18. def dump(self):
  19. v = ModelVisitor.dump(self)
  20. data = []
  21. data.append(["V", '4'])
  22. for i in v:
  23. data.append(["V", i])
  24. data.append(["V", '"exit"'])
  25. # Wait for kernel to signal that it finished
  26. data.append(["V", '2'])
  27. urllib2.urlopen(urllib2.Request(self.address, urllib.urlencode({"op": "set_input", "data": json.dumps(data), "username": self.username}))).read()
  28. v = urllib2.urlopen(urllib2.Request(self.address, urllib.urlencode({"op": "get_output", "username": self.username}))).read()
  29. v = v.split("=", 2)[2]
  30. if v == "DONE":
  31. return True
  32. else:
  33. return False