{% extends "default/module.html.jinja2" %}
{#
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 class(cls) %}
        <span class="name">{{ cls.qualname.replace("Events", " Events").replace("AdvancedLifecycle", "Advanced Lifecycle") }}</span>
    {% endmacro %}
    {% macro view_source_state(doc) %}{% endmacro %}
    {% macro view_source_button(doc) %}{% endmacro %}
    {% macro view_source_code(doc) %}{% endmacro %}
    {% macro decorators(doc) %}{% 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.dns" %}
            {% if doc.qualname.startswith("DNSFlow") %}
                {{ 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.proxy.context" %}
            {% if doc.qualname is not in(["Context.__init__", "Context.fork", "Context.options"]) %}
                {{ default_is_public(doc) }}
            {% endif %}
        {% elif doc.modulename == "mitmproxy.tls" %}
            {% if doc.qualname is not in(["TlsData.__init__", "ClientHelloData.__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 %}
