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