from django.apps.config import AppConfig from django.db.backends.base.base import BaseDatabaseWrapper from django.db.backends.sqlite3.base import DatabaseWrapper from django.db.models.base import Model from typing import ( Any, Callable, Dict, List, ) def load_backend(backend_name: str) -> Any: ... class ConnectionHandler: def __getitem__(self, alias: str) -> BaseDatabaseWrapper: ... def __init__(self, databases: Dict[str, Dict[str, str]] = ...) -> None: ... def all(self) -> List[DatabaseWrapper]: ... def close_all(self) -> None: ... @cached_property def databases(self) -> Dict[str, Dict[str, str]]: ... def ensure_defaults(self, alias: str) -> None: ... def prepare_test_settings(self, alias: str) -> None: ... class ConnectionRouter: def __init__(self, routers: None = ...) -> None: ... def allow_migrate(self, db: str, app_label: str, **hints) -> bool: ... def allow_migrate_model(self, db: str, model: Any) -> bool: ... def allow_relation(self, obj1: Model, obj2: Model, **hints) -> bool: ... def get_migratable_models( self, app_config: AppConfig, db: str, include_auto_created: bool = ... ) -> Any: ... @cached_property def routers(self) -> Any: ... class DatabaseErrorWrapper: def __call__(self, func: Callable) -> Callable: ... def __enter__(self) -> None: ... def __exit__(self, exc_type: None, exc_value: None, traceback: None) -> None: ... def __init__(self, wrapper: DatabaseWrapper) -> None: ...