Spaces:
Running
Running
# This module contains all the exceptions specific to Griffe. | |
from __future__ import annotations | |
from typing import TYPE_CHECKING | |
if TYPE_CHECKING: | |
from _griffe.models import Alias | |
class GriffeError(Exception): | |
"""The base exception for all Griffe errors.""" | |
class LoadingError(GriffeError): | |
"""The base exception for all Griffe errors.""" | |
class NameResolutionError(GriffeError): | |
"""Exception for names that cannot be resolved in a object scope.""" | |
class UnhandledEditableModuleError(GriffeError): | |
"""Exception for unhandled editables modules, when searching modules.""" | |
class UnimportableModuleError(GriffeError): | |
"""Exception for modules that cannot be imported.""" | |
class AliasResolutionError(GriffeError): | |
"""Exception for alias that cannot be resolved.""" | |
def __init__(self, alias: Alias) -> None: | |
"""Initialize the exception. | |
Parameters: | |
alias: The alias that could not be resolved. | |
""" | |
self.alias: Alias = alias | |
"""The alias that triggered the error.""" | |
message = f"Could not resolve alias {alias.path} pointing at {alias.target_path}" | |
try: | |
filepath = alias.parent.relative_filepath # type: ignore[union-attr] | |
except BuiltinModuleError: | |
pass | |
else: | |
message += f" (in {filepath}:{alias.alias_lineno})" | |
super().__init__(message) | |
class CyclicAliasError(GriffeError): | |
"""Exception raised when a cycle is detected in aliases.""" | |
def __init__(self, chain: list[str]) -> None: | |
"""Initialize the exception. | |
Parameters: | |
chain: The cyclic chain of items (such as target path). | |
""" | |
self.chain: list[str] = chain | |
"""The chain of aliases that created the cycle.""" | |
super().__init__("Cyclic aliases detected:\n " + "\n ".join(self.chain)) | |
class LastNodeError(GriffeError): | |
"""Exception raised when trying to access a next or previous node.""" | |
class RootNodeError(GriffeError): | |
"""Exception raised when trying to use siblings properties on a root node.""" | |
class BuiltinModuleError(GriffeError): | |
"""Exception raised when trying to access the filepath of a builtin module.""" | |
class ExtensionError(GriffeError): | |
"""Base class for errors raised by extensions.""" | |
class ExtensionNotLoadedError(ExtensionError): | |
"""Exception raised when an extension could not be loaded.""" | |
class GitError(GriffeError): | |
"""Exception raised for errors related to Git.""" | |