You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
matrix-spec-proposals/templating/internal/sections.py

48 lines
1.5 KiB
Python

"""Contains all the sections for the spec."""
from . import AccessKeyStore
import os
def _render_section_room_events(env, units):
template = env.get_template("events.tmpl")
examples = units.get("event-examples")
schemas = units.get("event-schemas")
sections = []
for event_name in schemas:
if not event_name.startswith("m.room"):
continue
sections.append(template.render(
example=examples[event_name],
event=schemas[event_name]
))
return "\n\n".join(sections)
def _render_ce_type(env, units, type):
template = env.get_template("common-event-fields.tmpl")
ce_types = units.get("common-event-fields")
return template.render(common_event=ce_types[type])
def _render_ce_fields(env, units):
return _render_ce_type(env, units, "event")
def _render_cre_fields(env, units):
return _render_ce_type(env, units, "room_event")
def _render_cse_fields(env, units):
return _render_ce_type(env, units, "state_event")
SECTION_DICT = {
"room_events": _render_section_room_events,
"common_event_fields": _render_ce_fields,
"common_state_event_fields": _render_cse_fields,
"common_room_event_fields": _render_cre_fields
}
def load(env, units):
store = AccessKeyStore()
for section_key in SECTION_DICT:
section = SECTION_DICT[section_key](env, units)
print "Generated section '%s' : %s" % (
section_key, section[:60].replace("\n","")
)
store.add(section_key, section)
return store