{% macro links(name) -%} link | top {% endmacro %} {% set ns = namespace(prev='none') %} {% for type, name, args, doc in api %} {% if type not in ('submodule', 'dependence') and ns.prev in ('submodule', 'dependence') %} {% endif%} {% if type == 'module' %}

module {{ name }} {{ links(name) }}

{% elif type in ('submodule', 'dependence') %} {% if ns.prev not in ('submodule', 'dependence') %}
Module dependences: {% else %}, {% endif %} {{ wiki(name) }} {% elif type == 'class' %}

class {{ name }} {{ links(name) }}

{% elif type == 'property' %}

{{ local_name(name) }} ({{ property_info(args)|e }}) {{ links(name) }}

{% elif type in ('method', 'descriptor') and local_name(name)[:2] != '__' %}

def {{ local_name(name) }}{{ args|truncate(end='...)')|e }} {{ links(name) }}

{% elif type == 'staticmethod' and local_name(name)[:2] != '__' %}

@staticmethod
def {{ local_name(name) }}{{ args|truncate(end='...)')|e }} {{ links(name) }}

{% elif type == 'function' and not (local_name(name)[0] == '_') %}

def {{ name }}{{ args|truncate(end='...)')|e }} {{ links(name) }}

{% else %} {% set type = 'dontwant' %} {% endif %} {% if type not in ('dontwant', 'submodule', 'dependence') %}
{{ wiki(doc) }}
{% endif %} {% set ns.prev = type %} {% endfor %}