コード例 #1
0
ファイル: model.py プロジェクト: bigfang/horn-py
def parse_fields(fields):
    from .schema import AFFIXES as SCH_AFFIXES

    attrs = [f.split(':') for f in fields]
    return [
        match(
            attr,
            [_, 'default', _, 'ref', _, TAIL],
            lambda x, val, tab, t: merge_fields(
                {
                    'field': x,
                    'cam_field': inflection.camelize(x),
                    'type': validate_type('ref', TYPES),
                    'table': tab,
                    'default': resolve_assign('ref', val)
                }, validate_attr(t, AFFIXES, SCH_AFFIXES)),  # noqa: E241,E272
            [_, 'ref', _, 'default', _, TAIL],
            lambda x, tab, val, t: merge_fields(
                {
                    'field': x,
                    'cam_field': inflection.camelize(x),
                    'type': validate_type('ref', TYPES),
                    'table': tab,
                    'default': resolve_assign('ref', val)
                }, validate_attr(t, AFFIXES, SCH_AFFIXES)),  # noqa: E241,E272
            [_, 'ref', _, TAIL],
            lambda x, tab, t: merge_fields(
                {
                    'field': x,
                    'cam_field': inflection.camelize(x),
                    'type': validate_type('ref', TYPES),
                    'table': tab
                }, validate_attr(t, AFFIXES, SCH_AFFIXES)),  # noqa: E241,E272
            [_, _, 'default', _, TAIL],
            lambda x, y, val, t: merge_fields(
                {
                    'field': x,
                    'type': validate_type(y, TYPES),
                    'default': resolve_assign(y, val)
                }, validate_attr(t, AFFIXES, SCH_AFFIXES)),  # noqa: E241,E272
            [_, _, TAIL],
            lambda x, y, t: merge_fields(
                {
                    'field': x,
                    'type': validate_type(y, TYPES)
                }, validate_attr(t, AFFIXES, SCH_AFFIXES))  # noqa: E241,E272
        ) for attr in attrs
    ]
コード例 #2
0
def parse_fields(fields):
    from .model import AFFIXES as MOD_AFFIXES

    attrs = [f.split(':') for f in fields]
    return [
        match(
            attr,
            [_, 'nest', _, TAIL],
            lambda x, schema, t: merge_fields(
                {
                    'field': x,
                    'type': 'Nested',
                    'schema': f'{inflection.camelize(schema)}Schema'
                }, validate_attr(t, AFFIXES, MOD_AFFIXES)),  # noqa: E241,E272
            [_, _, TAIL],
            lambda x, y, t: merge_fields(
                {
                    'field': x,
                    'type': validate_type(y, TYPES)
                }, validate_attr(t, AFFIXES, MOD_AFFIXES))  # noqa: E241,E272
        ) for attr in attrs
    ]