Spaces:
Runtime error
Runtime error
"""Base parser and config class.""" | |
from abc import abstractmethod | |
from dataclasses import dataclass | |
from pathlib import Path | |
from typing import Dict, List, Optional, Union | |
class ImageParserOutput: | |
"""Output from an image parser.""" | |
text: str = "" | |
# base64 encoded image str | |
image: Optional[str] = None | |
class BaseParser: | |
"""Base class for all parsers.""" | |
def __init__(self, parser_config: Optional[Dict] = None): | |
"""Init params.""" | |
self._parser_config = parser_config | |
def init_parser(self) -> None: | |
"""Init parser and store it.""" | |
parser_config = self._init_parser() | |
self._parser_config = parser_config | |
def parser_config_set(self) -> bool: | |
"""Check if parser config is set.""" | |
return self._parser_config is not None | |
def parser_config(self) -> Dict: | |
"""Check if parser config is set.""" | |
if self._parser_config is None: | |
raise ValueError("Parser config not set.") | |
return self._parser_config | |
def _init_parser(self) -> Dict: | |
"""Initialize the parser with the config.""" | |
def parse_file( | |
self, file: Path, errors: str = "ignore" | |
) -> Union[str, List[str], ImageParserOutput]: | |
"""Parse file.""" | |