Skip to content

Commit fb5379a

Browse files
committed
add type alias _UserModel = type[_User]
1 parent e29f60b commit fb5379a

File tree

5 files changed

+14
-13
lines changed

5 files changed

+14
-13
lines changed

django-stubs/contrib/auth/__init__.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Any
22

33
from django.contrib.auth.backends import BaseBackend
4-
from django.contrib.auth.models import _AnyUser, _User
4+
from django.contrib.auth.models import _AnyUser, _User, _UserModel
55
from django.db.models.options import Options
66
from django.http.request import HttpRequest
77
from django.test.client import Client
@@ -23,7 +23,7 @@ def login(request: HttpRequest, user: _User | None, backend: type[BaseBackend] |
2323
async def alogin(request: HttpRequest, user: _User | None, backend: type[BaseBackend] | str | None = ...) -> None: ...
2424
def logout(request: HttpRequest) -> None: ...
2525
async def alogout(request: HttpRequest) -> None: ...
26-
def get_user_model() -> type[_User]: ...
26+
def get_user_model() -> _UserModel: ...
2727
def get_user(request: HttpRequest | Client) -> _AnyUser: ...
2828
async def aget_user(request: HttpRequest | Client) -> _AnyUser: ...
2929
def get_permission_codename(action: str, opts: Options) -> str: ...

django-stubs/contrib/auth/backends.pyi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
from typing import Any, TypeAlias
1+
from typing import Any
22

3-
from django.contrib.auth.models import Permission, _AnyUser, _User, _UserType
3+
from django.contrib.auth.models import Permission, _AnyUser, _User, _UserModel, _UserType
44
from django.db.models import QuerySet
55
from django.db.models.base import Model
66
from django.http.request import HttpRequest
77

8-
UserModel: TypeAlias = type[_User]
8+
UserModel = _UserModel
99

1010
class BaseBackend:
1111
def authenticate(self, request: HttpRequest | None, **kwargs: Any) -> _User | None: ...

django-stubs/contrib/auth/forms.pyi

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from collections.abc import Iterable
22
from logging import Logger
3-
from typing import Any, Generic, TypeAlias
3+
from typing import Any, Generic
44

55
from django import forms
6-
from django.contrib.auth.models import _User, _UserType
6+
from django.contrib.auth.models import _User, _UserModel, _UserType
77
from django.contrib.auth.tokens import PasswordResetTokenGenerator
88
from django.core.exceptions import ValidationError
99
from django.db import models
@@ -14,8 +14,7 @@ from django.http.request import HttpRequest
1414
from django.utils.functional import _StrOrPromise
1515

1616
logger: Logger
17-
18-
UserModel: TypeAlias = type[_User]
17+
UserModel = _UserModel
1918

2019
class ReadOnlyPasswordHashWidget(forms.Widget):
2120
template_name: str

django-stubs/contrib/auth/models.pyi

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ from typing_extensions import Self
1717
# `HttpRequest.user`
1818
_User: TypeAlias = AbstractBaseUser
1919

20+
_UserModel: TypeAlias = type[_User]
21+
2022
_AnyUser: TypeAlias = _User | AnonymousUser
2123

2224
# These are only needed for generic classes in order to bind to a specific implementation
@@ -25,7 +27,7 @@ _AnyUserType = TypeVar("_AnyUserType", bound=_AnyUser) # noqa: PYI018
2527
# do not use the alias `_User` so the bound remains at `AbstractUser`
2628
_UserType = TypeVar("_UserType", bound=AbstractUser)
2729

28-
def update_last_login(sender: type[_User], user: _User, **kwargs: Any) -> None: ...
30+
def update_last_login(sender: _UserModel, user: _User, **kwargs: Any) -> None: ...
2931

3032
class PermissionManager(models.Manager[Permission]):
3133
def get_by_natural_key(self, codename: str, app_label: str, model: str) -> Permission: ...

django-stubs/contrib/auth/views.pyi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
from typing import Any, TypeAlias
1+
from typing import Any
22

33
from django.contrib.auth.forms import AuthenticationForm
4-
from django.contrib.auth.models import _User
4+
from django.contrib.auth.models import _User, _UserModel
55
from django.http.request import HttpRequest
66
from django.http.response import HttpResponse, HttpResponseRedirect
77
from django.views.generic.base import TemplateView
88
from django.views.generic.edit import FormView
99

10-
UserModel: TypeAlias = type[_User]
10+
UserModel = _UserModel
1111

1212
class RedirectURLMixin:
1313
next_page: str | None

0 commit comments

Comments
 (0)