示例#1
0
 def common(self, name):
     mytemplate = Template(action_def)
     # name='about_date'
     result = (mytemplate.render(action=name,
                                 action_c=to_camel_case(name, True)))
     print(result)
     clipboard.copy(result)
示例#2
0
    def gen_jsonifier(self, pkg, target_dir):
        import io_utils
        entities = get_package_entities(pkg)
        if len(entities) > 0:
            norm_pkg = norm_package(pkg)
            pkg_file = norm_pkg + "_jsonifiers.dart"
            target_file = target_dir + '/' + pkg_file

            package_name = to_camel_case(norm_pkg, True)
            lines = []
            # import 'package:sagas_meta/src/models/product_subscription.dart';
            lines.append("import 'package:sagas_meta/src/models/%s.dart';" %
                         norm_pkg)
            lines.append(imports)

            lines.append('class %sJsonifier{' % package_name)

            for entity_name in entities:
                print('.. generate', entity_name)
                gen_bloc_jsonifier(lines, entity_name)
                gen_map_overrides(lines, entity_name)

            lines.append('}')
            cnt = ("\n".join(lines))

            io_utils.write_to_file(target_file, cnt)
            print('done.')
        else:
            print("package %s doesn't has entities.")
示例#3
0
def gen_blocs(package_name, services):
    lines = []
    lines.append(package_header)
    lines.append(
        class_header.format(package_name=to_camel_case(package_name, True)))
    lines.append(events_header)
    for service in services:
        evname = cap_first(service) + 'Ev'
        lines.append(event_condition % (evname, evname))

    lines.append(events_footer)

    for service in services:
        gen_event_map(lines, service)

    event_classes = []
    for service in services:
        define_pars, invoke_pars, define_ent = gen_bloc(lines, service)
        gen_event_class(event_classes, service, define_pars, invoke_pars,
                        define_ent)
        lines.append('')
        event_classes.append('')

    lines.append(package_footer)

    ## add the event class
    lines.append('\n'.join(event_classes))

    print("\n".join(lines))
    clipboard.copy("\n".join(lines))
示例#4
0
def gen_model_fields(model_def, model_name):
    field_builder = []
    imports_builder = []
    import_set = []
    model = model_def.models[model_name]
    for k, fld in model['fields'].items():
        primary_part = ""
        foreign_part = ""
        if is_primary(fld):
            primary_part = "primary_key=True,"
        if "foreign_key" in fld:
            foreign_part = "ForeignKey('{}'),".format(fld['foreign_key'])
        if fld['type'] == "relation":
            rel_model = fld['model']
            field_builder.append(
                rel_def.format(lname=to_camel_case(k),
                               model=to_camel_case(rel_model, True),
                               field=fld))
            if rel_model not in import_set:
                import_set.append(rel_model)
                imports_builder.append(
                    rel_imp_def.format(model=rel_model,
                                       cmodel=to_camel_case(rel_model, True)))
        else:
            # print(fld['doc'])
            field_builder.append(
                field_def.format(fld_name=k,
                                 fld_type=fld['type'].capitalize(),
                                 pk_part=primary_part,
                                 fk_part=foreign_part,
                                 field=fld))

    # process extends
    if 'extends' in model:
        base_model = model_def.base_models[model['extends']]
        for k, fld in base_model['fields'].items():
            # print(k)
            field_builder.append(
                field_def.format(fld_name=k,
                                 fld_type=fld['type'].capitalize(),
                                 pk_part="",
                                 fk_part="",
                                 field=fld))
    return ("    " + "\n    ".join(imports_builder + field_builder))
示例#5
0
 def input_to_dictionary(self, input, entity, of_type):
     output = of_type(self)
     m = self.oc.j.HashMap()
     for key in input:
         value = input[key]
         setattr(output, key, value)
         m[to_camel_case(key)] = value
     val = self.oc.delegator.create(entity, m)
     # print(to_snake_case('lastUpdatedStamp'), val['lastUpdatedStamp'], val)
     setattr(output, "last_updated_stamp", val['lastUpdatedStamp'])
     return output
示例#6
0
    def gen_samples(self):
        import clipboard

        package_name = 'common_srv'
        lines = []
        lines.append(package_header.format(package_name=to_camel_case(package_name, True)))

        services = ["testScv", 'createPerson', 'quickAddVariant']
        for service in services:
            gen_service_stub(lines, service)
            lines.append('')

        lines.append(package_footer)

        print("\n".join(lines))
        clipboard.copy("\n".join(lines))
示例#7
0
    def gen_sample_jsonifiers(self):
        import clipboard
        package_name = 'testing'
        lines = []
        lines.append(imports)
        lines.append('class %sEntityJsonifier{' %
                     to_camel_case(package_name, True))

        entities = ['Testing', 'TestingType', 'TestFieldType', 'Person']
        for entity in entities:
            gen_bloc_jsonifier(lines, entity)
            gen_map_overrides(lines, entity)

        # end package
        lines.append('}')
        print("\n".join(lines))
        clipboard.copy("\n".join(lines))
示例#8
0
def gen_services(group_name, srvs, target_file):
    deps = set()
    for srv in srvs:
        proc_service_refs(srv, deps)

    lines = []
    for dep in deps:
        lines.append("import 'package:sagas_meta/src/models/%s.dart';" % dep)

    lines.append(package_header.format(package_name=to_camel_case(group_name, True)))

    for service in srvs:
        gen_service_stub(lines, service)
        lines.append('')

    lines.append(package_footer)
    cnt = "\n".join(lines)
    io_utils.write_to_file(target_file, cnt)
示例#9
0
def gen_model_header(model_def, model_name):
    # model_name='people'
    # model_name='planet'
    return (model_header.format(name=model_name,
                                cname=to_camel_case(model_name, True),
                                model=model_def.models[model_name]))
示例#10
0
def gen_schema_updater(model_def, model_name):
    return (updater_def.format(name=model_name,
                               cname=to_camel_case(model_name, True),
                               model=model_def.models[model_name]))
示例#11
0
def gen_schema_creator(model_def, model_name):
    return (creator_def.format(name=model_name,
                               cname=to_camel_case(model_name, True),
                               model=model_def.models[model_name]))
示例#12
0
def gen_schema_header(model_def, model_name):
    return (schema_header.format(name=model_name,
                                 cname=to_camel_case(model_name, True),
                                 model=model_def.models[model_name]))