dashboard/app/plugins/base.py

15 lines
397 B
Python

from collections.abc import Awaitable, Callable
from dataclasses import dataclass, field
@dataclass
class Plugin:
id: str
title: str
description: str = ""
skeleton_fn: Callable[[], Awaitable[str]] | None = field(default=None)
async def skeleton(self) -> str:
if self.skeleton_fn is None:
raise NotImplementedError
return await self.skeleton_fn()