from typing import Any, Dict, Optional, Set, Tuple, Union from django.db import DefaultConnectionProxy from django.db.backends.base.base import BaseDatabaseWrapper from django.db.backends.sqlite3.base import DatabaseWrapper from django.db.migrations.migration import Migration, SwappableTuple from django.db.migrations.state import ProjectState from .exceptions import AmbiguityError, BadMigrationError, InconsistentMigrationHistory, NodeNotFoundError MIGRATIONS_MODULE_NAME: str class MigrationLoader: connection: django.db.backends.sqlite3.base.DatabaseWrapper = ... disk_migrations: Dict[Tuple[str, str], Migration] = ... applied_migrations: None = ... ignore_no_migrations: bool = ... def __init__( self, connection: Optional[Union[DefaultConnectionProxy, BaseDatabaseWrapper]], load: bool = ..., ignore_no_migrations: bool = ..., ) -> None: ... @classmethod def migrations_module(cls, app_label: str) -> Tuple[Optional[str], bool]: ... unmigrated_apps: Set[str] = ... migrated_apps: Set[str] = ... def load_disk(self) -> None: ... def get_migration(self, app_label: str, name_prefix: str) -> Migration: ... def get_migration_by_prefix(self, app_label: str, name_prefix: str) -> Migration: ... def check_key(self, key: Union[Tuple[str, str], SwappableTuple], current_app: str) -> Optional[Tuple[str, str]]: ... def add_internal_dependencies(self, key: Tuple[str, str], migration: Migration) -> None: ... def add_external_dependencies(self, key: Tuple[str, str], migration: Migration) -> None: ... graph: Any = ... replacements: Any = ... def build_graph(self) -> None: ... def check_consistent_history(self, connection: Union[DefaultConnectionProxy, DatabaseWrapper]) -> None: ... def detect_conflicts(self) -> Dict[str, Set[str]]: ... def project_state(self, nodes: Optional[Tuple[str, str]] = ..., at_end: bool = ...) -> ProjectState: ...