Spaces:
Runtime error
Runtime error
| from __future__ import absolute_import | |
| from __future__ import print_function | |
| __author__ = 'Taneem Jan, taneemishere.github.io' | |
| import os.path | |
| from os.path import basename | |
| from classes.Sampler import * | |
| from classes.model.Main_Model import * | |
| def dsl_code_generation(input_image): | |
| trained_weights_path = "classes/model/bin" | |
| trained_model_name = "Main_Model" | |
| input_path = input_image | |
| output_path = "data/output/" | |
| search_method = "greedy" | |
| meta_dataset = np.load("{}/meta_dataset.npy".format(trained_weights_path), allow_pickle=True) | |
| input_shape = meta_dataset[0] | |
| output_size = meta_dataset[1] | |
| model = Main_Model(input_shape, output_size, trained_weights_path) | |
| model.load(trained_model_name) | |
| sampler = Sampler(trained_weights_path, input_shape, output_size, CONTEXT_LENGTH) | |
| file_name = 'input_image_from_interface.png' | |
| file_name = basename(file_name)[:basename(file_name).find(".")] | |
| evaluation_img = Utils.get_preprocessed_img(input_path, IMAGE_SIZE) | |
| if search_method == "greedy": | |
| result, _ = sampler.predict_greedy(model, np.array([evaluation_img])) | |
| print("Result greedy: \n {}".format(result)) | |
| with open("{}/{}.gui".format(output_path, file_name), 'w') as out_f: | |
| out_f.write(result.replace(START_TOKEN, "").replace(END_TOKEN, "")) | |
| return file_name, output_path | |
| def compile_gui(file_path, filename): | |
| from os.path import basename | |
| from compiler.Utils import Utils | |
| from compiler.Compiler import Compiler | |
| input_path = (file_path + filename) | |
| # remove the path | |
| file_ = os.path.basename(input_path) | |
| # remove the extension | |
| file_ = os.path.splitext(file_)[0] | |
| # add the extension of gui | |
| file_ = "data/output/" + file_ + ".gui" | |
| input_file = file_ | |
| FILL_WITH_RANDOM_TEXT = True | |
| TEXT_PLACE_HOLDER = "[]" | |
| dsl_path = "compiler/assets/web-dsl-mapping.json" | |
| compiler = Compiler(dsl_path) | |
| def render_content_with_text(key, value): | |
| if FILL_WITH_RANDOM_TEXT: | |
| if key.find("btn") != -1: | |
| value = value.replace(TEXT_PLACE_HOLDER, Utils.get_random_text()) | |
| elif key.find("title") != -1: | |
| value = value.replace(TEXT_PLACE_HOLDER, Utils.get_random_text(length_text=5, space_number=0)) | |
| elif key.find("text") != -1: | |
| value = value.replace(TEXT_PLACE_HOLDER, | |
| Utils.get_random_text(length_text=56, space_number=7, with_upper_case=False)) | |
| return value | |
| file_uid = basename(input_file)[:basename(input_file).find(".")] | |
| path = input_file[:input_file.find(file_uid)] | |
| input_file_path = "{}{}.gui".format(path, file_uid) | |
| output_file_path = "{}{}.html".format(path, file_uid) | |
| html_code = compiler.compile(input_file_path, output_file_path, rendering_function=render_content_with_text) | |
| print("Generated code is compiled..!!") | |
| return html_code | |
| def main_method(input_image_from_interface): | |
| file_name, file_output_path = dsl_code_generation(input_image_from_interface) | |
| result = compile_gui(file_output_path, file_name) | |
| return result | |