from __future__ import annotations from abc import ABC, abstractmethod from typing import Generic, TypeVar TInput = TypeVar("TInput") TOutput = TypeVar("TOutput") class BaseUseCase(ABC, Generic[TInput, TOutput]): @abstractmethod async def execute(self, input_data: TInput) -> TOutput: ...