Skip to content

Commit

Permalink
fix: Catch alias resolution errors
Browse files Browse the repository at this point in the history
  • Loading branch information
pawamoy committed Feb 17, 2022
1 parent ad6c7dc commit b734dd0
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
10 changes: 7 additions & 3 deletions src/mkdocstrings_handlers/python/collector.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@
from __future__ import annotations

from collections import ChainMap
from contextlib import suppress

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

if not unknown_module and doc_object.docstring is not None:
doc_object.docstring.parser = parser
doc_object.docstring.parser_options = parser_options
if not unknown_module:
with suppress(AliasResolutionError):
if doc_object.docstring is not None:
doc_object.docstring.parser = parser
doc_object.docstring.parser_options = parser_options

return doc_object
6 changes: 5 additions & 1 deletion src/mkdocstrings_handlers/python/renderer.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from typing import Any, Sequence

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

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

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

0 comments on commit b734dd0

Please sign in to comment.