"""
Base converter framework for WTF transcript conversion.
This module provides abstract base classes for converting between
different transcript formats and WTF.
"""
from abc import ABC, abstractmethod
from typing import Any, Dict, TypeVar
from .models import WTFDocument
T = TypeVar("T")
[docs]
class BaseConverter(ABC):
"""Abstract base class for all converters."""
[docs]
@abstractmethod
def convert(self, data: Any) -> Any:
"""Convert data from one format to another."""
pass
[docs]
class ToWTFConverter(BaseConverter):
"""Abstract base class for converters that convert TO WTF format."""
[docs]
@abstractmethod
def convert(self, data: Dict[str, Any]) -> WTFDocument:
"""Convert provider-specific data to WTF format."""
pass
[docs]
class FromWTFConverter(BaseConverter):
"""Abstract base class for converters that convert FROM WTF format."""
[docs]
@abstractmethod
def convert(self, wtf_doc: WTFDocument) -> Dict[str, Any]:
"""Convert WTF document to provider-specific format."""
pass