datasette/docs/json_api_doc.py
2026-06-08 20:56:00 -07:00

20 lines
789 B
Python

def table_extras(cog):
from datasette.extras import ExtraScope
from datasette.views.table_extras import table_extra_registry
cog.out("\n.. list-table::\n")
cog.out(" :header-rows: 1\n\n")
cog.out(" * - Extra\n")
cog.out(" - Description\n")
for cls in table_extra_registry.public_classes_for_scope(ExtraScope.TABLE):
description = cls.description or ""
notes = []
if cls.expensive:
notes.append("May execute additional queries.")
if cls.docs_note:
notes.append(cls.docs_note)
if notes:
description = "{} ({})".format(description, " ".join(notes)).strip()
cog.out(" * - ``{}``\n".format(cls.key()))
cog.out(" - {}\n".format(description))
cog.out("\n")