diff --git a/.copier-answers.yml b/.copier-answers.yml index b2cee68e..76531124 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier. -_commit: 1.4.0 +_commit: 1.4.5 _src_path: gh:mkdocstrings/handler-template author_email: dev@pawamoy.fr author_fullname: Timothée Mazzucotelli diff --git a/CHANGELOG.md b/CHANGELOG.md index bdd5c263..ea4f1cf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,34 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [1.16.12](https://github.com/mkdocstrings/python/releases/tag/1.16.12) - 2025-06-03 + +[Compare with 1.16.11](https://github.com/mkdocstrings/python/compare/1.16.11...1.16.12) + +### Bug Fixes + +- Only replace CSS class in first *highlighting* span ([d57740f](https://github.com/mkdocstrings/python/commit/d57740f874f056fb3ba1c6013ad04227df0f0af8) by Timothée Mazzucotelli). [Issue-281](https://github.com/mkdocstrings/python/issues/281) + +## [1.16.11](https://github.com/mkdocstrings/python/releases/tag/1.16.11) - 2025-05-24 + +[Compare with 1.16.10](https://github.com/mkdocstrings/python/compare/1.16.10...1.16.11) + +### Bug Fixes + +- Fix highlighting for signature with known special names like `__init__` ([7f95686](https://github.com/mkdocstrings/python/commit/7f956868f93a766346455fedb296c26787894d5c) by Timothée Mazzucotelli). [Issue-mkdocstrings-757](https://github.com/mkdocstrings/mkdocstrings/issues/757) +- Use default font-size for parameter headings ([0a35b20](https://github.com/mkdocstrings/python/commit/0a35b20a6050a28ba8492d93e5f9940a69462ce3) by Timothée Mazzucotelli). [Issue-mkdocstrings-697](https://github.com/mkdocstrings/mkdocstrings/issues/697) +- Prevent uppercasing H5 titles (by Material for MkDocs) ([ba66969](https://github.com/mkdocstrings/python/commit/ba669697daad5067ea5db3fdf8a2d5ba2f966b25) by Timothée Mazzucotelli). [Issue-mkdocstrings-697](https://github.com/mkdocstrings/mkdocstrings/issues/697), [Issue-276](https://github.com/mkdocstrings/python/issues/276) +- Use configured heading even when signature is not separated ([096960a](https://github.com/mkdocstrings/python/commit/096960abd79831d6fd45e2a7962dfd2bd49e4edd) by Timothée Mazzucotelli). [Issue-mkdocstrings-767](https://github.com/mkdocstrings/mkdocstrings/issues/767), [PR-278](https://github.com/mkdocstrings/python/pull/278) +- Render attribute names without full path in ToC ([d4e618a](https://github.com/mkdocstrings/python/commit/d4e618ab794747b84dced848b1be824639fea2b8) by David Lee). [Issue-271](https://github.com/mkdocstrings/python/issues/271), [PR-272](https://github.com/mkdocstrings/python/pull/272) + +## [1.16.10](https://github.com/mkdocstrings/python/releases/tag/1.16.10) - 2025-04-03 + +[Compare with 1.16.9](https://github.com/mkdocstrings/python/compare/1.16.9...1.16.10) + +### Bug Fixes + +- Fix inventory `base_url` being ignored ([8870eb9](https://github.com/mkdocstrings/python/commit/8870eb9af837666f59f96149c67c849e02f7ee25) by Stefan Mejlgaard). [Issue-268](https://github.com/mkdocstrings/python/issues/268), [PR-269](https://github.com/mkdocstrings/python/pull/269) + ## [1.16.9](https://github.com/mkdocstrings/python/releases/tag/1.16.9) - 2025-04-03 [Compare with 1.16.8](https://github.com/mkdocstrings/python/compare/1.16.8...1.16.9) diff --git a/docs/css/material.css b/docs/css/material.css index 19c6b076..235ef946 100644 --- a/docs/css/material.css +++ b/docs/css/material.css @@ -23,4 +23,4 @@ background-color: rgb(220, 139, 240); -webkit-mask-image: var(--md-admonition-icon--preview); mask-image: var(--md-admonition-icon--preview); -} \ No newline at end of file +} diff --git a/docs/usage/configuration/signatures.md b/docs/usage/configuration/signatures.md index 98c865e5..c49cd181 100644 --- a/docs/usage/configuration/signatures.md +++ b/docs/usage/configuration/signatures.md @@ -286,6 +286,56 @@ plugins: /// +[](){#option-overloads_only} +## `overloads_only` + +Whether to hide the implementation signature if the overloads are shown with [`show_overloads`][]. + +```yaml title="in mkdocs.yml (global configuration)" +plugins: +- mkdocstrings: + handlers: + python: + options: + overloads_only: true +``` + +```md title="or in docs/some_page.md (local configuration)" +::: path.to.module + options: + overloads_only: true +``` + +/// admonition | Preview + type: preview +//// tab | With overloads only +
SomeClass
some_attr = 1
+//// + +//// tab | With attribute values hidden +SomeClass
some_attr
+//// +/// + [](){#option-show_overloads} ## `show_overloads` diff --git a/docs/usage/index.md b/docs/usage/index.md index b2a00955..e1fa457f 100644 --- a/docs/usage/index.md +++ b/docs/usage/index.md @@ -150,9 +150,11 @@ plugins: [__all__]: https://docs.python.org/3/tutorial/modules.html#importing-from-a-package [](){#setting-locale} -#### `locale` +#### ~~`locale`~~ -The locale to use when translating template strings. The translation system is not fully ready yet, so we don't recommend setting the option for now. +**Deprecated.** Use mkdocstrings' own `locale` setting. + +~~The locale to use when translating template strings.~~ [](){#setting-paths} #### `paths` diff --git a/duties.py b/duties.py index 18282747..2f09340f 100644 --- a/duties.py +++ b/duties.py @@ -240,7 +240,7 @@ def coverage(ctx: Context) -> None: @duty -def test(ctx: Context, *cli_args: str, match: str = "", snapshot: str = "report") -> None: +def test(ctx: Context, *cli_args: str, match: str = "", snapshot: str = "report") -> None: # noqa: PT028 """Run the test suite. Parameters: diff --git a/mkdocs.yml b/mkdocs.yml index 6fc301b0..0199ea9a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -182,11 +182,12 @@ plugins: summary: true unwrap_annotated: true - llmstxt: - files: - - output: llms-full.txt - inputs: + full_output: llms-full.txt + sections: + Usage: - index.md - - reference/**.md + API: + - reference/api.md - git-revision-date-localized: enabled: !ENV [DEPLOY, false] enable_creation_date: true diff --git a/pyproject.toml b/pyproject.toml index 3ec25ccc..8adc2a30 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -57,7 +57,7 @@ includes = ["src/mkdocstrings_handlers"] editable-backend = "editables" # Include as much as possible in the source distribution, to help redistributors. -excludes = ["**/.pytest_cache"] +excludes = ["**/.pytest_cache", "**/.mypy_cache"] source-includes = [ "config", "docs", @@ -86,7 +86,7 @@ maintain = [ "yore>=0.3.3", ] ci = [ - "blacK>=25.1", + "black>=25.1", "duty>=1.6", "ruff>=0.4", "pytest>=8.2", @@ -94,7 +94,7 @@ ci = [ "pytest-randomly>=3.15", "pytest-xdist>=3.6", "beautifulsoup4>=4.12.3", - "inline-snapshot>=0.18", + "inline-snapshot>=0.25", "mypy>=1.10", "types-markdown>=3.6", "types-pyyaml>=6.0", @@ -105,12 +105,13 @@ ci = [ "mkdocs>=1.6", "mkdocs-coverage>=1.0", "mkdocs-git-revision-date-localized-plugin>=1.2", - "mkdocs-llmstxt>=0.1", + "mkdocs-llmstxt>=0.2", "mkdocs-material>=9.5", - "pydantic>=2.10", "mkdocs-minify-plugin>=0.8", "mkdocs-redirects>=1.2", "mkdocs-section-index>=0.3", + "mkdocstrings>=0.29", + "pydantic>=2.10", # YORE: EOL 3.10: Remove line. "tomli>=2.0; python_version < '3.11'", ] diff --git a/src/mkdocstrings_handlers/python/_internal/config.py b/src/mkdocstrings_handlers/python/_internal/config.py index 11c77da1..6a68e353 100644 --- a/src/mkdocstrings_handlers/python/_internal/config.py +++ b/src/mkdocstrings_handlers/python/_internal/config.py @@ -554,6 +554,14 @@ class PythonInputOptions: ), ] = False + overloads_only: Annotated[ + bool, + _Field( + group="signatures", + description="Whether to hide the implementation signature if the overloads are shown.", + ), + ] = False + parameter_headings: Annotated[ bool, _Field( @@ -614,6 +622,14 @@ class PythonInputOptions: ), ] = False + show_attribute_values: Annotated[ + bool, + _Field( + group="signatures", + description="Show initial values of attributes in classes.", + ), + ] = True + show_bases: Annotated[ bool, _Field( @@ -971,7 +987,7 @@ class Inventory: ), ] - base: Annotated[ + base_url: Annotated[ str | None, _Field( parent="inventories", @@ -989,7 +1005,7 @@ class Inventory: @property def _config(self) -> dict[str, Any]: - return {"base": self.base, "domains": self.domains} + return {"base_url": self.base_url, "domains": self.domains} # YORE: EOL 3.9: Replace `**_dataclass_options` with `frozen=True, kw_only=True` within line. @@ -1019,7 +1035,9 @@ class PythonInputConfig: locale: Annotated[ str | None, - _Field(description="The locale to use when translating template strings."), + _Field( + description="Deprecated. Use mkdocstrings' own `locale` setting instead. The locale to use when translating template strings.", + ), ] = None @classmethod diff --git a/src/mkdocstrings_handlers/python/_internal/handler.py b/src/mkdocstrings_handlers/python/_internal/handler.py index 896a70e3..8bc40d27 100644 --- a/src/mkdocstrings_handlers/python/_internal/handler.py +++ b/src/mkdocstrings_handlers/python/_internal/handler.py @@ -278,12 +278,13 @@ def collect(self, identifier: str, options: PythonOptions) -> CollectorItem: return doc_object - def render(self, data: CollectorItem, options: PythonOptions) -> str: + def render(self, data: CollectorItem, options: PythonOptions, locale: str | None = None) -> str: """Render the collected data. Parameters: data: The collected data. options: The options to use for rendering. + locale: The locale to use for rendering (default is "en"). Returns: The rendered data (HTML). @@ -300,7 +301,8 @@ def render(self, data: CollectorItem, options: PythonOptions) -> str: # than as an item in a dictionary. "heading_level": options.heading_level, "root": True, - "locale": self.config.locale, + # YORE: Bump 2: Regex-replace ` or .+` with ` or "en",` within line. + "locale": locale or self.config.locale, }, ) @@ -360,7 +362,7 @@ def get_aliases(self, identifier: str) -> tuple[str, ...]: return tuple(f"{alias}({parameter})" for alias in aliases) return tuple(aliases) - def normalize_extension_paths(self, extensions: Sequence) -> Sequence: + def normalize_extension_paths(self, extensions: Sequence) -> list[str | dict[str, Any]]: """Resolve extension paths relative to config file. Parameters: @@ -369,7 +371,7 @@ def normalize_extension_paths(self, extensions: Sequence) -> Sequence: Returns: The normalized extensions. """ - normalized = [] + normalized: list[str | dict[str, Any]] = [] for ext in extensions: if isinstance(ext, dict): @@ -401,6 +403,7 @@ def get_handler( Parameters: handler_config: The handler configuration. tool_config: The tool (SSG) configuration. + **kwargs: Additional arguments to pass to the handler. Returns: An instance of `PythonHandler`. diff --git a/src/mkdocstrings_handlers/python/_internal/rendering.py b/src/mkdocstrings_handlers/python/_internal/rendering.py index 8f544014..70eacb36 100644 --- a/src/mkdocstrings_handlers/python/_internal/rendering.py +++ b/src/mkdocstrings_handlers/python/_internal/rendering.py @@ -185,10 +185,12 @@ def do_format_signature( # Pygments sees it as a function call and not a function definition. # The result is that the function name is not parsed as such, # but instead as a regular name: `n` CSS class instead of `nf`. - # To fix it, we replace the first occurrence of an `n` CSS class - # with an `nf` one, unless we found `nf` already. - if signature.find('class="nf"') == -1: - signature = signature.replace('class="n"', 'class="nf"', 1) + # When the function name is a known special name like `__exit__`, + # Pygments will set an `fm` (function -> magic) CSS class. + # To fix this, we replace the CSS class in the first span with `nf`, + # unless we already found an `nf` span. + if not re.search(r'', signature): + signature = re.sub(r'', '', signature, count=1) if stash := env.filters["stash_crossref"].stash: for key, value in stash.items(): @@ -206,6 +208,7 @@ def do_format_attribute( line_length: int, *, crossrefs: bool = False, # noqa: ARG001 + show_value: bool = True, ) -> str: """Format an attribute. @@ -233,7 +236,7 @@ def do_format_attribute( backlink_type="returned-by", ) signature += f": {annotation}" - if attribute.value: + if show_value and attribute.value: value = template.render(context.parent, expression=attribute.value, signature=True, backlink_type="used-by") signature += f" = {value}" @@ -259,7 +262,7 @@ def do_format_attribute( 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. @@ -520,7 +523,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 @@ -556,7 +559,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 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 7894c544..5832c8bd 100644 --- a/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja +++ b/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja @@ -39,7 +39,7 @@ Context: role="data" if attribute.parent.kind.value == "module" else "attr", 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),
+ toc_label=('
'|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else attribute.name),
) %}
{% block heading scoped %}
@@ -48,12 +48,14 @@ Context:
This block renders the heading for the attribute.
-#}
{% if config.show_symbol_type_heading %}
{% endif %}
- {% if config.separate_signature %}
- {{ config.heading if config.heading and root else attribute_name }}
+ {% if config.heading and root %}
+ {{ config.heading }}
+ {% elif config.separate_signature %}
+ {{ attribute_name }}
{% 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 %}
@@ -77,7 +79,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 %}
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 ae2f8de5..8a54dd1b 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/class.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/class.html.jinja
@@ -47,8 +47,10 @@ Context:
This block renders the heading for the class.
-#}
{% if config.show_symbol_type_heading %}
{% endif %}
- {% if config.separate_signature %}
- {{ config.heading if config.heading and root else class_name }}
+ {% if config.heading and root %}
+ {{ config.heading }}
+ {% elif config.separate_signature %}
+ {{ class_name }}
{% elif config.merge_init_into_class and "__init__" in all_members %}
{% with function = all_members["__init__"] %}
{%+ filter highlight(language="python", inline=True) -%}
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 e56bc7e4..cd97c8db 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/function.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/function.html.jinja
@@ -54,8 +54,10 @@ Context:
This block renders the heading for the function.
-#}
{% if config.show_symbol_type_heading %}
{% endif %}
- {% if config.separate_signature %}
- {{ config.heading if config.heading and root else function_name }}
+ {% if config.heading and root %}
+ {{ config.heading }}
+ {% elif config.separate_signature %}
+ {{ function_name }}
{% else %}
{%+ filter highlight(language="python", inline=True) -%}
{#- YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. -#}
@@ -92,7 +94,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 %}
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 d2b5516d..283f2654 100644
--- a/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja
+++ b/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja
@@ -47,8 +47,10 @@ Context:
This block renders the heading for the module.
-#}
{% if config.show_symbol_type_heading %}
{% endif %}
- {% if config.separate_signature %}
- {{ config.heading if config.heading and root else module_name }}
+ {% if config.heading and root %}
+ {{ config.heading }}
+ {% elif config.separate_signature %}
+ {{ module_name }}
{% else %}
{{ module_name }}
{% endif %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/style.css b/src/mkdocstrings_handlers/python/templates/material/style.css
index e5e150ec..b8c3e639 100644
--- a/src/mkdocstrings_handlers/python/templates/material/style.css
+++ b/src/mkdocstrings_handlers/python/templates/material/style.css
@@ -9,6 +9,11 @@
display: inline;
}
+/* No text transformation from Material for MkDocs for H5 headings. */
+.md-typeset h5 .doc-object-name {
+ text-transform: none;
+}
+
/* Max width for docstring sections tables. */
.doc .md-typeset__table,
.doc .md-typeset__table table {
@@ -30,6 +35,11 @@
display: inline;
}
+/* Default font size for parameter headings. */
+.md-typeset .doc-heading-parameter {
+ font-size: inherit;
+}
+
/* Prefer space on the right, not the left of parameter permalinks. */
.doc-heading-parameter .headerlink {
margin-left: 0 !important;
diff --git a/tests/snapshots/__init__.py b/tests/snapshots/__init__.py
deleted file mode 100644
index e411bfa8..00000000
--- a/tests/snapshots/__init__.py
+++ /dev/null
@@ -1,387 +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("4370d843cc76*.html"),
- (
- ("separate_signature", True),
- ("show_signature_annotations", True),
- ("signature_crossrefs", True),
- ): external("261a38d7a86b*.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("f5ce06acbb7a*.html"),
- (
- ("separate_signature", True),
- ("show_signature_annotations", False),
- ("signature_crossrefs", True),
- ): external("9c0bfc0ee407*.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",
- ),
- },
-)
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/headings/heading=,separate_signature=False.html b/tests/snapshots/headings/heading=,separate_signature=False.html
new file mode 100644
index 00000000..2be154b9
--- /dev/null
+++ b/tests/snapshots/headings/heading=,separate_signature=False.html
@@ -0,0 +1,18 @@
+
+
+
+ headings_package
+
+
+ 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
+
+ .
+
+ 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
+
+ .
+
+ 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
+
+ .
+
+ Docstring for
+
+ Class
+
+ .
+
bar(a, b)
+
+
+ Docstring for
+
+ Class.bar
+
+ .
+
foo(a: int, b: str) -> float
+
+ foo(a: str, b: int) -> None
+
+ foo(a, b)
+
+
+ Docstring for
+
+ Class.foo
+
+ .
+
bar(a, b)
+
+
+ Docstring for
+
+ bar
+
+ .
+
foo(a: int, b: str) -> float
+
+ foo(a: str, b: int) -> None
+
+ foo(a, b)
+
+
+ Docstring for
+
+ foo
+
+ .
+
+ 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
+
+ .
+
+ 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
+
+ .
+
+ 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
+
+ .
+
+ Docstring for
+
+ Class
+
+ .
+
bar(a, b)
+
+
+ Docstring for
+
+ Class.bar
+
+ .
+
foo(a: int, b: str) -> float
+
+ foo(a: str, b: int) -> None
+
+
+ Docstring for
+
+ Class.foo
+
+ .
+
bar(a, b)
+
+
+ Docstring for
+
+ bar
+
+ .
+
foo(a: int, b: str) -> float
+
+ foo(a: str, b: int) -> None
+
+
+ Docstring for
+
+ foo
+
+ .
+
__init__(a, b)
+ __init__(a, b)
__init__(a, b)
+ __init__(a, b)
__init__(a: int, b: str) -> None
+ __init__(a: int, b: str) -> None
__init__(a: int , b: str ) -> None
+ __init__(a: int , b: str ) -> None
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: