mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-06 12:14:28 +08:00
* added tags for user models * type test for HttpRequest.user * test for User and AnonymousUser tags * httrequest test fix * checking python version fix for readibility * Rewrite version check for readability * Annotate is_authenticated/is_anonymous with Literal-type * Add auth in INSTALLED_APPS in test * Fix wrong type assertion in test * Fix misconception of how branch-testing works * Remove user from WSGIRequest * Change HttpRequest-transformer to set user-type to include AnonymousUser * Add check for anonymous_user_info=None to appease mypy * Isort transformers/request * Remove trailing whitespace * Remove unused import Co-authored-by: Kacper Szmigiel <szmigielkacper@gmai.com>
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import sys
|
|
from typing import Any, Optional, Tuple, List, overload, TypeVar
|
|
|
|
from django.db.models.base import Model
|
|
|
|
from django.db import models
|
|
|
|
if sys.version_info < (3, 8):
|
|
from typing_extensions import Literal
|
|
else:
|
|
from typing import Literal
|
|
|
|
_T = TypeVar("_T", bound=Model)
|
|
|
|
class BaseUserManager(models.Manager[_T]):
|
|
@classmethod
|
|
def normalize_email(cls, email: Optional[str]) -> str: ...
|
|
def make_random_password(self, length: int = ..., allowed_chars: str = ...) -> str: ...
|
|
def get_by_natural_key(self, username: Optional[str]) -> _T: ...
|
|
|
|
class AbstractBaseUser(models.Model):
|
|
REQUIRED_FIELDS: List[str] = ...
|
|
|
|
password = models.CharField(max_length=128)
|
|
last_login = models.DateTimeField(blank=True, null=True)
|
|
def get_username(self) -> str: ...
|
|
def natural_key(self) -> Tuple[str]: ...
|
|
@property
|
|
def is_anonymous(self) -> Literal[False]: ...
|
|
@property
|
|
def is_authenticated(self) -> Literal[True]: ...
|
|
def set_password(self, raw_password: Optional[str]) -> None: ...
|
|
def check_password(self, raw_password: str) -> bool: ...
|
|
def set_unusable_password(self) -> None: ...
|
|
def has_usable_password(self) -> bool: ...
|
|
def get_session_auth_hash(self) -> str: ...
|
|
@classmethod
|
|
def get_email_field_name(cls) -> str: ...
|
|
@classmethod
|
|
@overload
|
|
def normalize_username(cls, username: str) -> str: ...
|
|
@classmethod
|
|
@overload
|
|
def normalize_username(cls, username: Any) -> Any: ...
|