from abc import ABC, abstractmethod from typing import Dict, List, Optional class IVideoGeneratorService(ABC): def __init__(self, avatars: Dict): self._avatars = avatars async def get_avatars(self) -> List[Dict]: return [ {"name": name, "gender": data["avatar_gender"]} for name, data in self._avatars.items() ] @abstractmethod async def create_video(self, text: str, avatar: str): pass @abstractmethod async def poll_status(self, video_id: str): pass