Some checks failed
CI / Lint (ruff) (push) Successful in 12s
CI / SAST (bandit) (push) Successful in 13s
CI / Dependency audit (pip-audit) (push) Successful in 22s
CI / Test (Standard) (3.11) (push) Failing after 54s
CI / Test (Standard) (3.12) (push) Successful in 1m35s
CI / Test (Live) (3.11) (push) Has been skipped
CI / Test (Fuzz) (3.11) (push) Has been skipped
CI / Merge dev → testing (push) Has been skipped
CI / Prepare Merge to Main (push) Has been skipped
CI / Finalize Merge to Main (push) Has been skipped
19 lines
806 B
Python
19 lines
806 B
Python
from typing import Any
|
|
from decnet.env import os
|
|
from decnet.web.db.repository import BaseRepository
|
|
|
|
def get_repository(**kwargs: Any) -> BaseRepository:
|
|
"""Factory function to instantiate the correct repository implementation based on environment."""
|
|
db_type = os.environ.get("DECNET_DB_TYPE", "sqlite").lower()
|
|
|
|
if db_type == "sqlite":
|
|
from decnet.web.db.sqlite.repository import SQLiteRepository
|
|
return SQLiteRepository(**kwargs)
|
|
elif db_type == "mysql":
|
|
# Placeholder for future implementation
|
|
# from decnet.web.db.mysql.repository import MySQLRepository
|
|
# return MySQLRepository()
|
|
raise NotImplementedError("MySQL support is planned but not yet implemented.")
|
|
else:
|
|
raise ValueError(f"Unsupported database type: {db_type}")
|