def generate_description()

in scripts/competitiond.py [0:0]


def generate_description():
    def display_schema(schema, doc, indent, first_indent=None):
        saved_indent = indent
        if first_indent is not None:
            indent = first_indent
        for field_name, field in schema._declared_fields.items():
            field_help = field.metadata.get("metadata", "")
            field_class = field.__class__
            if field_class is fields.Nested:
                doc += indent + "%s:\n" % field_name
                doc = display_schema(field.nested, doc, (indent + "  "))
            elif field_class is fields.List:
                doc += indent + "%s:\n" % field_name
                doc = display_schema(
                    field.container.nested, doc, (indent + "    "), first_indent=(indent + "  - "),
                )
                doc += indent + "  - ...\n"
            else:
                field_type = field.__class__.__name__.lower()
                if field.missing is missing and field.required:
                    doc += indent + "%s: %s, %s [required]\n" % (
                        field_name,
                        field_type,
                        field_help,
                    )
                elif field.missing is missing and not field.required:
                    doc += indent + "%s: %s, %s\n" % (field_name, field_type, field_help,)
                else:
                    doc += indent + "%s: %s, %s [default: %s]\n" % (
                        field_name,
                        field_type,
                        field_help,
                        json.dumps(field.missing).strip(),
                    )
            indent = saved_indent
        return doc

    return display_schema(ConfigSchema, __doc__, " " * 4)