From ae305254042d215a3e64134dcd8a7a0948c14f67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigurd=20Lj=C3=B8dal?= <544451+ljodal@users.noreply.github.com> Date: Mon, 4 Jul 2022 11:43:58 +0200 Subject: [PATCH] Fix type stubs for EmptyManager (#1039) This should be parametrized based on the passed model. This also removes the need for overriding the get_queryset method. --- django-stubs/contrib/auth/models.pyi | 4 ++-- django-stubs/db/models/manager.pyi | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/django-stubs/contrib/auth/models.pyi b/django-stubs/contrib/auth/models.pyi index 0e0ead3..9b0123b 100644 --- a/django-stubs/contrib/auth/models.pyi +++ b/django-stubs/contrib/auth/models.pyi @@ -100,9 +100,9 @@ class AnonymousUser: def set_password(self, raw_password: str) -> None: ... def check_password(self, raw_password: str) -> Any: ... @property - def groups(self) -> EmptyManager: ... + def groups(self) -> EmptyManager[Group]: ... @property - def user_permissions(self) -> EmptyManager: ... + def user_permissions(self) -> EmptyManager[Permission]: ... def get_user_permissions(self, obj: Optional[_AnyUser] = ...) -> Set[str]: ... def get_group_permissions(self, obj: Optional[_AnyUser] = ...) -> Set[Any]: ... def get_all_permissions(self, obj: Optional[_AnyUser] = ...) -> Set[str]: ... diff --git a/django-stubs/db/models/manager.pyi b/django-stubs/db/models/manager.pyi index 8fd09c0..9383f62 100644 --- a/django-stubs/db/models/manager.pyi +++ b/django-stubs/db/models/manager.pyi @@ -142,6 +142,5 @@ class ManagerDescriptor: @overload def __get__(self, instance: Model, cls: Optional[Type[Model]] = ...) -> NoReturn: ... -class EmptyManager(Manager): - def __init__(self, model: Type[Model]) -> None: ... - def get_queryset(self) -> QuerySet[Model]: ... +class EmptyManager(Manager[_T]): + def __init__(self, model: Type[_T]) -> None: ...