databao/core/data_source.py (19 lines of code) (raw):

from dataclasses import dataclass import pandas as pd from duckdb import DuckDBPyConnection from sqlalchemy import Connection, Engine @dataclass class DataSource: name: str context: str @dataclass class DFDataSource(DataSource): df: pd.DataFrame @dataclass class DBDataSource(DataSource): db_connection: DuckDBPyConnection | Engine | Connection @dataclass class Sources: dfs: dict[str, DFDataSource] dbs: dict[str, DBDataSource] additional_context: list[str]