"""Module for input parser interface.""" from abc import ABC, abstractmethod from typing import Any, List, Tuple class InputParser(ABC): """Input parser interface. Input parser is used to parse input standarized set of into text and annotations. """ @abstractmethod def parse(self, content: str) -> Tuple[str, List[Tuple[int, int, Any]]]: """Parse input string into text and annotations. Annotations are returned as a dictionary with channel name as a key and list of tuples. Eg.: Input "She has a cat" Output: ("She has a cat", {"entities": [(0, 3, "She"), (8, 11, "cat")]}) Args: content (str): Input in raw form. Returns: Tuple[str, Dict[str, List[Tuple[int, int, Any]]]]: Text and annotations. """ pass