ishaq101's picture
feat/Catalog Retrieval System (#1)
6bff5d9
"""BaseIntrospector — contract for source-specific schema readers.
Subclasses produce a Source object with raw schema (names, types, sample
values, stats). The planner consumes this directly — descriptions are not
LLM-generated.
"""
from abc import ABC, abstractmethod
from ..models import Source
class BaseIntrospector(ABC):
"""Abstract base. Subclasses: DatabaseIntrospector, TabularIntrospector."""
@abstractmethod
async def introspect(self, location_ref: str) -> Source:
...