11import datetime
2+ from collections import defaultdict
23from collections .abc import Callable , Iterable , Sequence
3- from typing import Any , Literal , overload
4+ from typing import Any , Literal , TypeVar , overload
45from uuid import UUID
56
7+ from _typeshed import Unused
68from django .contrib .admin .options import BaseModelAdmin
79from django .contrib .admin .sites import AdminSite
810from django .contrib .auth .forms import AdminPasswordChangeForm
@@ -17,6 +19,8 @@ from django.http.request import HttpRequest
1719from django .utils .datastructures import _IndexableCollection
1820from typing_extensions import TypedDict
1921
22+ _T = TypeVar ("_T" )
23+
2024class FieldIsAForeignKeyColumnName (Exception ): ...
2125
2226def lookup_spawns_duplicates (opts : Options , lookup_path : str ) -> bool : ...
@@ -30,21 +34,30 @@ def get_deleted_objects(
3034) -> tuple [list [str ], dict [str , int ], set [str ], list [str ]]: ...
3135
3236class NestedObjects (Collector ):
33- data : dict [type [Model ], set [Model ] | list [Model ]]
34- dependencies : dict [Any , Any ]
35- fast_deletes : list [Any ]
36- field_updates : dict [Any , Any ]
37- using : str
38- edges : Any
39- protected : Any
40- model_objs : Any
41- def __init__ (self , * args : Any , ** kwargs : Any ) -> None : ...
37+ edges : dict [Model , list [Model ]]
38+ protected : set [Model ]
39+ model_objs : defaultdict [str , set [Model ]]
4240 def add_edge (self , source : Model | None , target : Model ) -> None : ...
41+ def collect ( # type: ignore[override]
42+ self ,
43+ objs : _IndexableCollection [Model | None ],
44+ source : type [Model ] | None = ...,
45+ source_attr : str | None = ...,
46+ * ,
47+ nullable : bool = ...,
48+ collect_related : bool = ...,
49+ reverse_dependency : bool = ...,
50+ keep_parents : bool = ...,
51+ fail_on_restricted : bool = ...,
52+ ) -> None : ...
4353 def related_objects (
4454 self , related_model : type [Model ], related_fields : Iterable [Field ], objs : _IndexableCollection [Model ]
4555 ) -> QuerySet [Model ]: ...
46- def nested (self , format_callback : Callable = ...) -> list [Any ]: ...
47- def can_fast_delete (self , * args : Any , ** kwargs : Any ) -> bool : ...
56+ @overload
57+ def nested (self , format_callback : None = None ) -> list [Model ]: ...
58+ @overload
59+ def nested (self , format_callback : Callable [[Model ], _T ]) -> list [_T ]: ...
60+ def can_fast_delete (self , * args : Unused , ** kwargs : Unused ) -> Literal [False ]: ...
4861
4962class _ModelFormatDict (TypedDict ):
5063 verbose_name : str
0 commit comments