From 7f7fa2f91467fdb2b11312be8562e7b51fdeb199 Mon Sep 17 00:00:00 2001
From: Sebastian Koslowski <sebastian.koslowski@gmail.com>
Date: Tue, 3 May 2016 17:13:08 +0200
Subject: grc: added yaml/mako support

Includes basic converter from XML/Cheetah to YAML/Mako based block format.
---
 grc/core/schema_checker/block.py | 57 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 grc/core/schema_checker/block.py

(limited to 'grc/core/schema_checker/block.py')

diff --git a/grc/core/schema_checker/block.py b/grc/core/schema_checker/block.py
new file mode 100644
index 0000000000..db8830fddf
--- /dev/null
+++ b/grc/core/schema_checker/block.py
@@ -0,0 +1,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
+)
-- 
cgit v1.2.3