offtargeteffect's picture
Deploy mRNA Design Studio (Docker SDK)
99f834c verified
Raw
History Blame Contribute Delete
1.13 kB
"""Database connectors and schema mapper."""
from core.database.base import (
ConnectionConfig,
DatabaseConnector,
FieldMapping,
SchemaMapper,
SEQUENCE_FIELDS,
)
from core.database.sqlite import SQLiteConnector
from core.database.postgres import PostgreSQLConnector
from core.database.csv_importer import CSVConnector
def create_connector(config: ConnectionConfig) -> DatabaseConnector:
"""Factory: return the appropriate connector for config.backend."""
backends = {
"sqlite": SQLiteConnector,
"postgres": PostgreSQLConnector,
"postgresql": PostgreSQLConnector,
"csv": CSVConnector,
"excel": CSVConnector,
}
cls = backends.get(config.backend.lower())
if cls is None:
raise ValueError(
f"Unknown backend '{config.backend}'. "
f"Supported: {list(backends.keys())}"
)
return cls(config)
__all__ = [
"ConnectionConfig",
"DatabaseConnector",
"FieldMapping",
"SchemaMapper",
"SEQUENCE_FIELDS",
"SQLiteConnector",
"PostgreSQLConnector",
"CSVConnector",
"create_connector",
]