{% macro function_header(function) -%}
<dt><code class="descname">{{ function['name'] }}(
  {%- for arg in function['args']['args'] -%}
    {%- if loop.index0 %}, {% endif -%}
    {%- if function['args']['defaults']|length > loop.revindex -%}
    {{ arg }}={{ function['args']['defaults'][-loop.revindex] }}
    {%- else -%}
    {{ arg }}
    {%- endif -%}
  {%- endfor -%}
  {%- if function['args']['vargs'] -%}
    {%- if function['args']['args'] -%},{%- endif -%}
    *{{ function['args']['vargs'] }}
  {%- endif -%}
  {%- if function['args']['kwargs'] -%}
    {%- if function['args']['args'] or function['args']['vargs'] -%},{%- endif -%}
    **{{ function['args']['kwargs'] }}
  {%- endif -%}
)</code></dt>
{%- endmacro %}

{{ function_header(function) }}
{% if function['docstring'] %}
  {% set docstring = function["docstring"] %}
  <dd>{% include "docstring.html" %}</dd>
{% endif %}
