summaryrefslogtreecommitdiff
path: root/grc/core/schema_checker/block.py
blob: db8830fddf0194d3348f537cf7840788466c1b05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from .utils import Spec, expand, str_

PARAM_SCHEME = expand(
    base_key=str_,   # todo: rename/remove

    id=str_,
    label=str_,
    category=str_,

    dtype=str_,
    default=object,

    options=list,
    option_labels=list,
    option_attributes=Spec(types=dict, required=False, item_scheme=(str_, list)),

    hide=str_,
)
PORT_SCHEME = expand(
    label=str_,
    domain=str_,

    id=str_,
    dtype=str_,
    vlen=(int, str_),

    multiplicity=(int, str_),
    optional=(bool, int, str_),
    hide=(bool, str_),
)
TEMPLATES_SCHEME = expand(
    imports=str_,
    var_make=str_,
    make=str_,
    callbacks=list,
)
BLOCK_SCHEME = expand(
    id=Spec(types=str_, required=True, item_scheme=None),
    label=str_,
    category=(list, str_),
    flags=(list, str_),

    parameters=Spec(types=list, required=False, item_scheme=PARAM_SCHEME),
    inputs=Spec(types=list, required=False, item_scheme=PORT_SCHEME),
    outputs=Spec(types=list, required=False, item_scheme=PORT_SCHEME),

    checks=(list, str_),
    value=str_,

    templates=Spec(types=dict, required=False, item_scheme=TEMPLATES_SCHEME),

    documentation=str_,

    file_format=Spec(types=int, required=True, item_scheme=None),

    block_wrapper_path=str_,  # todo: rename/remove
)