Add event table template. Also inspect arrays for objects.
This commit is contained in:
parent
0899e0b772
commit
a42a22028c
4 changed files with 37 additions and 6 deletions
|
@ -18,6 +18,7 @@
|
|||
"description": "Array of objects describing the candidates.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"title": "Candidate",
|
||||
"properties": {
|
||||
"sdpMid": {
|
||||
"type": "string",
|
||||
|
|
|
@ -79,9 +79,12 @@ def main(file_stream=None, out_dir=None):
|
|||
|
||||
return code
|
||||
|
||||
def indent(input, indent):
|
||||
def indent_block(input, indent):
|
||||
return input.replace("\n", ("\n" + " "*indent))
|
||||
|
||||
def indent(input, indent):
|
||||
return " "*indent + input
|
||||
|
||||
def wrap(input, wrap=80):
|
||||
return '\n'.join(textwrap.wrap(input, wrap))
|
||||
|
||||
|
@ -92,6 +95,7 @@ def main(file_stream=None, out_dir=None):
|
|||
)
|
||||
env.filters["jsonify"] = jsonify
|
||||
env.filters["indent"] = indent
|
||||
env.filters["indent_block"] = indent_block
|
||||
env.filters["wrap"] = wrap
|
||||
|
||||
# load up and parse the lowest single units possible: we don't know or care
|
||||
|
|
|
@ -53,7 +53,7 @@ def _load_schemas():
|
|||
for key_name in props:
|
||||
value_type = None
|
||||
required = key_name in required_keys
|
||||
desc = props[key_name].get("description")
|
||||
desc = props[key_name].get("description", "")
|
||||
|
||||
if props[key_name]["type"] == "object":
|
||||
if props[key_name].get("additionalProperties"):
|
||||
|
@ -67,8 +67,19 @@ def _load_schemas():
|
|||
props[key_name],
|
||||
enforce_title=True
|
||||
)
|
||||
value_type = nested_object[0]["title"]
|
||||
value_type = "{%s}" % nested_object[0]["title"]
|
||||
tables += nested_object
|
||||
elif props[key_name]["type"] == "array":
|
||||
# if the items of the array are objects then recurse
|
||||
if props[key_name]["items"]["type"] == "object":
|
||||
nested_object = get_content_fields(
|
||||
props[key_name]["items"],
|
||||
enforce_title=True
|
||||
)
|
||||
value_type = "[%s]" % nested_object[0]["title"]
|
||||
tables += nested_object
|
||||
else:
|
||||
value_type = "[%s]" % props[key_name]["type"]
|
||||
else:
|
||||
value_type = props[key_name]["type"]
|
||||
|
||||
|
@ -76,7 +87,8 @@ def _load_schemas():
|
|||
"key": key_name,
|
||||
"type": value_type,
|
||||
"required": required,
|
||||
"desc": desc
|
||||
"desc": desc,
|
||||
"req_str": "**Required.** " if required else ""
|
||||
})
|
||||
return tables
|
||||
|
||||
|
|
|
@ -1,9 +1,23 @@
|
|||
``{{event.type}}``
|
||||
{{(4 + event.type | length) * '-'}}
|
||||
{{event.desc}}
|
||||
{{event.desc or ""}}
|
||||
{% for table in event.content_fields -%}
|
||||
{{"``"+table.title+"``" if table.title else ""}}
|
||||
|
||||
{{event.content_fields | jsonify(4,4)}}
|
||||
================== ================= ===========================================
|
||||
Key Type Description
|
||||
================== ================= ===========================================
|
||||
{% for row in table.rows -%}
|
||||
{# -#}
|
||||
{# Row type needs to prepend spaces to line up with the type column (19 ch) -#}
|
||||
{# Desc needs to prepend the required text (maybe) and prepend spaces too -#}
|
||||
{# It also needs to then wrap inside the desc col (43 ch width) -#}
|
||||
{# -#}
|
||||
{{row.key}}{{row.type|indent(19-row.key|length)}}{{row.req_str | indent(18 - (row.type|length))}}{{row.desc|wrap(43)|indent_block(37)}}
|
||||
{% endfor -%}
|
||||
================== ================= ===========================================
|
||||
|
||||
{% endfor %}
|
||||
Example::
|
||||
|
||||
{{example.content | jsonify(4, 4)}}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue