', signature, count=1)
+
+ if stash := env.filters["stash_crossref"].stash:
+ for key, value in stash.items():
+ signature = re.sub(rf"\b{key}\b", value, signature)
+ stash.clear()
+
+ return signature
+
+
def do_order_members(
members: Sequence[Object | Alias],
order: Order | list[Order],
- members_list: bool | list[str] | None,
+ members_list: bool | list[str] | None, # noqa: FBT001
) -> Sequence[Object | Alias]:
"""Order members given an ordering method.
@@ -522,7 +591,7 @@ def _get_formatter() -> Callable[[str, int], str]:
def _get_ruff_formatter() -> Callable[[str, int], str] | None:
try:
- from ruff.__main__ import find_ruff_bin
+ from ruff.__main__ import find_ruff_bin # noqa: PLC0415
except ImportError:
return None
@@ -558,7 +627,7 @@ def formatter(code: str, line_length: int) -> str:
def _get_black_formatter() -> Callable[[str, int], str] | None:
try:
- from black import InvalidInput, Mode, format_str
+ from black import InvalidInput, Mode, format_str # noqa: PLC0415
except ModuleNotFoundError:
return None
@@ -591,7 +660,7 @@ def do_get_template(env: Environment, obj: str | Object) -> str:
extra_data = getattr(obj, "extra", {}).get("mkdocstrings", {})
if name := extra_data.get("template", ""):
return name
- name = obj.kind.value
+ name = obj.kind.value.replace(" ", "_")
# YORE: Bump 2: Replace block with `return f"{name}.html.jinja"`.
try:
template = env.get_template(f"{name}.html")
@@ -638,7 +707,7 @@ def _parse_docstring_summary(attribute: Attribute) -> str:
name=attribute.name,
description=_parse_docstring_summary(attribute),
annotation=attribute.annotation,
- value=attribute.value, # type: ignore[arg-type]
+ value=attribute.value,
)
for attribute in attributes
if not check_public or attribute.is_public
@@ -731,6 +800,34 @@ def do_as_modules_section(
)
+@pass_context
+def do_as_type_aliases_section(
+ context: Context, # noqa: ARG001
+ type_aliases: Sequence[TypeAlias],
+ *,
+ check_public: bool = True,
+) -> DocstringSectionTypeAliases:
+ """Build a type aliases section from a list of type aliases.
+
+ Parameters:
+ type_aliases: The type aliases to build the section from.
+ check_public: Whether to check if the type_alias is public.
+
+ Returns:
+ A type aliases docstring section.
+ """
+ return DocstringSectionTypeAliases(
+ [
+ DocstringTypeAlias(
+ name=type_alias.name,
+ description=type_alias.docstring.value.split("\n", 1)[0] if type_alias.docstring else "",
+ )
+ for type_alias in type_aliases
+ if not check_public or type_alias.is_public
+ ],
+ )
+
+
class AutorefsHook(AutorefsHookInterface):
"""Autorefs hook.
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja
index 519590e5..bad9ad54 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja
@@ -40,6 +40,7 @@ Context:
id=html_id,
class="doc doc-heading",
toc_label=(' '|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else attribute.name),
+ skip_inventory=config.skip_local_inventory,
) %}
{% block heading scoped %}
@@ -55,7 +56,7 @@ Context:
{% else %}
{%+ filter highlight(language="python", inline=True) %}
{{ attribute_name }}{% if attribute.annotation and config.show_signature_annotations %}: {{ attribute.annotation }}{% endif %}
- {% if attribute.value %} = {{ attribute.value }}{% endif %}
+ {% if config.show_attribute_values and attribute.value %} = {{ attribute.value }}{% endif %}
{% endfilter %}
{% endif %}
{% endblock heading %}
@@ -79,7 +80,7 @@ Context:
This block renders the signature for the attribute.
-#}
{% if config.separate_signature %}
- {% filter format_attribute(attribute, config.line_length, crossrefs=config.signature_crossrefs) %}
+ {% filter format_attribute(attribute, config.line_length, crossrefs=config.signature_crossrefs, show_value=config.show_attribute_values) %}
{{ attribute.name }}
{% endfilter %}
{% endif %}
@@ -93,6 +94,7 @@ Context:
id=html_id,
toc_label=(' '|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else attribute_name),
hidden=True,
+ skip_inventory=config.skip_local_inventory,
) %}
{% endfilter %}
{% endif %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/children.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/children.html.jinja
index 0b9fcd64..3be0a33a 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/children.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/children.html.jinja
@@ -45,7 +45,7 @@ Context:
) %}
{% if attributes %}
{% if config.show_category_heading %}
- {% filter heading(heading_level, id=html_id ~ "-attributes") %}Attributes{% endfilter %}
+ {% filter heading(heading_level, id=html_id ~ "-attributes", skip_inventory=config.skip_local_inventory) %}Attributes{% endfilter %}
{% endif %}
{% with heading_level = heading_level + extra_level %}
{% for attribute in attributes|order_members(config.members_order, members_list) %}
@@ -57,6 +57,26 @@ Context:
{% endif %}
{% endwith %}
+ {% with type_aliases = obj.type_aliases|filter_objects(
+ filters=config.filters,
+ members_list=members_list,
+ inherited_members=config.inherited_members,
+ keep_no_docstrings=config.show_if_no_docstring,
+ ) %}
+ {% if type_aliases %}
+ {% if config.show_category_heading %}
+ {% filter heading(heading_level, id=html_id ~ "-type_aliases") %}Type Aliases{% endfilter %}
+ {% endif %}
+ {% with heading_level = heading_level + extra_level %}
+ {% for type_alias in type_aliases|order_members(config.members_order, members_list) %}
+ {% if config.filters == "public" or members_list is not none or (not type_alias.is_imported or type_alias.is_public) %}
+ {% include type_alias|get_template with context %}
+ {% endif %}
+ {% endfor %}
+ {% endwith %}
+ {% endif %}
+ {% endwith %}
+
{% with classes = obj.classes|filter_objects(
filters=config.filters,
members_list=members_list,
@@ -65,7 +85,7 @@ Context:
) %}
{% if classes %}
{% if config.show_category_heading %}
- {% filter heading(heading_level, id=html_id ~ "-classes") %}Classes{% endfilter %}
+ {% filter heading(heading_level, id=html_id ~ "-classes", skip_inventory=config.skip_local_inventory) %}Classes{% endfilter %}
{% endif %}
{% with heading_level = heading_level + extra_level %}
{% for class in classes|order_members(config.members_order, members_list) %}
@@ -85,7 +105,7 @@ Context:
) %}
{% if functions %}
{% if config.show_category_heading %}
- {% filter heading(heading_level, id=html_id ~ "-functions") %}Functions{% endfilter %}
+ {% filter heading(heading_level, id=html_id ~ "-functions", skip_inventory=config.skip_local_inventory) %}Functions{% endfilter %}
{% endif %}
{% with heading_level = heading_level + extra_level %}
{% for function in functions|order_members(config.members_order, members_list) %}
@@ -108,7 +128,7 @@ Context:
) %}
{% if modules %}
{% if config.show_category_heading %}
- {% filter heading(heading_level, id=html_id ~ "-modules") %}Modules{% endfilter %}
+ {% filter heading(heading_level, id=html_id ~ "-modules", skip_inventory=config.skip_local_inventory) %}Modules{% endfilter %}
{% endif %}
{% with heading_level = heading_level + extra_level %}
{% for module in modules|order_members("alphabetical", members_list) %}
@@ -143,6 +163,11 @@ Context:
{% include attribute|get_template with context %}
{% endwith %}
+ {% elif child.is_type_alias %}
+ {% with type_alias = child %}
+ {% include type_alias|get_template with context %}
+ {% endwith %}
+
{% elif child.is_class %}
{% with class = child %}
{% include class|get_template with context %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/class.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/class.html.jinja
index 8a54dd1b..23b3f458 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/class.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/class.html.jinja
@@ -39,6 +39,7 @@ Context:
id=html_id,
class="doc doc-heading",
toc_label=(' '|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else class.name),
+ skip_inventory=config.skip_local_inventory,
) %}
{% block heading scoped %}
@@ -53,12 +54,18 @@ Context:
{{ class_name }}
{% elif config.merge_init_into_class and "__init__" in all_members %}
{% with function = all_members["__init__"] %}
- {%+ filter highlight(language="python", inline=True) -%}
+ {%+ filter highlight(language="python", inline=True) %}
+ {{ class_name -}}
+ {%- with obj = function -%}
+ {#- YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. -#}
+ {%- include "type_parameters"|get_template with context -%}
+ {%- endwith -%}
{#- YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. -#}
- {{ class_name }}{% include "signature"|get_template with context %}
- {%- endfilter %}
+ {%- include "signature"|get_template with context -%}
+ {% endfilter %}
{% endwith %}
{% else %}
+ {# TODO: Maybe render type parameters here. #}
{{ class_name }}
{% endif %}
{% endblock heading %}
@@ -82,26 +89,30 @@ Context:
This block renders the signature for the class.
Overloads of the `__init__` method are rendered if `merge_init_into_class` is enabled.
The actual `__init__` method signature is only rendered if `separate_signature` is also enabled.
+
+ If the class is generic, but the `__init__` method isn't or `merge_init_into_class` is disabled,
+ the class signature is rendered if `separate_signature` and `show_signature_type_parameters` are enabled.
+
+ If the `__init__` method or any overloads are generic, they are rendered as methods if
+ `merge_init_into_class`, `separate_signature` and `show_signature_type_parameters` are enabled.
-#}
- {% if config.merge_init_into_class %}
- {% if "__init__" in all_members %}
- {% with function = all_members["__init__"] %}
- {% if function.overloads and config.show_overloads %}
-
- {% for overload in function.overloads %}
- {% filter format_signature(overload, config.line_length, annotations=True, crossrefs=config.signature_crossrefs) %}
- {{ class.name }}
- {% endfilter %}
- {% endfor %}
-
- {% endif %}
- {% if config.separate_signature %}
- {% filter format_signature(function, config.line_length, crossrefs=config.signature_crossrefs) %}
- {{ class.name }}
- {% endfilter %}
- {% endif %}
- {% endwith %}
- {% endif %}
+ {% if config.merge_init_into_class and "__init__" in all_members %}
+ {% with function = all_members["__init__"] %}
+ {% if function.overloads and config.show_overloads %}
+
+ {% for overload in function.overloads %}
+ {% filter format_signature(overload, config.line_length, annotations=True, crossrefs=config.signature_crossrefs) %}
+ {{ class.name }}
+ {% endfilter %}
+ {% endfor %}
+
+ {% endif %}
+ {% if config.separate_signature and not (config.show_overloads and function.overloads and config.overloads_only) %}
+ {% filter format_signature(function, config.line_length, crossrefs=config.signature_crossrefs) %}
+ {{ class.name }}
+ {% endfilter %}
+ {% endif %}
+ {% endwith %}
{% endif %}
{% endblock signature %}
@@ -112,6 +123,7 @@ Context:
id=html_id,
toc_label=(' '|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else class.name),
hidden=True,
+ skip_inventory=config.skip_local_inventory,
) %}
{% endfilter %}
{% endif %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/docstring.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/docstring.html.jinja
index c560668e..cae4f50f 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/docstring.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/docstring.html.jinja
@@ -32,9 +32,15 @@ Context:
{% elif config.show_docstring_classes and section.kind.value == "classes" %}
{# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
{% include "docstring/classes"|get_template with context %}
+ {% elif config.show_docstring_type_aliases and section.kind.value == "type aliases" %}
+ {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
+ {% include "docstring/type_aliases"|get_template with context %}
{% elif config.show_docstring_modules and section.kind.value == "modules" %}
{# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
{% include "docstring/modules"|get_template with context %}
+ {% elif config.show_docstring_type_parameters and section.kind.value == "type parameters" %}
+ {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
+ {% include "docstring/type_parameters"|get_template with context %}
{% elif config.show_docstring_parameters and section.kind.value == "parameters" %}
{# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
{% include "docstring/parameters"|get_template with context %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja
index 1035ddf7..a3ea5f7f 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja
@@ -43,6 +43,7 @@ Context:
id=html_id ~ "(" ~ parameter.name ~ ")",
class="doc doc-heading doc-heading-parameter",
toc_label=(' '|safe if config.show_symbol_type_toc else '') + parameter.name,
+ skip_inventory=config.skip_local_inventory,
) %}
{{ parameter.name }}
{% endfilter %}
@@ -92,6 +93,7 @@ Context:
id=html_id ~ "(" ~ parameter.name ~ ")",
class="doc doc-heading doc-heading-parameter",
toc_label=(' '|safe if config.show_symbol_type_toc else '') + parameter.name,
+ skip_inventory=config.skip_local_inventory,
) %}
{{ parameter.name }}
{% endfilter %}
@@ -139,6 +141,7 @@ Context:
id=html_id ~ "(" ~ parameter.name ~ ")",
class="doc doc-heading doc-heading-parameter",
toc_label=(' '|safe if config.show_symbol_type_toc else '') + parameter.name,
+ skip_inventory=config.skip_local_inventory,
) %}
{{ parameter.name }}
{% endfilter %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_aliases.html b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_aliases.html
new file mode 100644
index 00000000..e9a99d1b
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_aliases.html
@@ -0,0 +1,10 @@
+{# YORE: Bump 2: Remove file. #}
+{% extends "_base/docstring/type_aliases.html.jinja" %}
+
+{% block logs scoped %}
+ {{ super() }}
+ {{ log.warning(
+ "DeprecationWarning: Extending '_base/docstring/type_aliases.html' is deprecated, extend '_base/docstring/type_aliases.html.jinja' instead. ",
+ once=True,
+ ) }}
+{% endblock logs %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_aliases.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_aliases.html.jinja
new file mode 100644
index 00000000..ceaa520c
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_aliases.html.jinja
@@ -0,0 +1,86 @@
+{#- Template for "Type Aliases" sections in docstrings.
+
+This template renders a list of documented type aliases in the format
+specified with the [`docstring_section_style`][] configuration option.
+
+Context:
+ section (griffe.DocstringSectionTypeAliases): The section to render.
+-#}
+
+{% block logs scoped %}
+ {#- Logging block.
+
+ This block can be used to log debug messages, deprecation messages, warnings, etc.
+ -#}
+ {{ log.debug("Rendering type aliases section") }}
+{% endblock logs %}
+
+{% import "language"|get_template as lang with context %}
+{#- Language module providing the `t` translation method. -#}
+
+{% if config.docstring_section_style == "table" %}
+ {% block table_style scoped %}
+ {#- Block for the `table` section style. -#}
+ {{ section.title or lang.t("Type Aliases:") }}
+
+
+
+ | {{ lang.t("Name") }} |
+ {{ lang.t("Description") }} |
+
+
+
+ {% for type_alias in section.value %}
+
+ {{ type_alias.name }} |
+
+
+ {{ type_alias.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
+
+ |
+
+ {% endfor %}
+
+
+ {% endblock table_style %}
+{% elif config.docstring_section_style == "list" %}
+ {% block list_style scoped %}
+ {#- Block for the `list` section style. -#}
+ {{ section.title or lang.t("Type Aliases:") }}
+
+ {% endblock list_style %}
+{% elif config.docstring_section_style == "spacy" %}
+ {% block spacy_style scoped %}
+ {#- Block for the `spacy` section style. -#}
+
+
+
+ | {{ (section.title or lang.t("TYPE ALIAS")).rstrip(":").upper() }} |
+ {{ lang.t("DESCRIPTION") }} |
+
+
+
+ {% for type_alias in section.value %}
+
+ {{ type_alias.name }} |
+
+
+ {{ type_alias.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
+
+ |
+
+ {% endfor %}
+
+
+ {% endblock spacy_style %}
+{% endif %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_parameters.html b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_parameters.html
new file mode 100644
index 00000000..90a1af38
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_parameters.html
@@ -0,0 +1,10 @@
+{# YORE: Bump 2: Remove file. #}
+{% extends "_base/docstring/type_parameters.html.jinja" %}
+
+{% block logs scoped %}
+ {{ super() }}
+ {{ log.warning(
+ "DeprecationWarning: Extending '_base/docstring/type_parameters.html' is deprecated, extend '_base/docstring/type_parameters.html.jinja' instead. ",
+ once=True,
+ ) }}
+{% endblock logs %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_parameters.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_parameters.html.jinja
new file mode 100644
index 00000000..8e83e8be
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/type_parameters.html.jinja
@@ -0,0 +1,208 @@
+{#- Template for "Parameters" sections in docstrings.
+
+This template renders a list of documented type parameters in the format
+specified with the [`docstring_section_style`][] configuration option.
+
+Context:
+ section (griffe.DocstringSectionTypeParameters): The section to render.
+-#}
+
+{% block logs scoped %}
+ {#- Logging block.
+
+ This block can be used to log debug messages, deprecation messages, warnings, etc.
+ -#}
+ {{ log.debug("Rendering type parameters section") }}
+{% endblock logs %}
+
+{% import "language"|get_template as lang with context %}
+{#- Language module providing the `t` translation method. -#}
+
+{% if config.docstring_section_style == "table" %}
+ {% block table_style scoped %}
+ {#- Block for the `table` section style. -#}
+
+
+ {{ section.title or lang.t(("Class " if obj.is_class else "Init " if obj.is_init_method else "") ~ "Type Parameters:") }}
+
+
+
+
+
+ | {{ lang.t("Name") }} |
+ {{ lang.t("Bound or Constraints") }} |
+ {{ lang.t("Description") }} |
+ {{ lang.t("Default") }} |
+
+
+
+ {% for type_parameter in section.value %}
+
+
+ {% if config.type_parameter_headings %}
+ {% filter heading(
+ heading_level + 1,
+ role="typeparam",
+ id=obj.path ~ "[" ~ type_parameter.name ~ "]",
+ class="doc doc-heading doc-heading-type_parameter",
+ toc_label=(' '|safe if config.show_symbol_type_toc else '') + type_parameter.name,
+ ) %}
+ {{ type_parameter.name }}
+ {% endfilter %}
+ {% else %}
+ {{ type_parameter.name }}
+ {% endif %}
+ |
+
+ {% if type_parameter.annotation %}
+ {% with expression = type_parameter.annotation %}
+ {% include "expression"|get_template with context %}
+ {% endwith %}
+ {% endif %}
+ |
+
+
+ {{ type_parameter.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
+
+ |
+
+ {% if type_parameter.default %}
+ {% with expression = type_parameter.default %}
+ {% include "expression"|get_template with context %}
+ {% endwith %}
+ {% else %}
+ {{ lang.t("required") }}
+ {% endif %}
+ |
+
+ {% endfor %}
+
+
+ {% endblock table_style %}
+{% elif config.docstring_section_style == "list" %}
+ {% block list_style scoped %}
+ {#- Block for the `list` section style. -#}
+
+
+ {{ section.title or lang.t(("Class " if obj.is_class else "Init " if obj.is_init_method else "") ~ "Type Parameters:") }}
+
+
+
+ {% endblock list_style %}
+{% elif config.docstring_section_style == "spacy" %}
+ {% block spacy_style scoped %}
+ {#- Block for the `spacy` section style. -#}
+
+
+
+ |
+
+ {{ (section.title or lang.t(("CLASS " if obj.is_class else "INIT " if obj.is_init_method else "") ~ "TYPE PARAMETER")).rstrip(":").upper() }}
+
+ |
+ {{ lang.t("DESCRIPTION") }} |
+
+
+
+ {% for type_parameter in section.value %}
+
+
+ {% if config.type_parameter_headings %}
+ {% filter heading(
+ heading_level + 1,
+ role="typeparam",
+ id=obj.path ~ "[" ~ type_parameter.name ~ "]",
+ class="doc doc-heading doc-heading-type_parameter",
+ toc_label=(' '|safe if config.show_symbol_type_toc else '') + type_parameter.name,
+ ) %}
+ {{ type_parameter.name }}
+ {% endfilter %}
+ {% else %}
+ {{ type_parameter.name }}
+ {% endif %}
+ |
+
+
+ {{ type_parameter.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
+
+
+ {% if type_parameter.constraints %}
+
+ {{ lang.t("CONSTRAINTS:") }}
+ {% for constraint in type_parameter.constraints -%}
+ {%- with expression = constraint -%}
+ {% include "expression"|get_template with context %}
+ {%- endwith -%}
+ {%- if not loop.last %}, {% endif -%}
+ {% endfor %}
+
+ {% elif type_parameter.bound %}
+
+ {{ lang.t("BOUND:") }}
+ {% with expression = type_parameter.bound %}
+ {% include "expression"|get_template with context %}
+ {% endwith %}
+
+ {% endif %}
+ {% if type_parameter.default %}
+
+ {{ lang.t("DEFAULT:") }}
+ {% with expression = type_parameter.default %}
+ {% include "expression"|get_template with context %}
+ {% endwith %}
+
+ {% endif %}
+
+ |
+
+ {% endfor %}
+
+
+ {% endblock spacy_style %}
+{% endif %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja
index d49e43be..54781739 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja
@@ -2,6 +2,10 @@
This template renders a Griffe expression,
which is a tree-like structure representing a Python expression.
+
+Context:
+ expression (griffe.Expr): The expression to render.
+ config (dict): The configuration options.
-#}
{% block logs scoped %}
@@ -16,6 +20,25 @@ which is a tree-like structure representing a Python expression.
This macro outputs a cross-reference to the given name.
+ Parameters:
+ name (griffe.ExprName): The name to cross-reference.
+ annotation_path (str): Either "brief", "source", or "full".
+
+ Returns:
+ Either a cross-reference (using an autoref element) or the name itself.
+ -#}
+ {%- if name.classname == "ExprName" and name.is_type_parameter -%}
+ {{ type_param_crossref(name) }}
+ {%- else -%}
+ {{ object_crossref(name, annotation_path) }}
+ {%- endif -%}
+{%- endmacro -%}
+
+{%- macro object_crossref(name, annotation_path) -%}
+ {#- Output a cross-reference to a Griffe object.
+
+ This macro outputs a cross-reference to the given name.
+
Parameters:
name (griffe.ExprName): The name to cross-reference.
annotation_path (str): Either "brief", "source", or "full".
@@ -50,6 +73,26 @@ which is a tree-like structure representing a Python expression.
{%- endwith -%}
{%- endmacro -%}
+{%- macro type_param_crossref(name) -%}
+ {#- Render a cross-reference to a type parameter heading.
+
+ Parameters:
+ name (griffe.ExprName): The name to cross-reference.
+
+ Returns:
+ The autorefs cross-reference, or the type parameter name.
+ -#}
+ {%- if not signature -%}
+ {{ name.name }}
+ {%- elif config.signature_crossrefs -%}
+ {%- filter stash_crossref(length=name.name|length) -%}
+ {{ name.name }}
+ {%- endfilter -%}
+ {%- else -%}
+ {{ name.name }}
+ {%- endif -%}
+{%- endmacro -%}
+
{%- macro param_crossref(expression) -%}
{#- Render a cross-reference to a parameter heading.
@@ -89,7 +132,14 @@ which is a tree-like structure representing a Python expression.
{%- elif config.unwrap_annotated and expression.classname == "ExprSubscript" and expression.canonical_path in ("typing.Annotated", "typing_extensions.Annotated") -%}
{{ render(expression.slice.elements[0], annotations_path) }}
{%- elif expression.classname == "ExprAttribute" -%}
- {%- if annotations_path == "brief" -%}
+ {%- if expression.first.is_type_parameter -%}
+ {{ type_param_crossref(expression.first) }}
+ {%- for element in expression -%}
+ {%- if not loop.first -%}
+ {{ render(element, "brief") }}
+ {%- endif -%}
+ {%- endfor -%}
+ {%- elif annotations_path == "brief" -%}
{%- if expression.last.is_enum_value -%}
{{ crossref(expression.last.parent, "brief", backlink_type) }}.value
{%- else -%}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/function.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/function.html.jinja
index 21888939..708fde68 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/function.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/function.html.jinja
@@ -46,6 +46,7 @@ Context:
id=html_id,
class="doc doc-heading",
toc_label=((' ')|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else function.name),
+ skip_inventory=config.skip_local_inventory,
) %}
{% block heading scoped %}
@@ -60,8 +61,10 @@ Context:
{{ function_name }}
{% else %}
{%+ filter highlight(language="python", inline=True) -%}
- {#- YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. -#}
- {{ function_name }}{% include "signature"|get_template with context %}
+ {{ function_name }}
+ {#- YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within block. -#}
+ {%- include "type_parameters"|get_template with context -%}
+ {%- include "signature"|get_template with context -%}
{%- endfilter %}
{% endif %}
{% endblock heading %}
@@ -94,7 +97,7 @@ Context:
{% endfor %}
{% endif %}
- {% if config.separate_signature %}
+ {% if config.separate_signature and not (config.show_overloads and function.overloads and config.overloads_only) %}
{% filter format_signature(function, config.line_length, crossrefs=config.signature_crossrefs) %}
{{ function.name }}
{% endfilter %}
@@ -110,6 +113,7 @@ Context:
id=html_id,
toc_label=((' ')|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else function.name),
hidden=True,
+ skip_inventory=config.skip_local_inventory,
) %}
{% endfilter %}
{% endif %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html.jinja
index bcdcce2d..a2e38b7c 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html.jinja
@@ -10,8 +10,13 @@
{% macro t(key) %}{{ {
"ATTRIBUTE": "ATTRIBUTE",
"Attributes:": "Attributes:",
+ "BOUND:": "BOUND:",
+ "Bound or Constraints": "Bound or Constraints",
"Classes:": "Classes:",
+ "Class Type Parameters:": "Class Type Parameters:",
+ "CLASS TYPE PARAMETER": "CLASS TYPE PARAMETER",
"CLASS": "CLASS",
+ "CONSTRAINTS:": "CONSTRAINTS:",
"DEFAULT:": "DEFAULT:",
"Default": "Default",
"default:": "default:",
@@ -20,6 +25,8 @@
"Examples:": "Examples:",
"Functions:": "Functions:",
"FUNCTION": "FUNCTION",
+ "Init Type Parameters:": "Init Type Parameters:",
+ "INIT TYPE PARAMETER": "INIT TYPE PARAMETER",
"Methods:": "Methods:",
"METHOD": "METHOD",
"Modules:": "Modules:",
@@ -38,6 +45,10 @@
"Source code in": "Source code in",
"TYPE:": "TYPE:",
"Type": "Type",
+ "Type Aliases:": "Type Aliases:",
+ "TYPE ALIAS": "TYPE ALIAS",
+ "Type Parameters:": "Type Parameters:",
+ "TYPE PARAMETER": "TYPE PARAMETER",
"WARNS": "WARNS",
"Warns:": "Warns:",
"YIELDS": "YIELDS",
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html.jinja
index 0393ca03..be0dd62b 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html.jinja
@@ -10,8 +10,13 @@
{% macro t(key) %}{{ {
"ATTRIBUTE": "属性",
"Attributes:": "属性:",
+ "BOUND:": "BOUND:",
+ "Bound or Constraints": "Bound or Constraints",
"Classes:": "クラス:",
- "CLASS": "クラス",
+ "Class Type Parameters:": "Class Type Parameters:",
+ "CLASS TYPE PARAMETER": "CLASS TYPE PARAMETER",
+ "CLASS": "CLASS",
+ "CONSTRAINTS:": "CONSTRAINTS:",
"DEFAULT:": "デフォルト:",
"Default": "デフォルト",
"default:": "デフォルト:",
@@ -20,6 +25,8 @@
"Examples:": "例:",
"Functions:": "関数:",
"FUNCTION": "関数",
+ "Init Type Parameters:": "Init Type Parameters:",
+ "INIT TYPE PARAMETER": "INIT TYPE PARAMETER",
"Methods:": "メソッド:",
"METHOD": "メソッド",
"Modules:": "モジュール:",
@@ -38,6 +45,10 @@
"Source code in": "ソースコード位置:",
"TYPE:": "タイプ:",
"Type": "タイプ",
+ "Type Aliases:": "Type Aliases:",
+ "TYPE ALIAS": "TYPE ALIAS",
+ "Type Parameters:": "Type Parameters:",
+ "TYPE PARAMETER": "TYPE PARAMETER",
"WARNS": "警告",
"Warns:": "警告:",
"YIELDS": "返す",
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja
index e57169ad..3f1e3481 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja
@@ -10,8 +10,13 @@
{% macro t(key) %}{{ {
"ATTRIBUTE": "属性",
"Attributes:": "属性:",
+ "BOUND:": "BOUND:",
+ "Bound or Constraints": "Bound or Constraints",
"Classes:": "类:",
- "CLASS": "类",
+ "Class Type Parameters:": "Class Type Parameters:",
+ "CLASS TYPE PARAMETER": "CLASS TYPE PARAMETER",
+ "CLASS": "CLASS",
+ "CONSTRAINTS:": "CONSTRAINTS:",
"DEFAULT:": "默认:",
"Default": "默认",
"default:": "默认:",
@@ -20,6 +25,8 @@
"Examples:": "示例:",
"Functions:": "函数:",
"FUNCTION": "函数",
+ "Init Type Parameters:": "Init Type Parameters:",
+ "INIT TYPE PARAMETER": "INIT TYPE PARAMETER",
"Methods:": "方法:",
"METHOD": "方法",
"Modules:": "模块:",
@@ -38,6 +45,10 @@
"Source code in": "源代码位于:",
"TYPE:": "类型:",
"Type": "类型",
+ "Type Aliases:": "Type Aliases:",
+ "TYPE ALIAS": "TYPE ALIAS",
+ "Type Parameters:": "Type Parameters:",
+ "TYPE PARAMETER": "TYPE PARAMETER",
"Warns:": "警告:",
"WARNS": "警告",
"YIELDS": "产生",
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja
index 283f2654..c5e4a400 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja
@@ -39,6 +39,7 @@ Context:
id=html_id,
class="doc doc-heading",
toc_label=(' '|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else module.name),
+ skip_inventory=config.skip_local_inventory,
) %}
{% block heading scoped %}
@@ -76,6 +77,7 @@ Context:
id=html_id,
toc_label=(' '|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else module.name),
hidden=True,
+ skip_inventory=config.skip_local_inventory,
) %}
{% endfilter %}
{% endif %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/summary.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/summary.html.jinja
index 78b0b9d7..477d0b0d 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/summary.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/summary.html.jinja
@@ -13,6 +13,11 @@
{% include "summary/modules"|get_template with context %}
{% endif %}
+ {% if config.summary.type_aliases %}
+ {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
+ {% include "summary/type_aliases"|get_template with context %}
+ {% endif %}
+
{% if config.summary.classes %}
{# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
{% include "summary/classes"|get_template with context %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/summary/type_aliases.html b/src/mkdocstrings_handlers/python/templates/material/_base/summary/type_aliases.html
new file mode 100644
index 00000000..68554b8c
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/summary/type_aliases.html
@@ -0,0 +1,10 @@
+{# YORE: Bump 2: Remove file. #}
+{% extends "_base/summary/type_aliases.html.jinja" %}
+
+{% block logs scoped %}
+ {{ super() }}
+ {{ log.warning(
+ "DeprecationWarning: Extending '_base/type_aliases/classes.html' is deprecated, extend '_base/type_aliases/classes.html.jinja' instead.",
+ once=True,
+ ) }}
+{% endblock logs %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/summary/type_aliases.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/summary/type_aliases.html.jinja
new file mode 100644
index 00000000..9ebc2b23
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/summary/type_aliases.html.jinja
@@ -0,0 +1,24 @@
+{#- Summary of type aliases. -#}
+
+{% block logs scoped %}
+ {#- Logging block.
+
+ This block can be used to log debug messages, deprecation messages, warnings, etc.
+ -#}
+{% endblock logs %}
+
+{% if not obj.docstring.parsed | selectattr("kind.value", "eq", "type aliases") | list %}
+ {% with section = obj.type_aliases
+ |filter_objects(
+ filters=config.filters,
+ members_list=members_list,
+ inherited_members=config.inherited_members,
+ keep_no_docstrings=config.show_if_no_docstring,
+ )
+ |order_members("alphabetical", members_list)
+ |as_type_aliases_section(check_public=not members_list)
+ %}
+ {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
+ {% if section %}{% include "docstring/type_aliases"|get_template with context %}{% endif %}
+ {% endwith %}
+{% endif %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/type_alias.html b/src/mkdocstrings_handlers/python/templates/material/_base/type_alias.html
new file mode 100644
index 00000000..d811f7f3
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/type_alias.html
@@ -0,0 +1,10 @@
+{# YORE: Bump 2: Remove file. #}
+{% extends "_base/type_alias.html.jinja" %}
+
+{% block logs scoped %}
+ {{ super() }}
+ {{ log.warning(
+ "DeprecationWarning: Extending '_base/type_alias.html' is deprecated, extend '_base/type_alias.html.jinja' instead. ",
+ once=True,
+ ) }}
+{% endblock logs %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/type_alias.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/type_alias.html.jinja
new file mode 100644
index 00000000..bb7d4d71
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/type_alias.html.jinja
@@ -0,0 +1,120 @@
+{#- Template for Python type aliases.
+
+This template renders a Python type alias.
+
+Context:
+ type_alias (griffe.TypeAlias): The type alias to render.
+ root (bool): Whether this is the root object, injected with `:::` in a Markdown page.
+ heading_level (int): The HTML heading level to use.
+ config (dict): The configuration options.
+-#}
+
+{% block logs scoped %}
+ {#- Logging block.
+
+ This block can be used to log debug messages, deprecation messages, warnings, etc.
+ -#}
+ {{ log.debug("Rendering " + type_alias.path) }}
+{% endblock logs %}
+
+
+ {% with obj = type_alias, html_id = type_alias.path %}
+
+ {% if root %}
+ {% set show_full_path = config.show_root_full_path %}
+ {% set root_members = True %}
+ {% elif root_members %}
+ {% set show_full_path = config.show_root_members_full_path or config.show_object_full_path %}
+ {% set root_members = False %}
+ {% else %}
+ {% set show_full_path = config.show_object_full_path %}
+ {% endif %}
+
+ {% set type_alias_name = type_alias.path if show_full_path else type_alias.name %}
+
+ {% if not root or config.show_root_heading %}
+ {% filter heading(
+ heading_level,
+ role="typealias",
+ id=html_id,
+ class="doc doc-heading",
+ toc_label=('
'|safe if config.show_symbol_type_toc else '') + type_alias.name,
+ ) %}
+
+ {% block heading scoped %}
+ {#- Heading block.
+
+ This block renders the heading for the type alias.
+ -#}
+ {% if config.show_symbol_type_heading %}
{% endif %}
+ {% if config.separate_signature %}
+
{{ type_alias_name }}
+ {% else %}
+ {%+ filter highlight(language="python", inline=True) %}
+ {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
+ {{ type_alias_name }}{% include "type_parameters"|get_template with context %} = {{ type_alias.value }}
+ {% endfilter %}
+ {% endif %}
+ {% endblock heading %}
+
+ {% block labels scoped %}
+ {#- Labels block.
+
+ This block renders the labels for the type alias.
+ -#}
+ {% with labels = type_alias.labels %}
+ {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
+ {% include "labels"|get_template with context %}
+ {% endwith %}
+ {% endblock labels %}
+
+ {% endfilter %}
+
+ {% block signature scoped %}
+ {#- Signature block.
+
+ This block renders the signature for the type alias.
+ -#}
+ {% if config.separate_signature %}
+ {% filter format_type_alias(type_alias, config.line_length, crossrefs=config.signature_crossrefs) %}
+ {{ type_alias.name }}
+ {% endfilter %}
+ {% endif %}
+ {% endblock signature %}
+
+ {% else %}
+ {% if config.show_root_toc_entry %}
+ {% filter heading(heading_level,
+ role="typealias",
+ id=html_id,
+ toc_label=('
'|safe if config.show_symbol_type_toc else '') + type_alias.name,
+ hidden=True,
+ ) %}
+ {% endfilter %}
+ {% endif %}
+ {% set heading_level = heading_level - 1 %}
+ {% endif %}
+
+
+ {% block contents scoped %}
+ {#- Contents block.
+
+ This block renders the contents of the type alias.
+ It contains other blocks that users can override.
+ Overriding the contents block allows to rearrange the order of the blocks.
+ -#}
+ {% block docstring scoped %}
+ {#- Docstring block.
+
+ This block renders the docstring for the type alias.
+ -#}
+ {% with docstring_sections = type_alias.docstring.parsed %}
+ {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
+ {% include "docstring"|get_template with context %}
+ {% endwith %}
+ {% endblock docstring %}
+ {% endblock contents %}
+
+
+ {% endwith %}
+
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/type_parameters.html b/src/mkdocstrings_handlers/python/templates/material/_base/type_parameters.html
new file mode 100644
index 00000000..782b1e8b
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/type_parameters.html
@@ -0,0 +1,10 @@
+{# YORE: Bump 2: Remove file. #}
+{% extends "_base/type_parameters.html.jinja" %}
+
+{% block logs scoped %}
+ {{ super() }}
+ {{ log.warning(
+ "DeprecationWarning: Extending '_base/type_parameters.html' is deprecated, extend '_base/type_parameters.html.jinja' instead.",
+ once=True,
+ ) }}
+{% endblock logs %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/type_parameters.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/type_parameters.html.jinja
new file mode 100644
index 00000000..59fad354
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/type_parameters.html.jinja
@@ -0,0 +1,89 @@
+{#- Template for type parameters.
+
+This template renders the type parameters of a generic obj.
+It iterates over the type parameters of the object to rebuild the signature.
+The signature is the list of type parameters of a generic object, including their names, default values, and bound or constraints.
+
+Context:
+ obj (griffe.Object): The object to render.
+ config (dict): The configuration options.
+-#}
+
+{%- if config.show_signature_type_parameters -%}
+ {%- block logs scoped -%}
+ {#- Logging block.
+
+ This block can be used to log debug messages, deprecation messages, warnings, etc.
+ -#}
+ {{ log.debug("Rendering type parameters") }}
+ {%- endblock logs -%}
+
+ {%- with ns = namespace(annotation="", equal="=", default=False) -%}
+ {%- if obj.is_generic -%}
+ [
+ {%- for type_parameter in obj.type_parameters -%}
+ {#- Prepare type bound or constraints. -#}
+ {%- if config.show_signature_annotations and type_parameter.annotation is not none -%}
+ {%- set ns.equal = " = " -%}
+ {%- if config.separate_signature and config.signature_crossrefs -%}
+ {%- with expression = type_parameter.annotation -%}
+ {#- YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. -#}
+ {%- set ns.annotation -%}: {% include "expression"|get_template with context %}{%- endset -%}
+ {%- endwith -%}
+ {%- else -%}
+ {%- set ns.annotation = ": " + type_parameter.annotation|safe -%}
+ {%- endif -%}
+ {%- else -%}
+ {%- set ns.equal = "=" -%}
+ {%- set ns.annotation = "" -%}
+ {%- endif -%}
+
+ {#- Prepare default value. -#}
+ {%- if type_parameter.default is not none -%}
+ {%- set ns.default = True -%}
+ {%- else -%}
+ {%- set ns.default = False -%}
+ {%- endif -%}
+
+ {#- Prepare name. -#}
+ {%- set type_param_prefix -%}
+ {%- if type_parameter.kind == "type-var-tuple" -%}
+ *
+ {%- elif type_parameter.kind == "param-spec" -%}
+ **
+ {%- endif -%}
+ {%- endset -%}
+
+ {#- Render type parameter name with optional cross-reference to its heading. -#}
+ {{ type_param_prefix }}
+ {%- if config.separate_signature and config.type_parameter_headings and config.signature_crossrefs -%}
+ {%- filter stash_crossref(length=type_parameter.name|length) -%}
+ {{ type_parameter.name }}
+ {%- endfilter -%}
+ {%- else -%}
+ {{ type_parameter.name }}
+ {%- endif -%}
+
+ {#- Render type parameter bound or constraints. -#}
+ {{ ns.annotation }}
+
+ {#- Render type parameter default value. -#}
+ {%- if ns.default -%}
+ {{ ns.equal }}
+ {%- if config.signature_crossrefs and config.separate_signature -%}
+ {%- with expression = type_parameter.default -%}
+ {#- YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. -#}
+ {%- include "expression"|get_template with context -%}
+ {%- endwith -%}
+ {%- else -%}
+ {{ type_parameter.default|safe }}
+ {%- endif -%}
+ {%- endif -%}
+
+ {%- if not loop.last %}, {% endif -%}
+ {%- endfor -%}
+ ]
+ {%- endif -%}
+
+ {%- endwith -%}
+{%- endif -%}
diff --git a/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html b/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html
new file mode 100644
index 00000000..78bd497a
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html
@@ -0,0 +1 @@
+{% extends "_base/docstring/type_aliases.html.jinja" %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html.jinja b/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html.jinja
new file mode 100644
index 00000000..78bd497a
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/docstring/type_aliases.html.jinja
@@ -0,0 +1 @@
+{% extends "_base/docstring/type_aliases.html.jinja" %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html b/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html
new file mode 100644
index 00000000..223fbb04
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html
@@ -0,0 +1 @@
+{% extends "_base/docstring/type_parameters.html.jinja" %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html.jinja b/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html.jinja
new file mode 100644
index 00000000..223fbb04
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/docstring/type_parameters.html.jinja
@@ -0,0 +1 @@
+{% extends "_base/docstring/type_parameters.html.jinja" %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/style.css b/src/mkdocstrings_handlers/python/templates/material/style.css
index b8c3e639..7475f5cd 100644
--- a/src/mkdocstrings_handlers/python/templates/material/style.css
+++ b/src/mkdocstrings_handlers/python/templates/material/style.css
@@ -26,12 +26,14 @@
}
/* Defaults in Spacy table style. */
-.doc-param-default {
+.doc-param-default,
+.doc-type_param-default {
float: right;
}
/* Parameter headings must be inline, not blocks. */
-.doc-heading-parameter {
+.doc-heading-parameter,
+.doc-heading-type_parameter {
display: inline;
}
@@ -41,7 +43,8 @@
}
/* Prefer space on the right, not the left of parameter permalinks. */
-.doc-heading-parameter .headerlink {
+.doc-heading-parameter .headerlink,
+.doc-heading-type_parameter .headerlink {
margin-left: 0 !important;
margin-right: 0.2rem;
}
@@ -77,33 +80,41 @@
:root, :host,
[data-md-color-scheme="default"] {
--doc-symbol-parameter-fg-color: #df50af;
+ --doc-symbol-type_parameter-fg-color: #df50af;
--doc-symbol-attribute-fg-color: #953800;
--doc-symbol-function-fg-color: #8250df;
--doc-symbol-method-fg-color: #8250df;
--doc-symbol-class-fg-color: #0550ae;
+ --doc-symbol-type_alias-fg-color: #0550ae;
--doc-symbol-module-fg-color: #5cad0f;
--doc-symbol-parameter-bg-color: #df50af1a;
+ --doc-symbol-type_parameter-bg-color: #df50af1a;
--doc-symbol-attribute-bg-color: #9538001a;
--doc-symbol-function-bg-color: #8250df1a;
--doc-symbol-method-bg-color: #8250df1a;
--doc-symbol-class-bg-color: #0550ae1a;
+ --doc-symbol-type_alias-bg-color: #0550ae1a;
--doc-symbol-module-bg-color: #5cad0f1a;
}
[data-md-color-scheme="slate"] {
--doc-symbol-parameter-fg-color: #ffa8cc;
+ --doc-symbol-type_parameter-fg-color: #ffa8cc;
--doc-symbol-attribute-fg-color: #ffa657;
--doc-symbol-function-fg-color: #d2a8ff;
--doc-symbol-method-fg-color: #d2a8ff;
--doc-symbol-class-fg-color: #79c0ff;
+ --doc-symbol-type_alias-fg-color: #79c0ff;
--doc-symbol-module-fg-color: #baff79;
--doc-symbol-parameter-bg-color: #ffa8cc1a;
+ --doc-symbol-type_parameter-bg-color: #ffa8cc1a;
--doc-symbol-attribute-bg-color: #ffa6571a;
--doc-symbol-function-bg-color: #d2a8ff1a;
--doc-symbol-method-bg-color: #d2a8ff1a;
--doc-symbol-class-bg-color: #79c0ff1a;
+ --doc-symbol-type_alias-bg-color: #79c0ff1a;
--doc-symbol-module-bg-color: #baff791a;
}
@@ -124,6 +135,16 @@ code.doc-symbol-parameter::after {
content: "param";
}
+code.doc-symbol-type_parameter,
+a code.doc-symbol-type_parameter {
+ color: var(--doc-symbol-type_parameter-fg-color);
+ background-color: var(--doc-symbol-type_parameter-bg-color);
+}
+
+code.doc-symbol-type_parameter::after {
+ content: "type-param";
+}
+
code.doc-symbol-attribute,
a code.doc-symbol-attribute {
color: var(--doc-symbol-attribute-fg-color);
@@ -164,6 +185,17 @@ code.doc-symbol-class::after {
content: "class";
}
+
+code.doc-symbol-type_alias,
+a code.doc-symbol-type_alias {
+ color: var(--doc-symbol-type_alias-fg-color);
+ background-color: var(--doc-symbol-type_alias-bg-color);
+}
+
+code.doc-symbol-type_alias::after {
+ content: "type";
+}
+
code.doc-symbol-module,
a code.doc-symbol-module {
color: var(--doc-symbol-module-fg-color);
diff --git a/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html b/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html
new file mode 100644
index 00000000..ca10bc88
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html
@@ -0,0 +1 @@
+{% extends "_base/summary/type_aliases.html.jinja" %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html.jinja b/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html.jinja
new file mode 100644
index 00000000..ca10bc88
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/summary/type_aliases.html.jinja
@@ -0,0 +1 @@
+{% extends "_base/summary/type_aliases.html.jinja" %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/type_alias.html b/src/mkdocstrings_handlers/python/templates/material/type_alias.html
new file mode 100644
index 00000000..5139a2db
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/type_alias.html
@@ -0,0 +1 @@
+{% extends "_base/type_alias.html.jinja" %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/type_alias.html.jinja b/src/mkdocstrings_handlers/python/templates/material/type_alias.html.jinja
new file mode 100644
index 00000000..5139a2db
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/type_alias.html.jinja
@@ -0,0 +1 @@
+{% extends "_base/type_alias.html.jinja" %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/type_parameters.html b/src/mkdocstrings_handlers/python/templates/material/type_parameters.html
new file mode 100644
index 00000000..c39ca528
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/type_parameters.html
@@ -0,0 +1 @@
+{% extends "_base/type_parameters.html.jinja" %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/type_parameters.html.jinja b/src/mkdocstrings_handlers/python/templates/material/type_parameters.html.jinja
new file mode 100644
index 00000000..c39ca528
--- /dev/null
+++ b/src/mkdocstrings_handlers/python/templates/material/type_parameters.html.jinja
@@ -0,0 +1 @@
+{% extends "_base/type_parameters.html.jinja" %}
diff --git a/tests/snapshots/__init__.py b/tests/snapshots/__init__.py
deleted file mode 100644
index 36eb97b7..00000000
--- a/tests/snapshots/__init__.py
+++ /dev/null
@@ -1,405 +0,0 @@
-"""Snaphots for the inline-snapshot pytest plugin."""
-
-from inline_snapshot import external, snapshot
-
-snapshots_signatures = snapshot(
- {
- (
- ("separate_signature", True),
- ("show_signature_annotations", False),
- ("signature_crossrefs", False),
- ): external("d03d16d1919a*.html"),
- (
- ("separate_signature", True),
- ("show_signature_annotations", True),
- ("signature_crossrefs", True),
- ): external("e412376be64f*.html"),
- (
- ("separate_signature", False),
- ("show_signature_annotations", True),
- ("signature_crossrefs", True),
- ): external("735fc6ffdb82*.html"),
- (
- ("separate_signature", False),
- ("show_signature_annotations", False),
- ("signature_crossrefs", True),
- ): external("6a02b544c12c*.html"),
- (
- ("separate_signature", False),
- ("show_signature_annotations", False),
- ("signature_crossrefs", False),
- ): external("b060b701543e*.html"),
- (
- ("separate_signature", True),
- ("show_signature_annotations", True),
- ("signature_crossrefs", False),
- ): external("74ee37cd1e94*.html"),
- (
- ("separate_signature", True),
- ("show_signature_annotations", False),
- ("signature_crossrefs", True),
- ): external("4041a38e355f*.html"),
- (
- ("separate_signature", False),
- ("show_signature_annotations", True),
- ("signature_crossrefs", False),
- ): external("d1216ebf8e30*.html"),
- },
-)
-
-snapshots_members = snapshot(
- {
- (
- ("filters", ()),
- ("inherited_members", ("method1",)),
- ("members", False),
- ): external("ab0ddac637b5*.html"),
- (("filters", None), ("inherited_members", True), ("members", True)): external("c0f102dbd7d4*.html"),
- (("filters", ()), ("inherited_members", False), ("members", True)): external("fca72854c849*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", ()),
- ("members", ("module_attribute",)),
- ): external("6d12192d6b4d*.html"),
- (("filters", ()), ("inherited_members", ()), ("members", False)): external("366b0537fe06*.html"),
- (
- ("filters", ()),
- ("inherited_members", ("method1",)),
- ("members", ("module_attribute",)),
- ): external("e90c3e0c85dd*.html"),
- (("filters", ()), ("inherited_members", True), ("members", True)): external("722165bce3ad*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", ("method1",)),
- ("members", ()),
- ): external("f8f32ea6a0c8*.html"),
- (
- ("filters", ()),
- ("inherited_members", ("method1",)),
- ("members", True),
- ): external("cd51e40cc0dd*.html"),
- (("filters", ()), ("inherited_members", False), ("members", False)): external("5cf0130e3b4f*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", True),
- ("members", True),
- ): external("34b16654e7ba*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", False),
- ("members", ()),
- ): external("fb5ebb7546d8*.html"),
- (
- ("filters", None),
- ("inherited_members", ("method1",)),
- ("members", ("module_attribute",)),
- ): external("afd5c166367d*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", ("method1",)),
- ("members", ("module_attribute",)),
- ): external("26bc66c2ba29*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", False),
- ("members", ("module_attribute",)),
- ): external("247a6063b698*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", False),
- ("members", ("module_attribute",)),
- ): external("5a9c10410801*.html"),
- (("filters", ()), ("inherited_members", False), ("members", ())): external("fba0d78ae23e*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", ("method1",)),
- ("members", None),
- ): external("cfcd41685591*.html"),
- (("filters", ()), ("inherited_members", False), ("members", None)): external("eac5bee59a9e*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", ()),
- ("members", False),
- ): external("76ee8e01e1c0*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", ("method1",)),
- ("members", ()),
- ): external("42c053a5e567*.html"),
- (
- ("filters", None),
- ("inherited_members", ("method1",)),
- ("members", ()),
- ): external("4f60da13e2d4*.html"),
- (("filters", ()), ("inherited_members", True), ("members", ())): external("c915eb92fd5d*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", ()),
- ("members", None),
- ): external("c9a15552eed3*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", ("method1",)),
- ("members", None),
- ): external("fe1cd23642d4*.html"),
- (("filters", None), ("inherited_members", False), ("members", False)): external("9bd282a6f2fe*.html"),
- (
- ("filters", None),
- ("inherited_members", ()),
- ("members", ("module_attribute",)),
- ): external("166b8dfab738*.html"),
- (("filters", None), ("inherited_members", ()), ("members", False)): external("44e42f27bfe3*.html"),
- (("filters", None), ("inherited_members", False), ("members", None)): external("0f046dea611f*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", True),
- ("members", ()),
- ): external("28d8862dd086*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", True),
- ("members", False),
- ): external("f3f3acb6b51b*.html"),
- (("filters", None), ("inherited_members", ()), ("members", True)): external("dcf34c2f7269*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", True),
- ("members", None),
- ): external("8733f7fb7b6d*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", False),
- ("members", False),
- ): external("eee65d3705a6*.html"),
- (
- ("filters", None),
- ("inherited_members", False),
- ("members", ("module_attribute",)),
- ): external("a200913d9a7d*.html"),
- (
- ("filters", None),
- ("inherited_members", True),
- ("members", ("module_attribute",)),
- ): external("bd6594ae3b51*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", True),
- ("members", ("module_attribute",)),
- ): external("8d4e1f9af997*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", False),
- ("members", ()),
- ): external("d5a6bf59c663*.html"),
- (("filters", None), ("inherited_members", ()), ("members", None)): external("fd291f98ca28*.html"),
- (("filters", ()), ("inherited_members", True), ("members", None)): external("14bca0e5703b*.html"),
- (
- ("filters", ()),
- ("inherited_members", False),
- ("members", ("module_attribute",)),
- ): external("09d96d69d9dc*.html"),
- (
- ("filters", None),
- ("inherited_members", ("method1",)),
- ("members", None),
- ): external("43d819f94dc7*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", True),
- ("members", ()),
- ): external("95f8e480937f*.html"),
- (("filters", None), ("inherited_members", False), ("members", True)): external("f4150843096a*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", True),
- ("members", True),
- ): external("3c21330afd65*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", False),
- ("members", None),
- ): external("d55652702606*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", ("method1",)),
- ("members", False),
- ): external("f0014d9505ec*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", True),
- ("members", ("module_attribute",)),
- ): external("96cf94f4822a*.html"),
- (("filters", None), ("inherited_members", True), ("members", ())): external("ce06da7f07b3*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", ()),
- ("members", False),
- ): external("74bfab19cbd4*.html"),
- (
- ("filters", None),
- ("inherited_members", ("method1",)),
- ("members", True),
- ): external("75b69b702f3b*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", True),
- ("members", False),
- ): external("d726cb8367d9*.html"),
- (("filters", None), ("inherited_members", False), ("members", ())): external("fb770e6537bc*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", True),
- ("members", None),
- ): external("2bf34b4dd82e*.html"),
- (
- ("filters", ()),
- ("inherited_members", ("method1",)),
- ("members", ()),
- ): external("4892e0fe1920*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", ()),
- ("members", True),
- ): external("13334b5b4fcf*.html"),
- (
- ("filters", ()),
- ("inherited_members", ()),
- ("members", ("module_attribute",)),
- ): external("388a13d71284*.html"),
- (("filters", None), ("inherited_members", True), ("members", False)): external("3f5d794823a4*.html"),
- (
- ("filters", ()),
- ("inherited_members", True),
- ("members", ("module_attribute",)),
- ): external("9d03089a46fa*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", ("method1",)),
- ("members", ("module_attribute",)),
- ): external("8b097c69ac2f*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", False),
- ("members", True),
- ): external("cd3e45851714*.html"),
- (
- ("filters", None),
- ("inherited_members", ("method1",)),
- ("members", False),
- ): external("e3defc3620e5*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", ()),
- ("members", True),
- ): external("84193b3c9f5d*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", ("method1",)),
- ("members", False),
- ): external("c6e7ef9564cd*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", False),
- ("members", None),
- ): external("62e18d3e5777*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", ()),
- ("members", None),
- ): external("3935bcf6d71b*.html"),
- (("filters", None), ("inherited_members", ()), ("members", ())): external("f77f1c850398*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", False),
- ("members", True),
- ): external("fe25ab760039*.html"),
- (("filters", None), ("inherited_members", True), ("members", None)): external("ea914f1afa9d*.html"),
- (("filters", ()), ("inherited_members", ()), ("members", None)): external("19f98a747c01*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", ()),
- ("members", ()),
- ): external("c260e7f4ef3b*.html"),
- (
- ("filters", ("!module_attribute",)),
- ("inherited_members", ("method1",)),
- ("members", True),
- ): external("9720526cf5e4*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", ()),
- ("members", ("module_attribute",)),
- ): external("f6e292b8358a*.html"),
- (("filters", ()), ("inherited_members", True), ("members", False)): external("b0a9b08f1f72*.html"),
- (("filters", ()), ("inherited_members", ()), ("members", True)): external("027ef7afeffc*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", False),
- ("members", False),
- ): external("710706687213*.html"),
- (("filters", ()), ("inherited_members", ()), ("members", ())): external("11598fec2d07*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", ("method1",)),
- ("members", True),
- ): external("e8608b0de174*.html"),
- (
- ("filters", ()),
- ("inherited_members", ("method1",)),
- ("members", None),
- ): external("e5dc372374af*.html"),
- (
- ("filters", ("module_attribute",)),
- ("inherited_members", ()),
- ("members", ()),
- ): external("a185e216dc7b*.html"),
- (("filters", "public"), ("inherited_members", ("method1",)), ("members", None)): external("6af55596d9c4*.html"),
- (("filters", "public"), ("inherited_members", ("method1",)), ("members", False)): external(
- "6abf5ddd819b*.html",
- ),
- (("filters", "public"), ("inherited_members", ()), ("members", None)): external("6d72c524b827*.html"),
- (("filters", "public"), ("inherited_members", False), ("members", False)): external("9dab67183389*.html"),
- (("filters", "public"), ("inherited_members", ("method1",)), ("members", True)): external("6c0b7207df03*.html"),
- (("filters", "public"), ("inherited_members", True), ("members", ())): external("f48d651b3f1a*.html"),
- (("filters", "public"), ("inherited_members", ("method1",)), ("members", ("module_attribute",))): external(
- "408244423577*.html",
- ),
- (("filters", "public"), ("inherited_members", True), ("members", None)): external("16295fa51a2c*.html"),
- (("filters", "public"), ("inherited_members", True), ("members", True)): external("37232379c426*.html"),
- (("filters", "public"), ("inherited_members", ()), ("members", ())): external("2e866eca9a45*.html"),
- (("filters", "public"), ("inherited_members", True), ("members", False)): external("ed5d07bcdbaa*.html"),
- (("filters", "public"), ("inherited_members", False), ("members", ())): external("135f57223e00*.html"),
- (("filters", "public"), ("inherited_members", False), ("members", None)): external("b4e20d5cd52e*.html"),
- (("filters", "public"), ("inherited_members", ()), ("members", False)): external("46daa7e60b98*.html"),
- (("filters", "public"), ("inherited_members", False), ("members", True)): external("a255ee80bf7a*.html"),
- (("filters", "public"), ("inherited_members", ()), ("members", True)): external("74e2496015e1*.html"),
- (("filters", "public"), ("inherited_members", True), ("members", ("module_attribute",))): external(
- "e254ae60f9af*.html",
- ),
- (("filters", "public"), ("inherited_members", ("method1",)), ("members", ())): external("51d73351dc55*.html"),
- (("filters", "public"), ("inherited_members", ()), ("members", ("module_attribute",))): external(
- "d56d3aeae22b*.html",
- ),
- (("filters", "public"), ("inherited_members", False), ("members", ("module_attribute",))): external(
- "80399c502938*.html",
- ),
- (("heading", ""), ("members", False), ("separate_signature", False), ("show_if_no_docstring", True)): external(
- "d1dd339f9260*.html",
- ),
- (
- ("heading", "Some heading"),
- ("members", False),
- ("separate_signature", True),
- ("show_if_no_docstring", True),
- ): external("480324b25439*.html"),
- (("heading", ""), ("members", False), ("separate_signature", True), ("show_if_no_docstring", True)): external(
- "2eef87791b97*.html",
- ),
- (
- ("heading", "Some heading"),
- ("members", False),
- ("separate_signature", False),
- ("show_if_no_docstring", True),
- ): external("51deee0f00f3*.html"),
- },
-)
diff --git a/tests/snapshots/external/.gitignore b/tests/snapshots/external/.gitignore
deleted file mode 100644
index 45bef68b..00000000
--- a/tests/snapshots/external/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# ignore all snapshots which are not refered in the source
-*-new.*
diff --git a/tests/snapshots/external/d1dd339f926026210ea46cc75922a8236f43cade477f95e4ce4c9a60248f0a10.html b/tests/snapshots/headings/heading=,separate_signature=False.html
similarity index 76%
rename from tests/snapshots/external/d1dd339f926026210ea46cc75922a8236f43cade477f95e4ce4c9a60248f0a10.html
rename to tests/snapshots/headings/heading=,separate_signature=False.html
index a9dd1e61..2be154b9 100644
--- a/tests/snapshots/external/d1dd339f926026210ea46cc75922a8236f43cade477f95e4ce4c9a60248f0a10.html
+++ b/tests/snapshots/headings/heading=,separate_signature=False.html
@@ -1,9 +1,7 @@
diff --git a/tests/snapshots/external/2eef87791b974c724d2cd98e40bb25994087bc836868f63da18557a6094a00ee.html b/tests/snapshots/headings/heading=,separate_signature=True.html
similarity index 79%
rename from tests/snapshots/external/2eef87791b974c724d2cd98e40bb25994087bc836868f63da18557a6094a00ee.html
rename to tests/snapshots/headings/heading=,separate_signature=True.html
index f0242792..c73f0184 100644
--- a/tests/snapshots/external/2eef87791b974c724d2cd98e40bb25994087bc836868f63da18557a6094a00ee.html
+++ b/tests/snapshots/headings/heading=,separate_signature=True.html
@@ -1,9 +1,7 @@
diff --git a/tests/snapshots/external/480324b25439ea41507fdda100045132d578af0e1df1219c08bc9ea0bea1f39c.html b/tests/snapshots/headings/heading=Some heading,separate_signature=False.html
similarity index 75%
rename from tests/snapshots/external/480324b25439ea41507fdda100045132d578af0e1df1219c08bc9ea0bea1f39c.html
rename to tests/snapshots/headings/heading=Some heading,separate_signature=False.html
index fd1f953b..b000bf14 100644
--- a/tests/snapshots/external/480324b25439ea41507fdda100045132d578af0e1df1219c08bc9ea0bea1f39c.html
+++ b/tests/snapshots/headings/heading=Some heading,separate_signature=False.html
@@ -1,9 +1,7 @@
diff --git a/tests/snapshots/external/51deee0f00f35b0902f82fb96a36d547a80dfbb41a311dabd94b96fd968b83bc.html b/tests/snapshots/headings/heading=Some heading,separate_signature=True.html
similarity index 75%
rename from tests/snapshots/external/51deee0f00f35b0902f82fb96a36d547a80dfbb41a311dabd94b96fd968b83bc.html
rename to tests/snapshots/headings/heading=Some heading,separate_signature=True.html
index 8601ee01..852b7487 100644
--- a/tests/snapshots/external/51deee0f00f35b0902f82fb96a36d547a80dfbb41a311dabd94b96fd968b83bc.html
+++ b/tests/snapshots/headings/heading=Some heading,separate_signature=True.html
@@ -1,9 +1,7 @@
diff --git a/tests/snapshots/external/26bc66c2ba29feddfbd06c2490eca42ec5a8f62db8d650231b0748ddce8c85f1.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/26bc66c2ba29feddfbd06c2490eca42ec5a8f62db8d650231b0748ddce8c85f1.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=('module_attribute',).html
diff --git a/tests/snapshots/external/42c053a5e567a777dfde62cd0d061112dc8098f90e71f71d5aceba8be188fcf7.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=().html
similarity index 100%
rename from tests/snapshots/external/42c053a5e567a777dfde62cd0d061112dc8098f90e71f71d5aceba8be188fcf7.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=().html
diff --git a/tests/snapshots/external/c6e7ef9564cdc8449a98c0ef790d652dee02c47b1339f858fc1d7a54aae9ed46.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=False.html
similarity index 100%
rename from tests/snapshots/external/c6e7ef9564cdc8449a98c0ef790d652dee02c47b1339f858fc1d7a54aae9ed46.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=False.html
diff --git a/tests/snapshots/external/fe1cd23642d405d0b2a4d29ec4a2125f55b54f90c2440ee2d856540415e77745.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=None.html
similarity index 100%
rename from tests/snapshots/external/fe1cd23642d405d0b2a4d29ec4a2125f55b54f90c2440ee2d856540415e77745.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=None.html
diff --git a/tests/snapshots/external/9720526cf5e4c44f27695c59764bb1e05e428834744442f43527ebf2b8acfb35.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=True.html
similarity index 100%
rename from tests/snapshots/external/9720526cf5e4c44f27695c59764bb1e05e428834744442f43527ebf2b8acfb35.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=('method1',),members=True.html
diff --git a/tests/snapshots/external/6d12192d6b4dc0633bad697a683a3cdf3b2b9ceeb839044c72c63b469914f0a1.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/6d12192d6b4dc0633bad697a683a3cdf3b2b9ceeb839044c72c63b469914f0a1.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=('module_attribute',).html
diff --git a/tests/snapshots/external/c260e7f4ef3b8b228bb25879d3adcf6610f1c2c971c9c46b5665d276716b8821.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=().html
similarity index 100%
rename from tests/snapshots/external/c260e7f4ef3b8b228bb25879d3adcf6610f1c2c971c9c46b5665d276716b8821.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=().html
diff --git a/tests/snapshots/external/74bfab19cbd4ba02673f6b9ee736a3b6727936de92f73f299ba238491f619937.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=False.html
similarity index 100%
rename from tests/snapshots/external/74bfab19cbd4ba02673f6b9ee736a3b6727936de92f73f299ba238491f619937.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=False.html
diff --git a/tests/snapshots/external/3935bcf6d71b58daa0e4512cbf3f53e19516885fb65d0bd760c12aadd021507f.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=None.html
similarity index 100%
rename from tests/snapshots/external/3935bcf6d71b58daa0e4512cbf3f53e19516885fb65d0bd760c12aadd021507f.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=None.html
diff --git a/tests/snapshots/external/84193b3c9f5d84fef33daa61fb61aa9a3e66171d312de8d7f836c69f0bc069b0.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=True.html
similarity index 100%
rename from tests/snapshots/external/84193b3c9f5d84fef33daa61fb61aa9a3e66171d312de8d7f836c69f0bc069b0.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=(),members=True.html
diff --git a/tests/snapshots/external/247a6063b698c285bfef7addfd972ddf797f6a90dfd5a3e649e6e4c127b86562.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/247a6063b698c285bfef7addfd972ddf797f6a90dfd5a3e649e6e4c127b86562.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=('module_attribute',).html
diff --git a/tests/snapshots/external/fb5ebb7546d8d63744d7e6713ab5317b8c3d00d1108d28d7ef2949994b41dcbd.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=().html
similarity index 100%
rename from tests/snapshots/external/fb5ebb7546d8d63744d7e6713ab5317b8c3d00d1108d28d7ef2949994b41dcbd.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=().html
diff --git a/tests/snapshots/external/eee65d3705a655eec6512c4aa09d55f5d2e7c62dd245fed4b3f002a5e9a4d646.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=False.html
similarity index 100%
rename from tests/snapshots/external/eee65d3705a655eec6512c4aa09d55f5d2e7c62dd245fed4b3f002a5e9a4d646.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=False.html
diff --git a/tests/snapshots/external/d556527026068280df9b77db277472320842cb1ae6099ac3cf558031afda6d2e.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=None.html
similarity index 100%
rename from tests/snapshots/external/d556527026068280df9b77db277472320842cb1ae6099ac3cf558031afda6d2e.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=None.html
diff --git a/tests/snapshots/external/fe25ab7600392b4fd3a1438fb54337041719faac884123527bab9a92e3a51be5.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=True.html
similarity index 100%
rename from tests/snapshots/external/fe25ab7600392b4fd3a1438fb54337041719faac884123527bab9a92e3a51be5.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=False,members=True.html
diff --git a/tests/snapshots/external/96cf94f4822a5cf5d72407eab5a5dddda972f16623f7710f738ffe2bcf9130d9.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/96cf94f4822a5cf5d72407eab5a5dddda972f16623f7710f738ffe2bcf9130d9.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=('module_attribute',).html
diff --git a/tests/snapshots/external/28d8862dd086c7d523516dd4091b57e5babd34165edccf619b62a06fc1936cd5.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=().html
similarity index 100%
rename from tests/snapshots/external/28d8862dd086c7d523516dd4091b57e5babd34165edccf619b62a06fc1936cd5.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=().html
diff --git a/tests/snapshots/external/d726cb8367d95b67ce78e718e88ee528d3abc2fbd04413d1c11916a243d7567a.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=False.html
similarity index 100%
rename from tests/snapshots/external/d726cb8367d95b67ce78e718e88ee528d3abc2fbd04413d1c11916a243d7567a.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=False.html
diff --git a/tests/snapshots/external/8733f7fb7b6d28b15bbe736f29c7fd030467c0ccfa2cbc6a68616e06c6dc6a9b.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=None.html
similarity index 100%
rename from tests/snapshots/external/8733f7fb7b6d28b15bbe736f29c7fd030467c0ccfa2cbc6a68616e06c6dc6a9b.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=None.html
diff --git a/tests/snapshots/external/34b16654e7baa8e16315cef2919f2eafa51ba39ec28c4c970fe7ea8e2c79f9d2.html b/tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=True.html
similarity index 100%
rename from tests/snapshots/external/34b16654e7baa8e16315cef2919f2eafa51ba39ec28c4c970fe7ea8e2c79f9d2.html
rename to tests/snapshots/members/filters=('!module_attribute',),inherited_members=True,members=True.html
diff --git a/tests/snapshots/external/8b097c69ac2fd52857f33e1b008f4d99a53ed21894c51517b3d79da445b0a705.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/8b097c69ac2fd52857f33e1b008f4d99a53ed21894c51517b3d79da445b0a705.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=('module_attribute',).html
diff --git a/tests/snapshots/external/f8f32ea6a0c80a63854f8c8d78b3706797feb3042ac88c8fcf0a6da277eddb9d.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=().html
similarity index 100%
rename from tests/snapshots/external/f8f32ea6a0c80a63854f8c8d78b3706797feb3042ac88c8fcf0a6da277eddb9d.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=().html
diff --git a/tests/snapshots/external/f0014d9505eceb38ba1e36c380a97ebe4d43669929ec1cdedba4d418899aecc7.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=False.html
similarity index 100%
rename from tests/snapshots/external/f0014d9505eceb38ba1e36c380a97ebe4d43669929ec1cdedba4d418899aecc7.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=False.html
diff --git a/tests/snapshots/external/cfcd41685591bcc497f9d1e9fd20006fc3acd857f068e78e6d1c2461bbd4063f.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=None.html
similarity index 100%
rename from tests/snapshots/external/cfcd41685591bcc497f9d1e9fd20006fc3acd857f068e78e6d1c2461bbd4063f.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=None.html
diff --git a/tests/snapshots/external/e8608b0de174402ca18f88ed58849312158c22f5bfdc845d2da02055fe14853c.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=True.html
similarity index 100%
rename from tests/snapshots/external/e8608b0de174402ca18f88ed58849312158c22f5bfdc845d2da02055fe14853c.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=('method1',),members=True.html
diff --git a/tests/snapshots/external/f6e292b8358a04e3471ba11c8820307076be3cf83b0a9ec2fb5c949324b7e172.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/f6e292b8358a04e3471ba11c8820307076be3cf83b0a9ec2fb5c949324b7e172.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=('module_attribute',).html
diff --git a/tests/snapshots/external/a185e216dc7b7ebb31b46ea0e7ed446cf9da94eee8db306f08bae1ca0db0ca1d.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=().html
similarity index 100%
rename from tests/snapshots/external/a185e216dc7b7ebb31b46ea0e7ed446cf9da94eee8db306f08bae1ca0db0ca1d.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=().html
diff --git a/tests/snapshots/external/76ee8e01e1c0b94de84d79da8443bc24f601f89cab70eae1b2af5ee21cfb1f3a.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=False.html
similarity index 100%
rename from tests/snapshots/external/76ee8e01e1c0b94de84d79da8443bc24f601f89cab70eae1b2af5ee21cfb1f3a.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=False.html
diff --git a/tests/snapshots/external/c9a15552eed32a233795c2086a7c766ad95e05197d30d881540fbe52cdc07ff8.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=None.html
similarity index 100%
rename from tests/snapshots/external/c9a15552eed32a233795c2086a7c766ad95e05197d30d881540fbe52cdc07ff8.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=None.html
diff --git a/tests/snapshots/external/13334b5b4fcf7267539b9eb99ca2ab79c66766ec6f35383f4bfcb6a8d9e2a116.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=True.html
similarity index 100%
rename from tests/snapshots/external/13334b5b4fcf7267539b9eb99ca2ab79c66766ec6f35383f4bfcb6a8d9e2a116.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=(),members=True.html
diff --git a/tests/snapshots/external/5a9c10410801aa75b33878971b939da701df9a7ce8006dc7781c148d27a89756.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/5a9c10410801aa75b33878971b939da701df9a7ce8006dc7781c148d27a89756.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=('module_attribute',).html
diff --git a/tests/snapshots/external/d5a6bf59c663338bef9fdc2391f482aee444228e86e23357c11881498e711bb2.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=().html
similarity index 100%
rename from tests/snapshots/external/d5a6bf59c663338bef9fdc2391f482aee444228e86e23357c11881498e711bb2.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=().html
diff --git a/tests/snapshots/external/7107066872137b807b3f9d897e75eff78f5783b14d3c88e71c6477eaa8493113.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=False.html
similarity index 100%
rename from tests/snapshots/external/7107066872137b807b3f9d897e75eff78f5783b14d3c88e71c6477eaa8493113.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=False.html
diff --git a/tests/snapshots/external/62e18d3e57777d911c7fdee1fcc032a9c23ffe82913060e3b66f29bf81a6a585.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=None.html
similarity index 100%
rename from tests/snapshots/external/62e18d3e57777d911c7fdee1fcc032a9c23ffe82913060e3b66f29bf81a6a585.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=None.html
diff --git a/tests/snapshots/external/cd3e458517147c43c360525140aa1b9a81682634aaf2674ffd4cceb7fc44aba6.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=True.html
similarity index 100%
rename from tests/snapshots/external/cd3e458517147c43c360525140aa1b9a81682634aaf2674ffd4cceb7fc44aba6.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=False,members=True.html
diff --git a/tests/snapshots/external/8d4e1f9af9971bd21234c7c45dfbd59a1aee444bfa0cd3b9cfb6d052d378a041.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/8d4e1f9af9971bd21234c7c45dfbd59a1aee444bfa0cd3b9cfb6d052d378a041.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=('module_attribute',).html
diff --git a/tests/snapshots/external/95f8e480937f7a2b956392ed4d8058052d9748874cdd911feacdd31d1abe5d97.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=().html
similarity index 100%
rename from tests/snapshots/external/95f8e480937f7a2b956392ed4d8058052d9748874cdd911feacdd31d1abe5d97.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=().html
diff --git a/tests/snapshots/external/f3f3acb6b51ba98f5a06e7c62e85b791b6521504f19a8d7496592dee59c7f199.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=False.html
similarity index 100%
rename from tests/snapshots/external/f3f3acb6b51ba98f5a06e7c62e85b791b6521504f19a8d7496592dee59c7f199.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=False.html
diff --git a/tests/snapshots/external/2bf34b4dd82e753b21200ec980cb197c530710fe8c150c4dd3fbbfb7d38928cc.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=None.html
similarity index 100%
rename from tests/snapshots/external/2bf34b4dd82e753b21200ec980cb197c530710fe8c150c4dd3fbbfb7d38928cc.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=None.html
diff --git a/tests/snapshots/external/3c21330afd6529769164afe388e9385a9fddb3ae628124965e0c7b81932a0c63.html b/tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=True.html
similarity index 100%
rename from tests/snapshots/external/3c21330afd6529769164afe388e9385a9fddb3ae628124965e0c7b81932a0c63.html
rename to tests/snapshots/members/filters=('module_attribute',),inherited_members=True,members=True.html
diff --git a/tests/snapshots/external/e90c3e0c85ddaa068f3d063c6a1ef718bb3ae2092760b707e838fb73164b3720.html b/tests/snapshots/members/filters=(),inherited_members=('method1',),members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/e90c3e0c85ddaa068f3d063c6a1ef718bb3ae2092760b707e838fb73164b3720.html
rename to tests/snapshots/members/filters=(),inherited_members=('method1',),members=('module_attribute',).html
diff --git a/tests/snapshots/external/4892e0fe1920c0bb22fa4787b6e76cccaa968163b35641d705f288c04fe4937e.html b/tests/snapshots/members/filters=(),inherited_members=('method1',),members=().html
similarity index 100%
rename from tests/snapshots/external/4892e0fe1920c0bb22fa4787b6e76cccaa968163b35641d705f288c04fe4937e.html
rename to tests/snapshots/members/filters=(),inherited_members=('method1',),members=().html
diff --git a/tests/snapshots/external/ab0ddac637b536c06014746a4a8f8e0921b074015ae19680abf5df995c233ba1.html b/tests/snapshots/members/filters=(),inherited_members=('method1',),members=False.html
similarity index 100%
rename from tests/snapshots/external/ab0ddac637b536c06014746a4a8f8e0921b074015ae19680abf5df995c233ba1.html
rename to tests/snapshots/members/filters=(),inherited_members=('method1',),members=False.html
diff --git a/tests/snapshots/external/e5dc372374af6f90a5d456d8683aacdf81104137ce91bd6d4121827f8d989d96.html b/tests/snapshots/members/filters=(),inherited_members=('method1',),members=None.html
similarity index 100%
rename from tests/snapshots/external/e5dc372374af6f90a5d456d8683aacdf81104137ce91bd6d4121827f8d989d96.html
rename to tests/snapshots/members/filters=(),inherited_members=('method1',),members=None.html
diff --git a/tests/snapshots/external/cd51e40cc0ddf1d42b7c6bf7560ead2501370ee9d67499b74afc83e258caff8e.html b/tests/snapshots/members/filters=(),inherited_members=('method1',),members=True.html
similarity index 100%
rename from tests/snapshots/external/cd51e40cc0ddf1d42b7c6bf7560ead2501370ee9d67499b74afc83e258caff8e.html
rename to tests/snapshots/members/filters=(),inherited_members=('method1',),members=True.html
diff --git a/tests/snapshots/external/388a13d71284b1a4b0c457e9c8d1ec60dfefb8871c69ceb1d7a035bd3bdadab8.html b/tests/snapshots/members/filters=(),inherited_members=(),members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/388a13d71284b1a4b0c457e9c8d1ec60dfefb8871c69ceb1d7a035bd3bdadab8.html
rename to tests/snapshots/members/filters=(),inherited_members=(),members=('module_attribute',).html
diff --git a/tests/snapshots/external/11598fec2d07bb675dfa8a57e49136f18a94eedec6bc5a036dcecc005e70dc80.html b/tests/snapshots/members/filters=(),inherited_members=(),members=().html
similarity index 100%
rename from tests/snapshots/external/11598fec2d07bb675dfa8a57e49136f18a94eedec6bc5a036dcecc005e70dc80.html
rename to tests/snapshots/members/filters=(),inherited_members=(),members=().html
diff --git a/tests/snapshots/external/366b0537fe0625a10d55203a3532de5c360e49fb403078a82ec408d829afcb72.html b/tests/snapshots/members/filters=(),inherited_members=(),members=False.html
similarity index 100%
rename from tests/snapshots/external/366b0537fe0625a10d55203a3532de5c360e49fb403078a82ec408d829afcb72.html
rename to tests/snapshots/members/filters=(),inherited_members=(),members=False.html
diff --git a/tests/snapshots/external/19f98a747c015a074f3d3362d03ed72f9da9db3aefe969a0d78c4052e7594372.html b/tests/snapshots/members/filters=(),inherited_members=(),members=None.html
similarity index 100%
rename from tests/snapshots/external/19f98a747c015a074f3d3362d03ed72f9da9db3aefe969a0d78c4052e7594372.html
rename to tests/snapshots/members/filters=(),inherited_members=(),members=None.html
diff --git a/tests/snapshots/external/027ef7afeffc56219a09298c7db30f473c4dfdda12d99a171e9c76098c316067.html b/tests/snapshots/members/filters=(),inherited_members=(),members=True.html
similarity index 100%
rename from tests/snapshots/external/027ef7afeffc56219a09298c7db30f473c4dfdda12d99a171e9c76098c316067.html
rename to tests/snapshots/members/filters=(),inherited_members=(),members=True.html
diff --git a/tests/snapshots/external/09d96d69d9dcbc54c8189fb885e8e06269c51be673389f29fa8b2d90cff54eb2.html b/tests/snapshots/members/filters=(),inherited_members=False,members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/09d96d69d9dcbc54c8189fb885e8e06269c51be673389f29fa8b2d90cff54eb2.html
rename to tests/snapshots/members/filters=(),inherited_members=False,members=('module_attribute',).html
diff --git a/tests/snapshots/external/fba0d78ae23e4f52b5e6f0fe003ea3edf681a937f647b11925e9932006648a11.html b/tests/snapshots/members/filters=(),inherited_members=False,members=().html
similarity index 100%
rename from tests/snapshots/external/fba0d78ae23e4f52b5e6f0fe003ea3edf681a937f647b11925e9932006648a11.html
rename to tests/snapshots/members/filters=(),inherited_members=False,members=().html
diff --git a/tests/snapshots/external/5cf0130e3b4fdd536b1c99ee66c66ec4245e286bf75b989cf50979ce187e1a16.html b/tests/snapshots/members/filters=(),inherited_members=False,members=False.html
similarity index 100%
rename from tests/snapshots/external/5cf0130e3b4fdd536b1c99ee66c66ec4245e286bf75b989cf50979ce187e1a16.html
rename to tests/snapshots/members/filters=(),inherited_members=False,members=False.html
diff --git a/tests/snapshots/external/eac5bee59a9ee0a64602fd6bb8f4f54cb5f3543aa321169921326288a61f556c.html b/tests/snapshots/members/filters=(),inherited_members=False,members=None.html
similarity index 100%
rename from tests/snapshots/external/eac5bee59a9ee0a64602fd6bb8f4f54cb5f3543aa321169921326288a61f556c.html
rename to tests/snapshots/members/filters=(),inherited_members=False,members=None.html
diff --git a/tests/snapshots/external/fca72854c849dc68c3ad072a41c32f926f95c6e88775f3e2eeaa63138d99837c.html b/tests/snapshots/members/filters=(),inherited_members=False,members=True.html
similarity index 100%
rename from tests/snapshots/external/fca72854c849dc68c3ad072a41c32f926f95c6e88775f3e2eeaa63138d99837c.html
rename to tests/snapshots/members/filters=(),inherited_members=False,members=True.html
diff --git a/tests/snapshots/external/9d03089a46fab9a86b0836444cabb6225798eaf25be6fd4171bd73b7354509b6.html b/tests/snapshots/members/filters=(),inherited_members=True,members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/9d03089a46fab9a86b0836444cabb6225798eaf25be6fd4171bd73b7354509b6.html
rename to tests/snapshots/members/filters=(),inherited_members=True,members=('module_attribute',).html
diff --git a/tests/snapshots/external/c915eb92fd5dcc4e2c9da41ca72c726e65fcd85804942be0c67b4f05f452a549.html b/tests/snapshots/members/filters=(),inherited_members=True,members=().html
similarity index 100%
rename from tests/snapshots/external/c915eb92fd5dcc4e2c9da41ca72c726e65fcd85804942be0c67b4f05f452a549.html
rename to tests/snapshots/members/filters=(),inherited_members=True,members=().html
diff --git a/tests/snapshots/external/b0a9b08f1f721721c4dd110cb8f85ffda5caf1f1479851275bc227857fb01400.html b/tests/snapshots/members/filters=(),inherited_members=True,members=False.html
similarity index 100%
rename from tests/snapshots/external/b0a9b08f1f721721c4dd110cb8f85ffda5caf1f1479851275bc227857fb01400.html
rename to tests/snapshots/members/filters=(),inherited_members=True,members=False.html
diff --git a/tests/snapshots/external/14bca0e5703be9cab876200d88cccd1d728d1bdfef7cbfac751af212e00a8663.html b/tests/snapshots/members/filters=(),inherited_members=True,members=None.html
similarity index 100%
rename from tests/snapshots/external/14bca0e5703be9cab876200d88cccd1d728d1bdfef7cbfac751af212e00a8663.html
rename to tests/snapshots/members/filters=(),inherited_members=True,members=None.html
diff --git a/tests/snapshots/external/722165bce3ada19df43b169ea982ab4908d94cd1bf19b777e1e6bc22e8aa02a5.html b/tests/snapshots/members/filters=(),inherited_members=True,members=True.html
similarity index 100%
rename from tests/snapshots/external/722165bce3ada19df43b169ea982ab4908d94cd1bf19b777e1e6bc22e8aa02a5.html
rename to tests/snapshots/members/filters=(),inherited_members=True,members=True.html
diff --git a/tests/snapshots/external/afd5c166367dd47e4f9843d906b3a1ad12398888fdad84bfbda3de8b19072611.html b/tests/snapshots/members/filters=None,inherited_members=('method1',),members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/afd5c166367dd47e4f9843d906b3a1ad12398888fdad84bfbda3de8b19072611.html
rename to tests/snapshots/members/filters=None,inherited_members=('method1',),members=('module_attribute',).html
diff --git a/tests/snapshots/external/4f60da13e2d45e803f73ed41746d8b3570f0dac7e132efb1bf0cdbf77e9e2c59.html b/tests/snapshots/members/filters=None,inherited_members=('method1',),members=().html
similarity index 100%
rename from tests/snapshots/external/4f60da13e2d45e803f73ed41746d8b3570f0dac7e132efb1bf0cdbf77e9e2c59.html
rename to tests/snapshots/members/filters=None,inherited_members=('method1',),members=().html
diff --git a/tests/snapshots/external/e3defc3620e5fee20f9400c33b7b541fde66297f257d9baf1b0f94b3ea49e6e0.html b/tests/snapshots/members/filters=None,inherited_members=('method1',),members=False.html
similarity index 100%
rename from tests/snapshots/external/e3defc3620e5fee20f9400c33b7b541fde66297f257d9baf1b0f94b3ea49e6e0.html
rename to tests/snapshots/members/filters=None,inherited_members=('method1',),members=False.html
diff --git a/tests/snapshots/external/43d819f94dc7cafe9ed60ce604bab9a938f42a115dc534cb72d12e15e998e96d.html b/tests/snapshots/members/filters=None,inherited_members=('method1',),members=None.html
similarity index 100%
rename from tests/snapshots/external/43d819f94dc7cafe9ed60ce604bab9a938f42a115dc534cb72d12e15e998e96d.html
rename to tests/snapshots/members/filters=None,inherited_members=('method1',),members=None.html
diff --git a/tests/snapshots/external/75b69b702f3b5fa3bc0d30091297b0a09a8915eb7f0e1f7be1ce99f5d59d9514.html b/tests/snapshots/members/filters=None,inherited_members=('method1',),members=True.html
similarity index 100%
rename from tests/snapshots/external/75b69b702f3b5fa3bc0d30091297b0a09a8915eb7f0e1f7be1ce99f5d59d9514.html
rename to tests/snapshots/members/filters=None,inherited_members=('method1',),members=True.html
diff --git a/tests/snapshots/external/166b8dfab738b90f2ff0df84a048df96539455d9cad42b09b248ab65b5c742e2.html b/tests/snapshots/members/filters=None,inherited_members=(),members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/166b8dfab738b90f2ff0df84a048df96539455d9cad42b09b248ab65b5c742e2.html
rename to tests/snapshots/members/filters=None,inherited_members=(),members=('module_attribute',).html
diff --git a/tests/snapshots/external/f77f1c850398f972a7ae2229f918ba497874115be6c5e9431838b4bb6931b2f4.html b/tests/snapshots/members/filters=None,inherited_members=(),members=().html
similarity index 100%
rename from tests/snapshots/external/f77f1c850398f972a7ae2229f918ba497874115be6c5e9431838b4bb6931b2f4.html
rename to tests/snapshots/members/filters=None,inherited_members=(),members=().html
diff --git a/tests/snapshots/external/44e42f27bfe3d3b5ec14700c247c83195b1c6eea319d1a0679b2baa797d9859c.html b/tests/snapshots/members/filters=None,inherited_members=(),members=False.html
similarity index 100%
rename from tests/snapshots/external/44e42f27bfe3d3b5ec14700c247c83195b1c6eea319d1a0679b2baa797d9859c.html
rename to tests/snapshots/members/filters=None,inherited_members=(),members=False.html
diff --git a/tests/snapshots/external/fd291f98ca28b8f15b5a8ed6a2608bacf5b5322599bcbf0544ef8e9c0a27870b.html b/tests/snapshots/members/filters=None,inherited_members=(),members=None.html
similarity index 100%
rename from tests/snapshots/external/fd291f98ca28b8f15b5a8ed6a2608bacf5b5322599bcbf0544ef8e9c0a27870b.html
rename to tests/snapshots/members/filters=None,inherited_members=(),members=None.html
diff --git a/tests/snapshots/external/dcf34c2f72697f7a4700e4a1f048d601f374eab35eea68c9beb8bab8fc269aed.html b/tests/snapshots/members/filters=None,inherited_members=(),members=True.html
similarity index 100%
rename from tests/snapshots/external/dcf34c2f72697f7a4700e4a1f048d601f374eab35eea68c9beb8bab8fc269aed.html
rename to tests/snapshots/members/filters=None,inherited_members=(),members=True.html
diff --git a/tests/snapshots/external/a200913d9a7d51c52ab58f6fc4e9ea7be278d7890c46cf28ecc3cfd35a36fb46.html b/tests/snapshots/members/filters=None,inherited_members=False,members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/a200913d9a7d51c52ab58f6fc4e9ea7be278d7890c46cf28ecc3cfd35a36fb46.html
rename to tests/snapshots/members/filters=None,inherited_members=False,members=('module_attribute',).html
diff --git a/tests/snapshots/external/fb770e6537bc1b98c0de03db7810404967562a2ffd1700ca35c9788949ca55c0.html b/tests/snapshots/members/filters=None,inherited_members=False,members=().html
similarity index 100%
rename from tests/snapshots/external/fb770e6537bc1b98c0de03db7810404967562a2ffd1700ca35c9788949ca55c0.html
rename to tests/snapshots/members/filters=None,inherited_members=False,members=().html
diff --git a/tests/snapshots/external/9bd282a6f2fe82f3ffe66b175bf90ab3e808e3a67f3c15a9f9e3e143d7956e49.html b/tests/snapshots/members/filters=None,inherited_members=False,members=False.html
similarity index 100%
rename from tests/snapshots/external/9bd282a6f2fe82f3ffe66b175bf90ab3e808e3a67f3c15a9f9e3e143d7956e49.html
rename to tests/snapshots/members/filters=None,inherited_members=False,members=False.html
diff --git a/tests/snapshots/external/0f046dea611f6c9e90b8eaed720f22af372394971808e2a5d1b3a12286f1ec76.html b/tests/snapshots/members/filters=None,inherited_members=False,members=None.html
similarity index 100%
rename from tests/snapshots/external/0f046dea611f6c9e90b8eaed720f22af372394971808e2a5d1b3a12286f1ec76.html
rename to tests/snapshots/members/filters=None,inherited_members=False,members=None.html
diff --git a/tests/snapshots/external/f4150843096a1371b097478f8d67062e3d45ab9f6a8f97e79ae62d32abc5e22a.html b/tests/snapshots/members/filters=None,inherited_members=False,members=True.html
similarity index 100%
rename from tests/snapshots/external/f4150843096a1371b097478f8d67062e3d45ab9f6a8f97e79ae62d32abc5e22a.html
rename to tests/snapshots/members/filters=None,inherited_members=False,members=True.html
diff --git a/tests/snapshots/external/bd6594ae3b516bf84cd0b0e6605087f430f62d787c32225ac8b4039c92e20b76.html b/tests/snapshots/members/filters=None,inherited_members=True,members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/bd6594ae3b516bf84cd0b0e6605087f430f62d787c32225ac8b4039c92e20b76.html
rename to tests/snapshots/members/filters=None,inherited_members=True,members=('module_attribute',).html
diff --git a/tests/snapshots/external/ce06da7f07b34e4f9071c5c001a8626f2d5fd8eed9a3ba81abebd76f8afc6861.html b/tests/snapshots/members/filters=None,inherited_members=True,members=().html
similarity index 100%
rename from tests/snapshots/external/ce06da7f07b34e4f9071c5c001a8626f2d5fd8eed9a3ba81abebd76f8afc6861.html
rename to tests/snapshots/members/filters=None,inherited_members=True,members=().html
diff --git a/tests/snapshots/external/3f5d794823a451ec9d4ed8c7e16d1354d39b74380402b255ee60741e97c9960c.html b/tests/snapshots/members/filters=None,inherited_members=True,members=False.html
similarity index 100%
rename from tests/snapshots/external/3f5d794823a451ec9d4ed8c7e16d1354d39b74380402b255ee60741e97c9960c.html
rename to tests/snapshots/members/filters=None,inherited_members=True,members=False.html
diff --git a/tests/snapshots/external/ea914f1afa9de4b5eddc9792c2b6a5d8de367274278976092bb824e99e523ca5.html b/tests/snapshots/members/filters=None,inherited_members=True,members=None.html
similarity index 100%
rename from tests/snapshots/external/ea914f1afa9de4b5eddc9792c2b6a5d8de367274278976092bb824e99e523ca5.html
rename to tests/snapshots/members/filters=None,inherited_members=True,members=None.html
diff --git a/tests/snapshots/external/c0f102dbd7d4de76de40c06a8205a642465f5fde9a37b4b969aa01f161ef25a4.html b/tests/snapshots/members/filters=None,inherited_members=True,members=True.html
similarity index 100%
rename from tests/snapshots/external/c0f102dbd7d4de76de40c06a8205a642465f5fde9a37b4b969aa01f161ef25a4.html
rename to tests/snapshots/members/filters=None,inherited_members=True,members=True.html
diff --git a/tests/snapshots/external/408244423577f9b2598b319118c5f4a0a495116b06ebb2877a0964d526ec18e0.html b/tests/snapshots/members/filters=public,inherited_members=('method1',),members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/408244423577f9b2598b319118c5f4a0a495116b06ebb2877a0964d526ec18e0.html
rename to tests/snapshots/members/filters=public,inherited_members=('method1',),members=('module_attribute',).html
diff --git a/tests/snapshots/external/51d73351dc5546cefc8087b8409ebb7841c879fb48c875ff4cba6fbadee64014.html b/tests/snapshots/members/filters=public,inherited_members=('method1',),members=().html
similarity index 100%
rename from tests/snapshots/external/51d73351dc5546cefc8087b8409ebb7841c879fb48c875ff4cba6fbadee64014.html
rename to tests/snapshots/members/filters=public,inherited_members=('method1',),members=().html
diff --git a/tests/snapshots/external/6abf5ddd819b832a1593ece448c90e63e13faa4376cca76b4fddc4d52a47f8b0.html b/tests/snapshots/members/filters=public,inherited_members=('method1',),members=False.html
similarity index 100%
rename from tests/snapshots/external/6abf5ddd819b832a1593ece448c90e63e13faa4376cca76b4fddc4d52a47f8b0.html
rename to tests/snapshots/members/filters=public,inherited_members=('method1',),members=False.html
diff --git a/tests/snapshots/external/6af55596d9c42d2634baadf77df6060caba2bd9c2d634576378cc18131c0efba.html b/tests/snapshots/members/filters=public,inherited_members=('method1',),members=None.html
similarity index 100%
rename from tests/snapshots/external/6af55596d9c42d2634baadf77df6060caba2bd9c2d634576378cc18131c0efba.html
rename to tests/snapshots/members/filters=public,inherited_members=('method1',),members=None.html
diff --git a/tests/snapshots/external/6c0b7207df0351e1d5232859a5c13b72533fb8c87e5dc0e971b185f8dfe38c84.html b/tests/snapshots/members/filters=public,inherited_members=('method1',),members=True.html
similarity index 100%
rename from tests/snapshots/external/6c0b7207df0351e1d5232859a5c13b72533fb8c87e5dc0e971b185f8dfe38c84.html
rename to tests/snapshots/members/filters=public,inherited_members=('method1',),members=True.html
diff --git a/tests/snapshots/external/d56d3aeae22be9b2494a085b812f0a3a5fabdbef184198de0462a0b944393891.html b/tests/snapshots/members/filters=public,inherited_members=(),members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/d56d3aeae22be9b2494a085b812f0a3a5fabdbef184198de0462a0b944393891.html
rename to tests/snapshots/members/filters=public,inherited_members=(),members=('module_attribute',).html
diff --git a/tests/snapshots/external/2e866eca9a45f82cd1e16bb55bbc2a03bb19548457598bca83141cb375fb1aa3.html b/tests/snapshots/members/filters=public,inherited_members=(),members=().html
similarity index 100%
rename from tests/snapshots/external/2e866eca9a45f82cd1e16bb55bbc2a03bb19548457598bca83141cb375fb1aa3.html
rename to tests/snapshots/members/filters=public,inherited_members=(),members=().html
diff --git a/tests/snapshots/external/46daa7e60b98815685904dd397f0de19cf1a94397d2165418a4f9fec02c7b560.html b/tests/snapshots/members/filters=public,inherited_members=(),members=False.html
similarity index 100%
rename from tests/snapshots/external/46daa7e60b98815685904dd397f0de19cf1a94397d2165418a4f9fec02c7b560.html
rename to tests/snapshots/members/filters=public,inherited_members=(),members=False.html
diff --git a/tests/snapshots/external/6d72c524b827a2e4fd84a17b2aecfffca0d05bfa3fc38815f89836607e5a6c92.html b/tests/snapshots/members/filters=public,inherited_members=(),members=None.html
similarity index 100%
rename from tests/snapshots/external/6d72c524b827a2e4fd84a17b2aecfffca0d05bfa3fc38815f89836607e5a6c92.html
rename to tests/snapshots/members/filters=public,inherited_members=(),members=None.html
diff --git a/tests/snapshots/external/74e2496015e194b88a30c9d0a4d9309bf74c122d1d24aecaa4d9c9c392057d1a.html b/tests/snapshots/members/filters=public,inherited_members=(),members=True.html
similarity index 100%
rename from tests/snapshots/external/74e2496015e194b88a30c9d0a4d9309bf74c122d1d24aecaa4d9c9c392057d1a.html
rename to tests/snapshots/members/filters=public,inherited_members=(),members=True.html
diff --git a/tests/snapshots/external/80399c502938940d34e928b35648146970dc524534fe2e7f7127ccb32e3067d0.html b/tests/snapshots/members/filters=public,inherited_members=False,members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/80399c502938940d34e928b35648146970dc524534fe2e7f7127ccb32e3067d0.html
rename to tests/snapshots/members/filters=public,inherited_members=False,members=('module_attribute',).html
diff --git a/tests/snapshots/external/135f57223e006849dcdd1463367127e4c5ee4aba5f12bde17ab3e494dbeed490.html b/tests/snapshots/members/filters=public,inherited_members=False,members=().html
similarity index 100%
rename from tests/snapshots/external/135f57223e006849dcdd1463367127e4c5ee4aba5f12bde17ab3e494dbeed490.html
rename to tests/snapshots/members/filters=public,inherited_members=False,members=().html
diff --git a/tests/snapshots/external/9dab67183389335dadba724875c80c49909904aa135e65c6c411c3a903d458da.html b/tests/snapshots/members/filters=public,inherited_members=False,members=False.html
similarity index 100%
rename from tests/snapshots/external/9dab67183389335dadba724875c80c49909904aa135e65c6c411c3a903d458da.html
rename to tests/snapshots/members/filters=public,inherited_members=False,members=False.html
diff --git a/tests/snapshots/external/b4e20d5cd52e746cc7473537a2318a9ad886c5d8d8654c8d4f85fe209b04d86b.html b/tests/snapshots/members/filters=public,inherited_members=False,members=None.html
similarity index 100%
rename from tests/snapshots/external/b4e20d5cd52e746cc7473537a2318a9ad886c5d8d8654c8d4f85fe209b04d86b.html
rename to tests/snapshots/members/filters=public,inherited_members=False,members=None.html
diff --git a/tests/snapshots/external/a255ee80bf7a569ab3aa55ea94af24ce6671dace3d6075df5d14a3ff428ceb8b.html b/tests/snapshots/members/filters=public,inherited_members=False,members=True.html
similarity index 100%
rename from tests/snapshots/external/a255ee80bf7a569ab3aa55ea94af24ce6671dace3d6075df5d14a3ff428ceb8b.html
rename to tests/snapshots/members/filters=public,inherited_members=False,members=True.html
diff --git a/tests/snapshots/external/e254ae60f9af14754001bc63b74a3c473f5198cf2a58f4d30ad6d5a4c196e67c.html b/tests/snapshots/members/filters=public,inherited_members=True,members=('module_attribute',).html
similarity index 100%
rename from tests/snapshots/external/e254ae60f9af14754001bc63b74a3c473f5198cf2a58f4d30ad6d5a4c196e67c.html
rename to tests/snapshots/members/filters=public,inherited_members=True,members=('module_attribute',).html
diff --git a/tests/snapshots/external/f48d651b3f1a2ce91910e05f4c3f7a7ec95e7d0e88d4503f101610d74029ce23.html b/tests/snapshots/members/filters=public,inherited_members=True,members=().html
similarity index 100%
rename from tests/snapshots/external/f48d651b3f1a2ce91910e05f4c3f7a7ec95e7d0e88d4503f101610d74029ce23.html
rename to tests/snapshots/members/filters=public,inherited_members=True,members=().html
diff --git a/tests/snapshots/external/ed5d07bcdbaa3f295c0cb1544d54b196728ed6c70f4d6c902991baca6f16193c.html b/tests/snapshots/members/filters=public,inherited_members=True,members=False.html
similarity index 100%
rename from tests/snapshots/external/ed5d07bcdbaa3f295c0cb1544d54b196728ed6c70f4d6c902991baca6f16193c.html
rename to tests/snapshots/members/filters=public,inherited_members=True,members=False.html
diff --git a/tests/snapshots/external/16295fa51a2c3a60d1461a9a14093603333f836326a007d8eb061f78ab38a712.html b/tests/snapshots/members/filters=public,inherited_members=True,members=None.html
similarity index 100%
rename from tests/snapshots/external/16295fa51a2c3a60d1461a9a14093603333f836326a007d8eb061f78ab38a712.html
rename to tests/snapshots/members/filters=public,inherited_members=True,members=None.html
diff --git a/tests/snapshots/external/37232379c426474cc962db72ded419e39c3e416c30e367c8745f3be4e86557a4.html b/tests/snapshots/members/filters=public,inherited_members=True,members=True.html
similarity index 100%
rename from tests/snapshots/external/37232379c426474cc962db72ded419e39c3e416c30e367c8745f3be4e86557a4.html
rename to tests/snapshots/members/filters=public,inherited_members=True,members=True.html
diff --git a/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=False.html b/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=False.html
new file mode 100644
index 00000000..76234631
--- /dev/null
+++ b/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=False.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+ overloads_package
+
+
+
+
+
+
+
+ Class
+
+
+
+
+ Docstring for
+
+ Class
+
+ .
+
+
+
+
+
+
+ bar
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ Class.bar
+
+ .
+
+
+
+
+
+
+
+ foo
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ Class.foo
+
+ .
+
+
+
+
+
+
+
+
+
+
+ bar
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ bar
+
+ .
+
+
+
+
+
+
+
+ foo
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ foo
+
+ .
+
+
+
+
+
+
diff --git a/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=True.html b/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=True.html
new file mode 100644
index 00000000..afa94fae
--- /dev/null
+++ b/tests/snapshots/overloads/overloads_only=False,separate_signature=False,show_overloads=True.html
@@ -0,0 +1,189 @@
+
+
+
+
+
+ overloads_package
+
+
+
+
+
+
+
+ Class
+
+
+
+
+ Docstring for
+
+ Class
+
+ .
+
+
+
+
+
+
+ bar
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ Class.bar
+
+ .
+
+
+
+
+
+
+
+ foo
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+
foo(a: int, b: str) -> float
+
+
+
+
foo(a: str, b: int) -> None
+
+
+
+
+
+ Docstring for
+
+ Class.foo
+
+ .
+
+
+
+
+
+
+
+
+
+
+ bar
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ bar
+
+ .
+
+
+
+
+
+
+
+ foo
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+
foo(a: int, b: str) -> float
+
+
+
+
foo(a: str, b: int) -> None
+
+
+
+
+
+ Docstring for
+
+ foo
+
+ .
+
+
+
+
+
+
diff --git a/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=False.html b/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=False.html
new file mode 100644
index 00000000..96629ba3
--- /dev/null
+++ b/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=False.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+ overloads_package
+
+
+
+
+
+
+
+ Class
+
+
+
+
+ Docstring for
+
+ Class
+
+ .
+
+
+
+
+
+ bar
+
+
+
+
+
+ Docstring for
+
+ Class.bar
+
+ .
+
+
+
+
+
+
+ foo
+
+
+
+
+
+ Docstring for
+
+ Class.foo
+
+ .
+
+
+
+
+
+
+
+
+
+ bar
+
+
+
+
+
+ Docstring for
+
+ bar
+
+ .
+
+
+
+
+
+
+ foo
+
+
+
+
+
+ Docstring for
+
+ foo
+
+ .
+
+
+
+
+
+
diff --git a/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=True.html b/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=True.html
new file mode 100644
index 00000000..3f231581
--- /dev/null
+++ b/tests/snapshots/overloads/overloads_only=False,separate_signature=True,show_overloads=True.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+ overloads_package
+
+
+
+
+
+
+
+ Class
+
+
+
+
+ Docstring for
+
+ Class
+
+ .
+
+
+
+
+
+ bar
+
+
+
+
+
+ Docstring for
+
+ Class.bar
+
+ .
+
+
+
+
+
+
+ foo
+
+
+
+
+
foo(a: int, b: str) -> float
+
+
+
+
foo(a: str, b: int) -> None
+
+
+
+
+
+
+ Docstring for
+
+ Class.foo
+
+ .
+
+
+
+
+
+
+
+
+
+ bar
+
+
+
+
+
+ Docstring for
+
+ bar
+
+ .
+
+
+
+
+
+
+ foo
+
+
+
+
+
foo(a: int, b: str) -> float
+
+
+
+
foo(a: str, b: int) -> None
+
+
+
+
+
+
+ Docstring for
+
+ foo
+
+ .
+
+
+
+
+
+
diff --git a/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=False.html b/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=False.html
new file mode 100644
index 00000000..23a1a9c5
--- /dev/null
+++ b/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=False.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+ overloads_package
+
+
+
+
+
+
+
+ Class
+
+
+
+
+ Docstring for
+
+ Class
+
+ .
+
+
+
+
+
+
+ bar
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ Class.bar
+
+ .
+
+
+
+
+
+
+
+ foo
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ Class.foo
+
+ .
+
+
+
+
+
+
+
+
+
+
+ bar
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ bar
+
+ .
+
+
+
+
+
+
+
+ foo
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ foo
+
+ .
+
+
+
+
+
+
diff --git a/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=True.html b/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=True.html
new file mode 100644
index 00000000..79b078af
--- /dev/null
+++ b/tests/snapshots/overloads/overloads_only=True,separate_signature=False,show_overloads=True.html
@@ -0,0 +1,189 @@
+
+
+
+
+
+ overloads_package
+
+
+
+
+
+
+
+ Class
+
+
+
+
+ Docstring for
+
+ Class
+
+ .
+
+
+
+
+
+
+ bar
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ Class.bar
+
+ .
+
+
+
+
+
+
+
+ foo
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+
foo(a: int, b: str) -> float
+
+
+
+
foo(a: str, b: int) -> None
+
+
+
+
+
+ Docstring for
+
+ Class.foo
+
+ .
+
+
+
+
+
+
+
+
+
+
+ bar
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+ Docstring for
+
+ bar
+
+ .
+
+
+
+
+
+
+
+ foo
+
+
+ (
+
+
+ a
+
+
+ ,
+
+
+ b
+
+
+ )
+
+
+
+
+
+
foo(a: int, b: str) -> float
+
+
+
+
foo(a: str, b: int) -> None
+
+
+
+
+
+ Docstring for
+
+ foo
+
+ .
+
+
+
+
+
+
diff --git a/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=False.html b/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=False.html
new file mode 100644
index 00000000..1f1c5822
--- /dev/null
+++ b/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=False.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+ overloads_package
+
+
+
+
+
+
+
+ Class
+
+
+
+
+ Docstring for
+
+ Class
+
+ .
+
+
+
+
+
+ bar
+
+
+
+
+
+ Docstring for
+
+ Class.bar
+
+ .
+
+
+
+
+
+
+ foo
+
+
+
+
+
+ Docstring for
+
+ Class.foo
+
+ .
+
+
+
+
+
+
+
+
+
+ bar
+
+
+
+
+
+ Docstring for
+
+ bar
+
+ .
+
+
+
+
+
+
+ foo
+
+
+
+
+
+ Docstring for
+
+ foo
+
+ .
+
+
+
+
+
+
diff --git a/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=True.html b/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=True.html
new file mode 100644
index 00000000..7d4b3416
--- /dev/null
+++ b/tests/snapshots/overloads/overloads_only=True,separate_signature=True,show_overloads=True.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+ overloads_package
+
+
+
+
+
+
+
+ Class
+
+
+
+
+ Docstring for
+
+ Class
+
+ .
+
+
+
+
+
+ bar
+
+
+
+
+
+ Docstring for
+
+ Class.bar
+
+ .
+
+
+
+
+
+
+ foo
+
+
+
+
+
foo(a: int, b: str) -> float
+
+
+
+
foo(a: str, b: int) -> None
+
+
+
+
+
+ Docstring for
+
+ Class.foo
+
+ .
+
+
+
+
+
+
+
+
+
+ bar
+
+
+
+
+
+ Docstring for
+
+ bar
+
+ .
+
+
+
+
+
+
+ foo
+
+
+
+
+
foo(a: int, b: str) -> float
+
+
+
+
foo(a: str, b: int) -> None
+
+
+
+
+
+ Docstring for
+
+ foo
+
+ .
+
+
+
+
+
+
diff --git a/tests/snapshots/external/b060b701543e5503dc848538a164e80480ab25f8885aa83b97776e6b0cc6b570.html b/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=False,signature_crossrefs=False.html
similarity index 100%
rename from tests/snapshots/external/b060b701543e5503dc848538a164e80480ab25f8885aa83b97776e6b0cc6b570.html
rename to tests/snapshots/signatures/separate_signature=False,show_signature_annotations=False,signature_crossrefs=False.html
diff --git a/tests/snapshots/external/6a02b544c12c68b75d9bf3b85b1800830fd980daabff9df8c3760eb6edea7915.html b/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=False,signature_crossrefs=True.html
similarity index 100%
rename from tests/snapshots/external/6a02b544c12c68b75d9bf3b85b1800830fd980daabff9df8c3760eb6edea7915.html
rename to tests/snapshots/signatures/separate_signature=False,show_signature_annotations=False,signature_crossrefs=True.html
diff --git a/tests/snapshots/external/d1216ebf8e30ec559861678318efb45bef54a847517e5d90e130818c2a06b163.html b/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=True,signature_crossrefs=False.html
similarity index 100%
rename from tests/snapshots/external/d1216ebf8e30ec559861678318efb45bef54a847517e5d90e130818c2a06b163.html
rename to tests/snapshots/signatures/separate_signature=False,show_signature_annotations=True,signature_crossrefs=False.html
diff --git a/tests/snapshots/external/735fc6ffdb82ce35cdab2aed2389a630e4d2c7ad95308bc5c7a56a8a8930b37f.html b/tests/snapshots/signatures/separate_signature=False,show_signature_annotations=True,signature_crossrefs=True.html
similarity index 100%
rename from tests/snapshots/external/735fc6ffdb82ce35cdab2aed2389a630e4d2c7ad95308bc5c7a56a8a8930b37f.html
rename to tests/snapshots/signatures/separate_signature=False,show_signature_annotations=True,signature_crossrefs=True.html
diff --git a/tests/snapshots/external/d03d16d1919af01db9b8d4e5bf36b007810eb3730a7283624a4d68c6fe2ce652.html b/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=False,signature_crossrefs=False.html
similarity index 100%
rename from tests/snapshots/external/d03d16d1919af01db9b8d4e5bf36b007810eb3730a7283624a4d68c6fe2ce652.html
rename to tests/snapshots/signatures/separate_signature=True,show_signature_annotations=False,signature_crossrefs=False.html
diff --git a/tests/snapshots/external/4041a38e355f6585a7e1265509d7c5b499fe3776aeeeb298db7589bb385ca019.html b/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=False,signature_crossrefs=True.html
similarity index 100%
rename from tests/snapshots/external/4041a38e355f6585a7e1265509d7c5b499fe3776aeeeb298db7589bb385ca019.html
rename to tests/snapshots/signatures/separate_signature=True,show_signature_annotations=False,signature_crossrefs=True.html
diff --git a/tests/snapshots/external/74ee37cd1e94250baa33050af088e7341495708d879ab45ee9e8ab1dcac26f2a.html b/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=True,signature_crossrefs=False.html
similarity index 100%
rename from tests/snapshots/external/74ee37cd1e94250baa33050af088e7341495708d879ab45ee9e8ab1dcac26f2a.html
rename to tests/snapshots/signatures/separate_signature=True,show_signature_annotations=True,signature_crossrefs=False.html
diff --git a/tests/snapshots/external/e412376be64f25f3f5d2264400a83a1e693c146feec7c359855c676c4a586392.html b/tests/snapshots/signatures/separate_signature=True,show_signature_annotations=True,signature_crossrefs=True.html
similarity index 100%
rename from tests/snapshots/external/e412376be64f25f3f5d2264400a83a1e693c146feec7c359855c676c4a586392.html
rename to tests/snapshots/signatures/separate_signature=True,show_signature_annotations=True,signature_crossrefs=True.html
diff --git a/tests/test_end_to_end.py b/tests/test_end_to_end.py
index 3a96f803..3363ebd6 100644
--- a/tests/test_end_to_end.py
+++ b/tests/test_end_to_end.py
@@ -9,9 +9,7 @@
import bs4
import pytest
from griffe import LinesCollection, ModulesCollection, TmpPackage, temporary_pypackage
-from inline_snapshot import outsource
-
-from tests.snapshots import snapshots_members, snapshots_signatures
+from inline_snapshot import external_file, register_format_alias
if TYPE_CHECKING:
from collections.abc import Iterator
@@ -19,9 +17,12 @@
from mkdocstrings_handlers.python import PythonHandler
+register_format_alias(".html", ".txt")
+
+
def _normalize_html(html: str) -> str:
soup = bs4.BeautifulSoup(html, features="html.parser")
- html = soup.prettify() # type: ignore[assignment]
+ html = soup.prettify()
html = re.sub(r"\b(0x)[a-f0-9]+\b", r"\1...", html)
html = re.sub(r"^(Build Date UTC ?:).+", r"\1...", html, flags=re.MULTILINE)
html = re.sub(r"\b[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}\b", r"...", html)
@@ -59,6 +60,10 @@ def _render_options(options: dict[str, Any]) -> str:
return f"\n\n"
+def _snapshot_file(group: str, options: dict[str, Any]) -> str:
+ return f"snapshots/{group}/" + ",".join(f"{k}={v}" for k, v in sorted(options.items())) + ".html"
+
+
# Signature tests.
@pytest.fixture(name="signature_package", scope="session")
def _signature_package() -> Iterator[TmpPackage]:
@@ -98,14 +103,75 @@ def test_end_to_end_for_signatures(
identifier: Parametrized identifier.
session_handler: Python handler (fixture).
"""
- final_options = {
+ options = {
"show_signature_annotations": show_signature_annotations,
"signature_crossrefs": signature_crossrefs,
"separate_signature": separate_signature,
}
- html = _render_options(final_options) + _render(session_handler, signature_package, final_options)
- snapshot_key = tuple(sorted(final_options.items()))
- assert outsource(html, suffix=".html") == snapshots_signatures[snapshot_key]
+ html = _render_options(options) + _render(session_handler, signature_package, options)
+ assert html == external_file(_snapshot_file("signatures", options), format=".txt")
+
+
+# Signature overloads tests.
+@pytest.fixture(name="overloads_package", scope="session")
+def _overloads_package() -> Iterator[TmpPackage]:
+ code = """
+ from typing_extensions import overload
+
+ @overload
+ def foo(a: int, b: str) -> float: ...
+
+ @overload
+ def foo(a: str, b: int) -> None: ...
+
+ def foo(a: str | int, b: int | str) -> float | None:
+ '''Docstring for `foo`.'''
+
+ def bar(a: str, b: int | str) -> float | None:
+ '''Docstring for `bar`.'''
+
+ class Class:
+ '''Docstring for `Class`.'''
+
+ @overload
+ def foo(self, a: int, b: str) -> float: ...
+
+ @overload
+ def foo(self, a: str, b: int) -> None: ...
+
+ def foo(self, a: str | int, b: int | str) -> float | None:
+ '''Docstring for `Class.foo`.'''
+
+ def bar(self, a: str, b: int | str) -> float | None:
+ '''Docstring for `Class.bar`.'''
+ """
+ with temporary_pypackage("overloads_package", {"__init__.py": code}) as tmppkg:
+ yield tmppkg
+
+
+@pytest.mark.parametrize("separate_signature", [True, False])
+@pytest.mark.parametrize("show_overloads", [True, False])
+@pytest.mark.parametrize("overloads_only", [True, False])
+def test_end_to_end_for_overloads(
+ session_handler: PythonHandler,
+ overloads_package: TmpPackage,
+ separate_signature: bool,
+ show_overloads: bool,
+ overloads_only: bool,
+) -> None:
+ """Test rendering of a given theme's templates.
+
+ Parameters:
+ identifier: Parametrized identifier.
+ session_handler: Python handler (fixture).
+ """
+ options = {
+ "separate_signature": separate_signature,
+ "show_overloads": show_overloads,
+ "overloads_only": overloads_only,
+ }
+ html = _render_options(options) + _render(session_handler, overloads_package, options)
+ assert html == external_file(_snapshot_file("overloads", options), format=".txt")
# Member tests.
@@ -163,14 +229,13 @@ def test_end_to_end_for_members(
identifier: Parametrized identifier.
session_handler: Python handler (fixture).
"""
- final_options = {
+ options = {
"inherited_members": inherited_members,
"members": members,
"filters": filters,
}
- html = _render_options(final_options) + _render(session_handler, members_package, final_options)
- snapshot_key = tuple(sorted(final_options.items()))
- assert outsource(html, suffix=".html") == snapshots_members[snapshot_key]
+ html = _render_options(options) + _render(session_handler, members_package, options)
+ assert html == external_file(_snapshot_file("members", options), format=".txt")
# Heading tests.
@@ -209,12 +274,10 @@ def test_end_to_end_for_headings(
identifier: Parametrized identifier.
session_handler: Python handler (fixture).
"""
- final_options = {
+ options = {
"separate_signature": separate_signature,
"heading": heading,
- "show_if_no_docstring": True,
- "members": False,
}
- html = _render_options(final_options) + _render(session_handler, headings_package, final_options)
- snapshot_key = tuple(sorted(final_options.items()))
- assert outsource(html, suffix=".html") == snapshots_members[snapshot_key]
+ extra = {"show_if_no_docstring": True, "members": False}
+ html = _render_options(options) + _render(session_handler, headings_package, {**options, **extra})
+ assert html == external_file(_snapshot_file("headings", options), format=".txt")