Files
2026-02-06 07:30:20 -03:00

39 lines
848 B
Python

"""
Base Extractor
Abstract base class for model extractors.
"""
from abc import ABC, abstractmethod
from pathlib import Path
from typing import List
from ..schema import EnumDefinition, ModelDefinition
class BaseExtractor(ABC):
"""Abstract base for codebase model extractors."""
def __init__(self, source_path: Path):
self.source_path = Path(source_path)
@abstractmethod
def extract(self) -> tuple[List[ModelDefinition], List[EnumDefinition]]:
"""
Extract model definitions from source codebase.
Returns:
Tuple of (models, enums)
"""
pass
@abstractmethod
def detect(self) -> bool:
"""
Detect if this extractor can handle the source path.
Returns:
True if this extractor can handle the source
"""
pass