48 lines
No EOL
1.5 KiB
Python
48 lines
No EOL
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 |