1- from collections .abc import Iterator , Sequence
1+ from collections .abc import Iterable , Iterator , Sequence
22from contextlib import contextmanager
33from typing import Any
44
@@ -7,8 +7,10 @@ from django.apps.registry import Apps
77from django .db .models .base import Model
88from django .db .models .fields import Field
99from django .db .models .manager import Manager
10+ from django .utils .functional import cached_property
1011
11- class AppConfigStub (AppConfig ): ...
12+ class AppConfigStub (AppConfig ):
13+ def __init__ (self , label : str ) -> None : ...
1214
1315class ModelState :
1416 name : str
@@ -30,9 +32,8 @@ class ModelState:
3032 def construct_managers (self ) -> Iterator [tuple [str , Manager ]]: ...
3133 @classmethod
3234 def from_model (cls , model : type [Model ], exclude_rels : bool = ...) -> ModelState : ...
33- # Removed in 3.2, but back in 4.0
34- # def get_field(self, field_name: str) -> Field: ...
35- @property
35+ def get_field (self , field_name : str ) -> Field : ...
36+ @cached_property
3637 def name_lower (self ) -> str : ...
3738 def render (self , apps : Apps ) -> Any : ...
3839 def get_index_by_name (self , name : str ) -> Any : ...
@@ -45,22 +46,46 @@ def get_related_models_recursive(model: type[Model]) -> set[tuple[str, str]]: ..
4546class ProjectState :
4647 is_delayed : bool
4748 models : dict [Any , Any ]
48- real_apps : list [str ]
49+ real_apps : set [str ]
4950 def __init__ (
50- self , models : dict [tuple [str , str ], ModelState ] | None = ..., real_apps : list [str ] | None = ...
51+ self , models : dict [tuple [str , str ], ModelState ] | None = ..., real_apps : set [str ] | None = ...
5152 ) -> None : ...
52- def add_model (self , model_state : ModelState ) -> None : ...
5353 @property
54+ def relations (self ) -> Any : ...
55+ def add_model (self , model_state : ModelState ) -> None : ...
56+ @cached_property
5457 def apps (self ) -> StateApps : ...
5558 def clear_delayed_apps_cache (self ) -> None : ...
5659 def clone (self ) -> ProjectState : ...
57- @property
58- def concrete_apps (self ) -> StateApps : ...
5960 @classmethod
6061 def from_apps (cls , apps : Apps ) -> ProjectState : ...
6162 def reload_model (self , app_label : str , model_name : str , delay : bool = ...) -> None : ...
6263 def reload_models (self , models : list [Any ], delay : bool = ...) -> None : ...
6364 def remove_model (self , app_label : str , model_name : str ) -> None : ...
65+ def rename_model (self , app_label : str , old_name : str , new_name : str ) -> None : ...
66+ def alter_model_options (
67+ self , app_label : str , model_name : str , options : dict [str , Any ], option_keys : Iterable [str ] | None = ...
68+ ) -> None : ...
69+ def remove_model_options (self , app_label : str , model_name : str , option_name : str , value_to_remove : Any ) -> None : ...
70+ def alter_model_managers (self , app_label : str , model_name : str , managers : list [tuple [str , Manager ]]) -> None : ...
71+ def add_index (self , app_label : str , model_name : str , index : Any ) -> None : ...
72+ def remove_index (self , app_label : str , model_name : str , index_name : str ) -> None : ...
73+ def rename_index (self , app_label : str , model_name : str , old_index_name : str , new_index_name : str ) -> None : ...
74+ def add_constraint (self , app_label : str , model_name : str , constraint : Any ) -> None : ...
75+ def remove_constraint (self , app_label : str , model_name : str , constraint_name : str ) -> None : ...
76+ def add_field (self , app_label : str , model_name : str , name : str , field : Field , preserve_default : Any ) -> None : ...
77+ def remove_field (self , app_label : str , model_name : str , name : str ) -> None : ...
78+ def alter_field (self , app_label : str , model_name : str , name : str , field : Field , preserve_default : Any ) -> None : ...
79+ def rename_field (self , app_label : str , model_name : str , old_name : str , new_name : str ) -> None : ...
80+ def update_model_field_relation (
81+ self , model : type [Model ], model_key : tuple [str , str ], field_name : str , field : Field , concretes : Any
82+ ) -> None : ...
83+ def resolve_model_field_relations (
84+ self , model_key : tuple [str , str ], field_name : str , field : Field , concretes : Any | None = ...
85+ ) -> None : ...
86+ def resolve_model_relations (self , model_key : tuple [str , str ], concretes : Any | None = ...) -> None : ...
87+ def resolve_fields_and_relations (self ) -> None : ...
88+ def get_concrete_model_key (self , model : type [Model ]) -> Any : ...
6489
6590class StateApps (Apps ):
6691 real_models : list [ModelState ]
0 commit comments