Source code for gaphor.abc

from __future__ import annotations

from abc import ABCMeta, abstractmethod
from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from gaphor.core.modeling import Element
    from gaphor.diagram.diagramtoolbox import ToolboxDefinition


[docs]class Service(metaclass=ABCMeta): """Base interface for all services in Gaphor."""
[docs] @abstractmethod def shutdown(self) -> None: """Shutdown the services, free resources."""
[docs]class ActionProvider(metaclass=ABCMeta): """An action provider is a special service that provides actions (see gaphor/action.py)."""
[docs]class ModelingLanguage(metaclass=ABCMeta): """A model provider is a special service that provides an entrypoint to a model implementation, such as UML, SysML, RAAML.""" @property @abstractmethod def name(self) -> str: """Human readable name of the model.""" @property @abstractmethod def toolbox_definition(self) -> ToolboxDefinition: """Get structure for the toolbox."""
[docs] @abstractmethod def lookup_element(self, name: str) -> type[Element] | None: """Look up a model element type (class) by name."""