Modelverse Kernel client. import sccd.runtime.accurate_time as accurate_time import time import os import sys import uuid import urllib import json import sys COMPILE_LOCAL = True if COMPILE_LOCAL: sys.path.append("interface/HUTN") from hutn_compiler.compiler import main as do_compile def clean_code(code): if code == "": return code code_fragments = code.split("\n") code_fragments = [i.rstrip() for i in code_fragments if i.strip() != ""] code_fragments = [i.replace(" ", "\t") for i in code_fragments] initial_tabs = min([len(i) - len(i.lstrip("\t")) for i in code_fragments]) code_fragments = [i[initial_tabs:] for i in code_fragments] code_fragments.append("") code = "\n".join(code_fragments) return code.encode('ascii', 'replace') def compile_model(model): temp_file = ".model_%s" % str(uuid.uuid4()) with open(temp_file, 'w') as f: f.write(model) compiled = do_compile(temp_file, "interface/HUTN/grammars/modelling.g", "M") return ["__LOCAL__"] + compiled def compile_code(code): temp_file = ".code_%s" % str(uuid.uuid4()) with open(temp_file, 'w') as f: f.write(code) compiled = do_compile(temp_file, "interface/HUTN/grammars/actionlanguage.g", "CS") return ["__LOCAL__"] + compiled