8000 fix: Catch alias resolution errors · diviyank/python@b734dd0 · GitHub
[go: up one dir, main page]

Skip to content

Commit b734dd0

Browse files
committed
fix: Catch alias resolution errors
1 parent ad6c7dc commit b734dd0

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

src/mkdocstrings_handlers/python/collector.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
from __future__ import annotations
77

88
from collections import ChainMap
9+
from contextlib import suppress
910

1011
from griffe.agents.extensions import load_extensions
1112
from griffe.collections import LinesCollection, ModulesCollection
1213
from griffe.docstrings.parsers import Parser
14+
from griffe.exceptions import AliasResolutionError
1315
from griffe.loader import GriffeLoader
1416
from mkdocstrings.handlers.base import BaseCollector, CollectionError, CollectorItem
1517
from mkdocstrings.loggers import get_logger
@@ -85,8 +87,10 @@ def collect(self, identifier: str, config: dict) -> CollectorItem: # noqa: WPS2
8587
except KeyError as error: # noqa: WPS440
8688
raise CollectionError(f"{identifier} could not be found") from error
8789

88-
if not unknown_module and doc_object.docstring is not None:
89-
doc_object.docstring.parser = parser
90-
doc_object.docstring.parser_options = parser_options
90+
if not unknown_module:
91+
with suppress(AliasResolutionError):
92+
if doc_object.docstring is not None:
93+
doc_object.docstring.parser = parser
94+
doc_object.docstring.parser_options = parser_options
9195

9296
return doc_object

src/mkdocstrings_handlers/python/renderer.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from typing import Any, Sequence
1111

1212
from griffe.dataclasses import Alias, Object
13+
from griffe.exceptions import AliasResolutionError
1314
from markdown import Markdown
1415
from markupsafe import Markup
1516
from mkdocstrings.extension import PluginError
@@ -127,7 +128,10 @@ def render(self, data: CollectorItem, config: dict) -> str: # noqa: D102 (ignor
127128
)
128129

129130
def get_anchors(self, data: CollectorItem) -> list[str]: # noqa: D102 (ignore missing docstring)
130-
return list({data.path, data.canonical_path, *data.aliases})
131+
try:
132+
return list({data.path, data.canonical_path, *data.aliases})
133+
except AliasResolutionError:
134+
return [data.path]
131135

132136
def update_env(self, md: Markdown, config: dict) -> None: # noqa: D102 (ignore missing docstring)
133137
super().update_env(md, config)

0 commit comments

Comments
 (0)
0