{% extends "default/module.html.jinja2" %}
{% block nav %}{% endblock %}
{% block style_layout %}{% endblock %}
{% block style_pygments %}{% endblock %}
{#
To document all event hooks, we do a bit of hackery:
  1. scripts/api-events.py auto-generates generated/events.py.
  2. scripts/api-render.py renders generated/events.py together with the remaining API docs.
  3. This templates hides some elements of the default pdoc template.

#}
{% if module.name == "events" %}
    {% macro module_name() %}
    {% endmacro %}
    {% macro view_source(doc) %}
        {% if doc.type != "module" %}
            {{ default_view_source(doc) }}
        {% endif %}
    {% endmacro %}
    {% macro is_public(doc) %}
        {% if doc.name != "__init__" %}
            {{ default_is_public(doc) }}
        {% endif %}
    {% endmacro %}
{% else %}
    {% macro is_public(doc) %}
        {% if doc.name is in(["from_state", "get_state", "set_state"]) %}
        {% elif doc.modulename == "mitmproxy.addonmanager" %}
            {% if doc.qualname.startswith("Loader") and not doc.name.startswith("_") %}
                true
            {% endif %}
        {% elif doc.modulename == "mitmproxy.certs" %}
            {% if doc.qualname == "Cert" or doc.qualname.startswith("Cert.") %}
                {{ default_is_public(doc) }}
            {% endif %}
        {% elif doc.modulename == "mitmproxy.coretypes.multidict" %}
            {% if doc.name == "_MultiDict" %}
                true
            {% else %}
                {{ default_is_public(doc) }}
            {% endif %}
        {% elif doc.modulename == "mitmproxy.flow" %}
            {% if doc.name is not in(["__init__", "reply", "metadata"]) %}
                {{ default_is_public(doc) }}
            {% endif %}
        {% elif doc.modulename == "mitmproxy.http" %}
            {% if doc.qualname is not in([
                    "Message.__init__", "Message.data",
                    "Request.data",
                    "Response.data",
                    ]) %}
                {{ default_is_public(doc) }}
            {% endif %}
        {% elif doc.modulename == "mitmproxy.proxy.server_hooks" %}
            {% if doc.qualname.startswith("ServerConnectionHookData") and doc.name != "__init__" %}
                {{ default_is_public(doc) }}
            {% endif %}
        {% elif doc.modulename == "mitmproxy.websocket" %}
            {% if doc.qualname != "WebSocketMessage.type" %}
                {{ default_is_public(doc) }}
            {% endif %}
        {% else %}
            {{ default_is_public(doc) }}
        {% endif %}
    {% endmacro %}
{% endif %}
