def onConnection(websocket): codeRunner = None app.logger.info('NEW WEBSOCKET CONNECTION') while not websocket.closed: gevent.sleep() message = websocket.receive() if (message == None): continue message = json.loads(message) app.logger.info('WEBSOCKET MESSAGE %s', message['type']) if message['type'] == 'run': codeRunner = CodeRunner(message['code'], message['sourceLocs']) app.logger.debug('STARTING CODERUNNER') codeRunner.start() codeRunnerBackend.register(websocket, codeRunner) app.logger.debug('STARTED CODERUNNER') elif message['type'] == 'kill': app.logger.debug('STOPPING CODERUNNER') codeRunnerBackend.stop(websocket) app.logger.debug('STOPPED CODERUNNER') else: raise ValueError('unknown message type {}'.format(message['type'])) app.logger.info('WEBSOCKET CONNECTION CLOSED') codeRunnerBackend.stop(websocket)
def __init__(self, view=None, path=None): self.view = view self.image_path = path self.processor = CodeMagnetsImageProcessor() self.processor.train(readFromFile=True, path="data.csv") self.code_generator = CodeGenerator() self.code_runner = CodeRunner()
class Controller: def __init__(self, view=None, path=None): self.view = view self.image_path = path self.processor = CodeMagnetsImageProcessor() self.processor.train(readFromFile=True, path="data.csv") self.code_generator = CodeGenerator() self.code_runner = CodeRunner() def set_view(self, v): self.view = v def set_image_path(self, path): self.image_path = path print "Controller.image_path set to: "+self.image_path def process(self): if not self._process_precondition(): return None r = self.processor.process(self.image_path) print r self._send_output(r) def generate(self): x = self.do_code_generation() print "done generate()" return x def execute(self, code): print "Controller.execute(): "+code x = self.do_execute(code) print "done execute()" return x def _process_precondition(self): if not self.image_path: return False elif not self.processor: return False else: return True def _send_output(self, data): if self.view: self.view.show_code(data) def do_code_generation(self): return self.code_generator.get_code(self.view.get_output_text()) def do_execute(self, c): return self.code_runner.execute(c)
class Controller: def __init__(self, view=None, path=None): self.view = view self.image_path = path self.processor = CodeMagnetsImageProcessor() self.processor.train(readFromFile=True, path="data.csv") self.code_generator = CodeGenerator() self.code_runner = CodeRunner() def set_view(self, v): self.view = v def set_image_path(self, path): self.image_path = path print "Controller.image_path set to: " + self.image_path def process(self): if not self._process_precondition(): return None r = self.processor.process(self.image_path) print r self._send_output(r) def generate(self): x = self.do_code_generation() print "done generate()" return x def execute(self, code): print "Controller.execute(): " + code x = self.do_execute(code) print "done execute()" return x def _process_precondition(self): if not self.image_path: return False elif not self.processor: return False else: return True def _send_output(self, data): if self.view: self.view.show_code(data) def do_code_generation(self): return self.code_generator.get_code(self.view.get_output_text()) def do_execute(self, c): return self.code_runner.execute(c)
from flask import Flask, abort, request, jsonify from flask.views import MethodView from concurrent.futures import ThreadPoolExecutor from time import sleep from Constant import base64_str_to_bytes, bytes_to_base64_str, dic_bytes_content_to_base64, dic_base64_to_bytes from KeyManager import KeyManager from FileReceiver import FileReceiver from CodeRunner import CodeRunner from BlockchainRecorder import BlockchainRecorder key_manager = KeyManager() file_receiver = FileReceiver() code_runner = CodeRunner() blockchain_recorder = BlockchainRecorder() executor = ThreadPoolExecutor(2) app = Flask(__name__) class Key(MethodView): def post(self): json_data = request.get_json(force=True) client_key = dic_base64_to_bytes(json_data)["client_key"] base64_return_value = dic_bytes_content_to_base64( key_manager.return_encrypted_keys_and_sign(client_key)) #print(key_manager.client_key_map_server_key) #print(key_manager.return_encrypted_keys_and_sign(client_key)) #print(len(key_manager.client_key_map_server_key))