Skip to content
v1.0.3

Resource

class Resource(BaseModel, ABC):

Abstract base class for resources.

Attributes:

  • label str | None — Optional human-readable label for this resource class.
  • description str | None — Optional human-readable description for this resource class.
Source
class Resource(BaseModel, ABC):
"""Abstract base class for resources.
Attributes:
label: Optional human-readable label for this resource class.
description: Optional human-readable description for this resource class.
"""
label: ClassVar[str | None] = None
description: ClassVar[str | None] = None
@classmethod
def get_type(cls):
"""Return the simple type name of this resource.
Returns:
str: The class name (e.g., ``"PetriNet"``).
"""
return cls.__name__
@computed_field
@property
def _ocelescope_resource_type(self) -> str:
return self.get_type()
def visualize(self) -> Visualization | None:
"""Produce a visualization for this resource.
Implementations should return a concrete :class:`Visualization`
or ``None`` if no visualization exists.
Returns:
Optional[Visualization]: A visualization object or ``None``.
"""
...
def get_type(cls):

Return the simple type name of this resource.

Returns:

  • — The class name (e.g., "PetriNet").
Source
@classmethod
def get_type(cls):
"""Return the simple type name of this resource.
Returns:
str: The class name (e.g., ``"PetriNet"``).
"""
return cls.__name__
def visualize() -> Visualization | None:

Produce a visualization for this resource.

Implementations should return a concrete :class:Visualization or None if no visualization exists.

Returns:

  • Visualization | None — Optional[Visualization]: A visualization object or None.
Source
def visualize(self) -> Visualization | None:
"""Produce a visualization for this resource.
Implementations should return a concrete :class:`Visualization`
or ``None`` if no visualization exists.
Returns:
Optional[Visualization]: A visualization object or ``None``.
"""
...
T = TypeVar('T', bound=Resource)
class Annotated(BaseModel, Generic[T]):
Source
class Annotated(BaseModel, Generic[T]):
annotation: list[T] | str = []
def get_annotation_str(self):
return self.annotation if type(self.annotation) is str else None
def get_annotation_visualization(self):
if not isinstance(self.annotation, list) or len(self.annotation) != 1:
return None
resource = self.annotation[0]
if not isinstance(resource, Resource):
return None
return resource.visualize()