more fixes for django stubs, first attempt for a plugin

This commit is contained in:
Maxim Kurnikov
2018-10-12 01:56:25 +03:00
parent b93f589cff
commit 2cdefc4662
11 changed files with 273 additions and 165 deletions

View File

@@ -1,5 +1,6 @@
from typing import Callable, Optional, Type
from django.contrib.sessions.backends.base import SessionBase
from django.core.handlers.wsgi import WSGIRequest
from django.http.request import HttpRequest
from django.http.response import HttpResponseBase
@@ -8,7 +9,7 @@ from django.utils.deprecation import MiddlewareMixin
class SessionMiddleware(MiddlewareMixin):
get_response: Callable[[WSGIRequest], HttpResponseBase] = ...
SessionStore: Type[SessionStore] = ...
SessionStore: Type[SessionBase] = ...
def __init__(self, get_response: Optional[Callable] = ...) -> None: ...

View File

@@ -1,25 +1,32 @@
from collections import OrderedDict
from typing import Any, Callable, Dict, Optional, Union
from typing import Any, Callable, Dict, Union
from django.core.cache.backends.base import BaseCache as BaseCache
from django.core.cache.backends.base import CacheKeyWarning as CacheKeyWarning
from django.core.cache.backends.base import \
InvalidCacheBackendError as InvalidCacheBackendError
DEFAULT_CACHE_ALIAS: str
class CacheHandler:
def __init__(self) -> None: ...
def __getitem__(self, alias: str) -> BaseCache: ...
def all(self): ...
class DefaultCacheProxy:
def __getattr__(
self, name: str
self, name: str
) -> Union[Callable, Dict[str, float], OrderedDict, int]: ...
def __setattr__(self, name: str, value: Callable) -> None: ...
def __delattr__(self, name: Any): ...
def __contains__(self, key: str) -> bool: ...
def __eq__(self, other: Any): ...
cache: Any
caches: CacheHandler

View File

@@ -1,3 +1,4 @@
from io import BufferedReader, StringIO
from typing import Any, Iterator, Optional, Union
from django.core.files.utils import FileProxyMixin
@@ -5,7 +6,7 @@ from django.core.files.utils import FileProxyMixin
class File(FileProxyMixin):
DEFAULT_CHUNK_SIZE: Any = ...
file: _io.BufferedReader = ...
file: BufferedReader = ...
name: str = ...
mode: str = ...
def __init__(self, file: Any, name: Optional[str] = ...) -> None: ...
@@ -14,7 +15,7 @@ class File(FileProxyMixin):
def size(self) -> int: ...
def chunks(
self, chunk_size: Optional[int] = ...
) -> Iterator[Union[bytes, str]]: ...
) -> Iterator[Union[bytes, bytearray]]: ...
def multiple_chunks(self, chunk_size: Optional[Any] = ...): ...
def __iter__(self) -> Iterator[Union[bytes, str]]: ...
def __enter__(self) -> File: ...
@@ -23,7 +24,7 @@ class File(FileProxyMixin):
def close(self) -> None: ...
class ContentFile(File):
file: _io.StringIO
file: StringIO
name: None
size: Any = ...
def __init__(

View File

@@ -1,76 +1,110 @@
from typing import Any, Callable, List, Optional, Tuple, Type, Union
from typing import Any, Callable, List, Optional, Tuple, Type, Union, Generic, TypeVar
from django.core.exceptions import ObjectDoesNotExist
from django.db.models.base import Model
from django.db.models.expressions import F
from django.db.models.fields.mixins import FieldCacheMixin
from django.db.models.fields.related import ForeignObject
from django.db.models.fields.related import ForeignObject, RelatedField, OneToOneField
from django.db.models.fields.reverse_related import ManyToManyRel, OneToOneRel
from django.db.models.query import QuerySet
_T = TypeVar('_T')
class ForwardManyToOneDescriptor:
RelatedObjectDoesNotExist: Type[django.core.exceptions.ObjectDoesNotExist]
field: django.db.models.fields.related.ForeignObject = ...
RelatedObjectDoesNotExist: Type[ObjectDoesNotExist]
field: ForeignObject = ...
def __init__(self, field_with_rel: ForeignObject) -> None: ...
def RelatedObjectDoesNotExist(self) -> Type[ObjectDoesNotExist]: ...
def is_cached(self, instance: Model) -> bool: ...
def get_queryset(self, **hints: Any) -> QuerySet: ...
def get_prefetch_queryset(
self, instances: List[Model], queryset: Optional[QuerySet] = ...
self, instances: List[Model], queryset: Optional[QuerySet] = ...
) -> Tuple[QuerySet, Callable, Callable, bool, str, bool]: ...
def get_object(self, instance: Model) -> Model: ...
def __get__(
self, instance: Optional[Model], cls: Type[Model] = ...
self, instance: Optional[Model], cls: Type[Model] = ...
) -> Optional[Union[Model, ForwardManyToOneDescriptor]]: ...
def __set__(
self, instance: Model, value: Optional[Union[Model, F]]
self, instance: Model, value: Optional[Union[Model, F]]
) -> None: ...
def __reduce__(self) -> Tuple[Callable, Tuple[Type[Model], str]]: ...
class ForwardOneToOneDescriptor(ForwardManyToOneDescriptor):
RelatedObjectDoesNotExist: Type[django.core.exceptions.ObjectDoesNotExist]
field: django.db.models.fields.related.OneToOneField
RelatedObjectDoesNotExist: Type[ObjectDoesNotExist]
field: OneToOneField
def get_object(self, instance: Model) -> Model: ...
def __set__(self, instance: Model, value: Optional[Model]) -> None: ...
class ReverseOneToOneDescriptor:
RelatedObjectDoesNotExist: Type[django.core.exceptions.ObjectDoesNotExist]
related: django.db.models.fields.reverse_related.OneToOneRel = ...
RelatedObjectDoesNotExist: Type[ObjectDoesNotExist]
related: OneToOneRel = ...
def __init__(self, related: OneToOneRel) -> None: ...
def RelatedObjectDoesNotExist(self) -> Type[ObjectDoesNotExist]: ...
def is_cached(self, instance: Model) -> bool: ...
def get_queryset(self, **hints: Any) -> QuerySet: ...
def get_prefetch_queryset(
self, instances: List[Model], queryset: Optional[QuerySet] = ...
self, instances: List[Model], queryset: Optional[QuerySet] = ...
) -> Tuple[QuerySet, Callable, Callable, bool, str, bool]: ...
def __get__(
self, instance: Optional[Model], cls: Type[Model] = ...
self, instance: Optional[Model], cls: Type[Model] = ...
) -> Union[Model, ReverseOneToOneDescriptor]: ...
def __set__(self, instance: Model, value: Optional[Model]) -> None: ...
def __reduce__(self) -> Tuple[Callable, Tuple[Type[Model], str]]: ...
class ReverseManyToOneDescriptor:
rel: django.db.models.fields.mixins.FieldCacheMixin = ...
field: django.db.models.fields.mixins.FieldCacheMixin = ...
rel: FieldCacheMixin = ...
field: FieldCacheMixin = ...
def __init__(self, rel: FieldCacheMixin) -> None: ...
def related_manager_cls(self): ...
def __get__(
self, instance: Optional[Model], cls: Type[Model] = ...
self, instance: Optional[Model], cls: Type[Model] = ...
) -> ReverseManyToOneDescriptor: ...
def __set__(self, instance: Model, value: List[Model]) -> Any: ...
def create_reverse_many_to_one_manager(superclass: Any, rel: Any): ...
class ManyToManyDescriptor(ReverseManyToOneDescriptor):
field: django.db.models.fields.related.RelatedField
rel: django.db.models.fields.reverse_related.ManyToManyRel
field: RelatedField
rel: ManyToManyRel
reverse: bool = ...
def __init__(self, rel: ManyToManyRel, reverse: bool = ...) -> None: ...
@property
def through(self) -> Type[Model]: ...
def related_manager_cls(self): ...
class _ForwardManyToManyManager(Generic[_T]):
def all(self) -> QuerySet: ...
def create_forward_many_to_many_manager(
superclass: Any, rel: Any, reverse: Any
): ...
superclass: Any, rel: Any, reverse: Any
) -> _ForwardManyToManyManager: ...

View File

@@ -138,12 +138,7 @@ class QuerySet(Generic[_T]):
def get(
self, *args: Any, **kwargs: Any
) -> Union[
Dict[str, Union[date, Decimal, float, str]],
Tuple[Union[Decimal, str]],
Model,
str,
]: ...
) -> _T: ...
def create(self, **kwargs: Any) -> _T: ...

View File

@@ -1,5 +1,6 @@
from typing import Any, Callable, Optional, Union
from django.core.cache import BaseCache
from django.http.request import HttpRequest
from django.http.response import HttpResponse, HttpResponseBase
from django.utils.deprecation import MiddlewareMixin
@@ -9,32 +10,39 @@ class UpdateCacheMiddleware(MiddlewareMixin):
cache_timeout: float = ...
key_prefix: str = ...
cache_alias: str = ...
cache: django.core.cache.backends.base.BaseCache = ...
cache: BaseCache = ...
get_response: Optional[Callable] = ...
def __init__(self, get_response: Optional[Callable] = ...) -> None: ...
def process_response(
self, request: HttpRequest, response: Union[HttpResponseBase, str]
self, request: HttpRequest, response: Union[HttpResponseBase, str]
) -> Union[HttpResponseBase, str]: ...
class FetchFromCacheMiddleware(MiddlewareMixin):
key_prefix: str = ...
cache_alias: str = ...
cache: django.core.cache.backends.base.BaseCache = ...
cache: BaseCache = ...
get_response: Optional[Callable] = ...
def __init__(self, get_response: Optional[Callable] = ...) -> None: ...
def process_request(
self, request: HttpRequest
self, request: HttpRequest
) -> Optional[HttpResponse]: ...
class CacheMiddleware(UpdateCacheMiddleware, FetchFromCacheMiddleware):
get_response: None = ...
key_prefix: str = ...
cache_alias: str = ...
cache_timeout: float = ...
cache: django.core.cache.backends.locmem.LocMemCache = ...
cache: BaseCache = ...
def __init__(
self,
get_response: None = ...,
cache_timeout: Optional[float] = ...,
**kwargs: Any
self,
get_response: None = ...,
cache_timeout: Optional[float] = ...,
**kwargs: Any
) -> None: ...

View File

@@ -2,4 +2,8 @@ from .testcases import (
TestCase as TestCase,
TransactionTestCase as TransactionTestCase,
SimpleTestCase as SimpleTestCase
)
from .utils import (
override_settings as override_settings
)