fix problem with TypeVar bound to Model passed as a parameter

This commit is contained in:
Maxim Kurnikov
2019-01-24 18:59:41 +03:00
parent cff5ab463c
commit 5a0f00dde1
6 changed files with 43 additions and 21 deletions

View File

@@ -21,12 +21,6 @@ class Permission(models.Model):
name: str = ...
content_type: Any = ...
codename: str = ...
objects: Any = ...
class Meta:
verbose_name: Any = ...
verbose_name_plural: Any = ...
unique_together: Any = ...
ordering: Any = ...
def natural_key(self) -> Tuple[str, str, str]: ...
class GroupManager(models.Manager):
@@ -40,10 +34,6 @@ class Group(models.Model):
id: None
name: str = ...
permissions: Any = ...
objects: Any = ...
class Meta:
verbose_name: Any = ...
verbose_name_plural: Any = ...
def natural_key(self): ...
class UserManager(BaseUserManager):
@@ -77,7 +67,6 @@ class AbstractUser(AbstractBaseUser, PermissionsMixin):
email: str = ...
is_staff: bool = ...
date_joined: datetime.datetime = ...
objects: Any = ...
EMAIL_FIELD: str = ...
USERNAME_FIELD: str = ...
def clean(self) -> None: ...
@@ -85,9 +74,7 @@ class AbstractUser(AbstractBaseUser, PermissionsMixin):
def get_short_name(self) -> str: ...
def email_user(self, subject: str, message: str, from_email: str = ..., **kwargs: Any) -> None: ...
class User(AbstractUser):
class Meta(AbstractUser.Meta):
swappable: str = ...
class User(AbstractUser): ...
class AnonymousUser:
id: Any = ...

View File

@@ -1,12 +1,14 @@
from typing import Any, List, Optional, Set, Tuple, Dict
class ModelBase(type):
pass
from django.db.models.manager import Manager
class ModelBase(type): ...
class Model(metaclass=ModelBase):
class DoesNotExist(Exception):
pass
pk: Any = ...
objects: Manager[Model]
def __init__(self, **kwargs) -> None: ...
def delete(self, using: Any = ..., keep_parents: bool = ...) -> Tuple[int, Dict[str, int]]: ...
def full_clean(self, exclude: Optional[List[str]] = ..., validate_unique: bool = ...) -> None: ...

View File

@@ -3,7 +3,7 @@ from typing import Any, Dict, List, Optional, Tuple, Type, TypeVar
from django.db.models.base import Model
from django.db.models.query import QuerySet
_T = TypeVar("_T", bound=Model)
_T = TypeVar("_T", bound=Model, covariant=True)
class BaseManager(QuerySet[_T]):
creation_counter: int = ...
@@ -24,7 +24,7 @@ class BaseManager(QuerySet[_T]):
class Manager(BaseManager[_T]): ...
class RelatedManager(Manager[_T]):
def add(self, *objs: _T, bulk: bool = ...) -> None: ...
def add(self, *objs: Model, bulk: bool = ...) -> None: ...
def clear(self) -> None: ...
class ManagerDescriptor:

View File

@@ -6,7 +6,7 @@ from django.db import models
from django.db.models import Manager
from django.db.models.sql.query import Query, RawQuery
_T = TypeVar("_T", bound=models.Model)
_T = TypeVar("_T", bound=models.Model, covariant=True)
class QuerySet(Iterable[_T], Sized):
def __init__(