Exemple #1
0
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)
Exemple #2
0
    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()
Exemple #3
0
    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()
Exemple #4
0
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)
Exemple #5
0
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)
Exemple #6
0
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))