Ejemplo n.º 1
0
def build_python(model, fast):
    name = flat_case(model['metadata']['name'])
    new_folder = 'python/' + name + '/'
    
    files = {}
    
    icon_file = model['metadata']['icon']
    
    if os.path.exists(icon_file):
        with open(icon_file, 'rb') as icon_data:
            files[new_folder+name+'.png'] = icon_data.read()
    else:
        model["metadata"]["icon"] = False
    
    files.update(build_metafiles(model))
    files.update(build_main(model))
    
    if not fast:
        new_file, database_file = build_database(model)
        build_locals(model, database_file)
        
        database_file.close()
        moves = {new_file: new_folder}
        for appendix in model['metadata']['appendix']:
            moves[appendix['file']] = new_folder
    else:
        moves = {}
    
    return files, moves
Ejemplo n.º 2
0
def build_main(model):
    name = model['metadata']['name']
    root = 'java/src/realtimeweb/' + flat_case(name) + '/'
    return {
        root + camel_case_caps(name) + '.java':
        env.get_template('main.java', globals=model).render()
    }
Ejemplo n.º 3
0
def build_database(model):
    name = flat_case(model['metadata']['name'])
    new_file = name+'.db'
    if os.path.exists(new_file):
        os.remove(new_file)
    database_file = sqlite3.connect(new_file)
    return new_file, database_file
Ejemplo n.º 4
0
def build_database(model):
    name = flat_case(model['metadata']['name'])
    new_file = name+'.csv'
    if os.path.exists(new_file):
        os.remove(new_file)
    with open(new_file, 'w') as output:
        pass
    return new_file
Ejemplo n.º 5
0
def build_classes(model):
    name = model['metadata']['name']
    root = 'java/src/realtimeweb/' + flat_case(name) + '/domain/'
    files = {}
    template = env.get_template('domain.java', globals={'object_is_map' : model["object_is_map"], 'metadata': model['metadata']})
    for object in model['objects']:
        filename = root + camel_case_caps(object['name']) + '.java'
        files[filename] = template.render(object=object)
    return files
Ejemplo n.º 6
0
def build_csv(model):
    files = {}
    #files.update(build_metafiles(model))
    
    moves = {}
    moves.update(build_locals(model))
    for appendix in model['metadata']['appendix']:
        moves[appendix['file']] = 'csv/' + flat_case(model['metadata']['name']) + '/'
    
    return files, moves
Ejemplo n.º 7
0
def build_classes(model):
    name = model['metadata']['name']
    root = 'java/src/realtimeweb/' + flat_case(name) + '/domain/'
    files = {}
    template = env.get_template('domain.java',
                                globals={
                                    'object_is_map': model["object_is_map"],
                                    'metadata': model['metadata']
                                })
    for object in model['objects']:
        filename = root + camel_case_caps(object['name']) + '.java'
        files[filename] = template.render(object=object)
    return files
Ejemplo n.º 8
0
def build_locals(model):
    locals = model["locals"]
    hardware = model['metadata']['hardware']
    module_name = flat_case(model['metadata']['name'])    
    moves = {}
    
    for local in locals:
        name = flat_case(local["name"])
        new_file = name+'.csv'
        new_small_file = name+'_small.csv'
        file = local["file"]
        type = local["type"]
        with open(file, "r") as local_file:
            if type == "json":
                data_list = json.load(local_file)
                json_list = [OrderedDict(sorted(flatten_json(_byteify(element), '_').items()))
                             for element in data_list]
                write_list_of_dictionaries(new_file, json_list)
                moves[new_file] = 'csv/'+module_name+'/'
                write_list_of_dictionaries(new_small_file, json_list[:hardware])
                moves[new_small_file] = 'csv/'+module_name+'/'
            elif type == "csv":
                pass
    return moves
Ejemplo n.º 9
0
def build_main(model):
    name = model['metadata']['name']
    return {'python/' + flat_case(name) + '/' + flat_case(name) + '.py' :
                env.get_template('main.py').render(**model)}
Ejemplo n.º 10
0
def build_metafiles(model):
    name = model['metadata']['name']
    return {
            'python/' + flat_case(name) + '/' + flat_case(name) + '.html' : env.get_template('main.html').render(**model),
            'python/' + flat_case(name) + '/' + flat_case(name) + '_preview.html' : env.get_template('preview.html').render(**model)
            }
Ejemplo n.º 11
0
def build_main(model):
    name = model['metadata']['name']
    return {'python/' + flat_case(name) + '/main.py' :
                env.get_template('main.py', globals=model).render(),
            'python/' + flat_case(name) + '/__init__.py' :
                env.get_template('__init__.py', globals=model).render()}
Ejemplo n.º 12
0
def build_main(model):
    name = model['metadata']['name']
    root = 'java/src/realtimeweb/' + flat_case(name) + '/'
    return {root + camel_case_caps(name) + '.java' :
                env.get_template('main.java', globals=model).render()}