{% macro format_arguments(arguments) %}
    {%- if arguments -%}
    {%- for arg in arguments -%}
        {%- if arg.type -%}
            {{ arg.name | to_safe_argument }}: {{arg.type}}
        {%- else -%}
            {{ arg.name | to_safe_argument }}
        {%- endif -%}
        {%- if arg.default -%}
            {{" "}}={{" "}}
            {%- if arg.default is string -%}
                "{{arg.default}}"
            {%- elif arg.default is iterable -%}
                [{{arg.default | join(",")}}]
            {%- elif arg.default is number -%}
                {{ arg.default }}
            {%- endif -%}
        {%- elif not arg.required -%}
            {{" = None"}}
        {%- endif -%}
        {{ ", " }}
    {% endfor -%}
    {%- endif -%}
{%- endmacro -%}

{% macro format_arguments_as_dict(arguments) -%}
    {{ "{" }}
    {%- if arguments -%}
    {% for arg in arguments %}
        "{{ arg.name }}": {{ arg.name | to_safe_argument }}
        {%- if not loop.last %}, {% endif -%}
    {% endfor %}
    {%- endif %}
    {{ "}" }}
{%- endmacro %}


{% macro format_url_parameters(parameters) -%}
    {% for param in parameters -%}
        {{ param.name }}={{ param.name | to_safe_argument }}
        {%- if not loop.last -%}, {% endif %}
    {%- endfor %}
{%- endmacro %}


{%- macro exception(exception) -%}
  {%- for word in exception.split(" ") -%}
    {{ word | capitalize }}
  {%- endfor -%}
  {{ "Exception" }}
{%- endmacro -%}