fix some stubs

This commit is contained in:
Maxim Kurnikov
2019-02-22 02:55:49 +03:00
parent 73ea682356
commit b686751f19
42 changed files with 217 additions and 381 deletions

View File

@@ -1,5 +1,5 @@
from collections import OrderedDict from collections import OrderedDict
from typing import Any, Callable, Dict, List, Optional, Sequence, Set, Tuple, Type, Union, Iterator from typing import Any, Callable, Dict, Iterator, List, Optional, Sequence, Set, Tuple, Type, Union
from django.contrib.admin.filters import ListFilter from django.contrib.admin.filters import ListFilter
from django.contrib.admin.models import LogEntry from django.contrib.admin.models import LogEntry
@@ -8,7 +8,6 @@ from django.contrib.admin.views.main import ChangeList
from django.contrib.auth.forms import AdminPasswordChangeForm from django.contrib.auth.forms import AdminPasswordChangeForm
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.checks.messages import Error from django.core.checks.messages import Error
from django.core.handlers.wsgi import WSGIRequest
from django.core.paginator import Paginator from django.core.paginator import Paginator
from django.db.models.base import Model from django.db.models.base import Model
from django.db.models.fields.related import ForeignKey, ManyToManyField, RelatedField from django.db.models.fields.related import ForeignKey, ManyToManyField, RelatedField
@@ -17,12 +16,13 @@ from django.db.models.query import QuerySet
from django.forms.fields import TypedChoiceField from django.forms.fields import TypedChoiceField
from django.forms.models import ModelChoiceField, ModelMultipleChoiceField from django.forms.models import ModelChoiceField, ModelMultipleChoiceField
from django.forms.widgets import Media from django.forms.widgets import Media
from django.http.request import HttpRequest
from django.http.response import HttpResponse, HttpResponseBase, HttpResponseRedirect, JsonResponse from django.http.response import HttpResponse, HttpResponseBase, HttpResponseRedirect, JsonResponse
from django.template.response import TemplateResponse
from django.urls.resolvers import URLPattern from django.urls.resolvers import URLPattern
from django.utils.safestring import SafeText from django.utils.safestring import SafeText
from django.db.models.fields import Field from django.db.models.fields import Field
from django.template.response import TemplateResponse
IS_POPUP_VAR: str IS_POPUP_VAR: str
TO_FIELD_VAR: str TO_FIELD_VAR: str
@@ -58,40 +58,40 @@ class BaseModelAdmin:
def check(self, **kwargs: Any) -> List[Union[str, Error]]: ... def check(self, **kwargs: Any) -> List[Union[str, Error]]: ...
def __init__(self) -> None: ... def __init__(self) -> None: ...
def formfield_for_dbfield( def formfield_for_dbfield(
self, db_field: Field, request: Optional[WSGIRequest], **kwargs: Any self, db_field: Field, request: Optional[HttpRequest], **kwargs: Any
) -> Optional[Field]: ... ) -> Optional[Field]: ...
def formfield_for_choice_field( def formfield_for_choice_field(
self, db_field: Field, request: Optional[WSGIRequest], **kwargs: Any self, db_field: Field, request: Optional[HttpRequest], **kwargs: Any
) -> TypedChoiceField: ... ) -> TypedChoiceField: ...
def get_field_queryset( def get_field_queryset(
self, db: None, db_field: RelatedField, request: Optional[WSGIRequest] self, db: None, db_field: RelatedField, request: Optional[HttpRequest]
) -> Optional[QuerySet]: ... ) -> Optional[QuerySet]: ...
def formfield_for_foreignkey( def formfield_for_foreignkey(
self, db_field: ForeignKey, request: Optional[WSGIRequest], **kwargs: Any self, db_field: ForeignKey, request: Optional[HttpRequest], **kwargs: Any
) -> Optional[ModelChoiceField]: ... ) -> Optional[ModelChoiceField]: ...
def formfield_for_manytomany( def formfield_for_manytomany(
self, db_field: ManyToManyField, request: Optional[WSGIRequest], **kwargs: Any self, db_field: ManyToManyField, request: Optional[HttpRequest], **kwargs: Any
) -> ModelMultipleChoiceField: ... ) -> ModelMultipleChoiceField: ...
def get_autocomplete_fields(self, request: WSGIRequest) -> Tuple: ... def get_autocomplete_fields(self, request: HttpRequest) -> Tuple: ...
def get_view_on_site_url(self, obj: Optional[Model] = ...) -> Optional[str]: ... def get_view_on_site_url(self, obj: Optional[Model] = ...) -> Optional[str]: ...
def get_empty_value_display(self) -> SafeText: ... def get_empty_value_display(self) -> SafeText: ...
def get_exclude(self, request: WSGIRequest, obj: Optional[Model] = ...) -> Any: ... def get_exclude(self, request: HttpRequest, obj: Optional[Model] = ...) -> Any: ...
def get_fields(self, request: WSGIRequest, obj: Optional[Model] = ...) -> Sequence[Union[Callable, str]]: ... def get_fields(self, request: HttpRequest, obj: Optional[Model] = ...) -> Sequence[Union[Callable, str]]: ...
def get_fieldsets( def get_fieldsets(
self, request: WSGIRequest, obj: Optional[Model] = ... self, request: HttpRequest, obj: Optional[Model] = ...
) -> List[Tuple[Optional[str], Dict[str, Any]]]: ... ) -> List[Tuple[Optional[str], Dict[str, Any]]]: ...
def get_ordering(self, request: WSGIRequest) -> Union[List[str], Tuple]: ... def get_ordering(self, request: HttpRequest) -> Union[List[str], Tuple]: ...
def get_readonly_fields(self, request: WSGIRequest, obj: Optional[Model] = ...) -> Union[List[str], Tuple]: ... def get_readonly_fields(self, request: HttpRequest, obj: Optional[Model] = ...) -> Union[List[str], Tuple]: ...
def get_prepopulated_fields(self, request: WSGIRequest, obj: Optional[Model] = ...) -> Dict[str, Tuple[str]]: ... def get_prepopulated_fields(self, request: HttpRequest, obj: Optional[Model] = ...) -> Dict[str, Tuple[str]]: ...
def get_queryset(self, request: WSGIRequest) -> QuerySet: ... def get_queryset(self, request: HttpRequest) -> QuerySet: ...
def get_sortable_by(self, request: WSGIRequest) -> Union[List[Callable], List[str], Tuple]: ... def get_sortable_by(self, request: HttpRequest) -> Union[List[Callable], List[str], Tuple]: ...
def lookup_allowed(self, lookup: str, value: str) -> bool: ... def lookup_allowed(self, lookup: str, value: str) -> bool: ...
def to_field_allowed(self, request: WSGIRequest, to_field: str) -> bool: ... def to_field_allowed(self, request: HttpRequest, to_field: str) -> bool: ...
def has_add_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ... def has_add_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ...
def has_change_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ... def has_change_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ...
def has_delete_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ... def has_delete_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ...
def has_view_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ... def has_view_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ...
def has_module_permission(self, request: WSGIRequest) -> bool: ... def has_module_permission(self, request: HttpRequest) -> bool: ...
class ModelAdmin(BaseModelAdmin): class ModelAdmin(BaseModelAdmin):
formfield_overrides: Any formfield_overrides: Any
@@ -127,54 +127,54 @@ class ModelAdmin(BaseModelAdmin):
opts: Options = ... opts: Options = ...
admin_site: AdminSite = ... admin_site: AdminSite = ...
def __init__(self, model: Type[Model], admin_site: Optional[AdminSite]) -> None: ... def __init__(self, model: Type[Model], admin_site: Optional[AdminSite]) -> None: ...
def get_inline_instances(self, request: WSGIRequest, obj: Optional[Model] = ...) -> List[InlineModelAdmin]: ... def get_inline_instances(self, request: HttpRequest, obj: Optional[Model] = ...) -> List[InlineModelAdmin]: ...
def get_urls(self) -> List[URLPattern]: ... def get_urls(self) -> List[URLPattern]: ...
@property @property
def urls(self) -> List[URLPattern]: ... def urls(self) -> List[URLPattern]: ...
@property @property
def media(self) -> Media: ... def media(self) -> Media: ...
def get_model_perms(self, request: WSGIRequest) -> Dict[str, bool]: ... def get_model_perms(self, request: HttpRequest) -> Dict[str, bool]: ...
def get_form(self, request: Any, obj: Optional[Any] = ..., change: bool = ..., **kwargs: Any): ... def get_form(self, request: Any, obj: Optional[Any] = ..., change: bool = ..., **kwargs: Any): ...
def get_changelist(self, request: WSGIRequest, **kwargs: Any) -> Type[ChangeList]: ... def get_changelist(self, request: HttpRequest, **kwargs: Any) -> Type[ChangeList]: ...
def get_changelist_instance(self, request: WSGIRequest) -> ChangeList: ... def get_changelist_instance(self, request: HttpRequest) -> ChangeList: ...
def get_object(self, request: WSGIRequest, object_id: str, from_field: None = ...) -> Optional[Model]: ... def get_object(self, request: HttpRequest, object_id: str, from_field: None = ...) -> Optional[Model]: ...
def get_changelist_form(self, request: Any, **kwargs: Any): ... def get_changelist_form(self, request: Any, **kwargs: Any): ...
def get_changelist_formset(self, request: Any, **kwargs: Any): ... def get_changelist_formset(self, request: Any, **kwargs: Any): ...
def get_formsets_with_inlines(self, request: WSGIRequest, obj: Optional[Model] = ...) -> Iterator[Any]: ... def get_formsets_with_inlines(self, request: HttpRequest, obj: Optional[Model] = ...) -> Iterator[Any]: ...
def get_paginator( def get_paginator(
self, self,
request: WSGIRequest, request: HttpRequest,
queryset: QuerySet, queryset: QuerySet,
per_page: int, per_page: int,
orphans: int = ..., orphans: int = ...,
allow_empty_first_page: bool = ..., allow_empty_first_page: bool = ...,
) -> Paginator: ... ) -> Paginator: ...
def log_addition(self, request: WSGIRequest, object: Model, message: Any) -> LogEntry: ... def log_addition(self, request: HttpRequest, object: Model, message: Any) -> LogEntry: ...
def log_change(self, request: WSGIRequest, object: Model, message: Any) -> LogEntry: ... def log_change(self, request: HttpRequest, object: Model, message: Any) -> LogEntry: ...
def log_deletion(self, request: WSGIRequest, object: Model, object_repr: str) -> LogEntry: ... def log_deletion(self, request: HttpRequest, object: Model, object_repr: str) -> LogEntry: ...
def action_checkbox(self, obj: Model) -> SafeText: ... def action_checkbox(self, obj: Model) -> SafeText: ...
def get_actions(self, request: WSGIRequest) -> OrderedDict: ... def get_actions(self, request: HttpRequest) -> OrderedDict: ...
def get_action_choices( def get_action_choices(
self, request: WSGIRequest, default_choices: List[Tuple[str, str]] = ... self, request: HttpRequest, default_choices: List[Tuple[str, str]] = ...
) -> List[Tuple[str, str]]: ... ) -> List[Tuple[str, str]]: ...
def get_action(self, action: Union[Callable, str]) -> Tuple[Callable, str, str]: ... def get_action(self, action: Union[Callable, str]) -> Tuple[Callable, str, str]: ...
def get_list_display(self, request: WSGIRequest) -> Sequence[str]: ... def get_list_display(self, request: HttpRequest) -> Sequence[str]: ...
def get_list_display_links(self, request: WSGIRequest, list_display: Sequence[str]) -> Optional[Sequence[str]]: ... def get_list_display_links(self, request: HttpRequest, list_display: Sequence[str]) -> Optional[Sequence[str]]: ...
def get_list_filter(self, request: WSGIRequest) -> Sequence[str]: ... def get_list_filter(self, request: HttpRequest) -> Sequence[str]: ...
def get_list_select_related(self, request: WSGIRequest) -> Sequence[str]: ... def get_list_select_related(self, request: HttpRequest) -> Sequence[str]: ...
def get_search_fields(self, request: WSGIRequest) -> List[str]: ... def get_search_fields(self, request: HttpRequest) -> List[str]: ...
def get_search_results( def get_search_results(
self, request: WSGIRequest, queryset: QuerySet, search_term: str self, request: HttpRequest, queryset: QuerySet, search_term: str
) -> Tuple[QuerySet, bool]: ... ) -> Tuple[QuerySet, bool]: ...
def get_preserved_filters(self, request: WSGIRequest) -> str: ... def get_preserved_filters(self, request: HttpRequest) -> str: ...
def _get_edited_object_pks(self, request: WSGIRequest, prefix: str) -> List[str]: ... def _get_edited_object_pks(self, request: HttpRequest, prefix: str) -> List[str]: ...
def _get_list_editable_queryset(self, request: WSGIRequest, prefix: str) -> QuerySet: ... def _get_list_editable_queryset(self, request: HttpRequest, prefix: str) -> QuerySet: ...
def construct_change_message( def construct_change_message(
self, request: WSGIRequest, form: AdminPasswordChangeForm, formsets: None, add: bool = ... self, request: HttpRequest, form: AdminPasswordChangeForm, formsets: None, add: bool = ...
) -> List[Dict[str, Dict[str, List[str]]]]: ... ) -> List[Dict[str, Dict[str, List[str]]]]: ...
def message_user( def message_user(
self, self,
request: WSGIRequest, request: HttpRequest,
message: str, message: str,
level: Union[int, str] = ..., level: Union[int, str] = ...,
extra_tags: str = ..., extra_tags: str = ...,
@@ -182,8 +182,8 @@ class ModelAdmin(BaseModelAdmin):
) -> None: ... ) -> None: ...
def save_form(self, request: Any, form: Any, change: Any): ... def save_form(self, request: Any, form: Any, change: Any): ...
def save_model(self, request: Any, obj: Any, form: Any, change: Any) -> None: ... def save_model(self, request: Any, obj: Any, form: Any, change: Any) -> None: ...
def delete_model(self, request: WSGIRequest, obj: Model) -> None: ... def delete_model(self, request: HttpRequest, obj: Model) -> None: ...
def delete_queryset(self, request: WSGIRequest, queryset: QuerySet) -> None: ... def delete_queryset(self, request: HttpRequest, queryset: QuerySet) -> None: ...
def save_formset(self, request: Any, form: Any, formset: Any, change: Any) -> None: ... def save_formset(self, request: Any, form: Any, formset: Any, change: Any) -> None: ...
def save_related(self, request: Any, form: Any, formsets: Any, change: Any) -> None: ... def save_related(self, request: Any, form: Any, formsets: Any, change: Any) -> None: ...
def render_change_form( def render_change_form(
@@ -196,52 +196,51 @@ class ModelAdmin(BaseModelAdmin):
obj: Optional[Any] = ..., obj: Optional[Any] = ...,
): ... ): ...
def response_add( def response_add(
self, request: WSGIRequest, obj: Model, post_url_continue: Optional[str] = ... self, request: HttpRequest, obj: Model, post_url_continue: Optional[str] = ...
) -> HttpResponse: ... ) -> HttpResponse: ...
def response_change(self, request: WSGIRequest, obj: Model) -> HttpResponse: ... def response_change(self, request: HttpRequest, obj: Model) -> HttpResponse: ...
def response_post_save_add(self, request: WSGIRequest, obj: Model) -> HttpResponseRedirect: ... def response_post_save_add(self, request: HttpRequest, obj: Model) -> HttpResponseRedirect: ...
def response_post_save_change(self, request: WSGIRequest, obj: Model) -> HttpResponseRedirect: ... def response_post_save_change(self, request: HttpRequest, obj: Model) -> HttpResponseRedirect: ...
def response_action(self, request: WSGIRequest, queryset: QuerySet) -> Optional[HttpResponseBase]: ... def response_action(self, request: HttpRequest, queryset: QuerySet) -> Optional[HttpResponseBase]: ...
def response_delete(self, request: WSGIRequest, obj_display: str, obj_id: int) -> HttpResponse: ... def response_delete(self, request: HttpRequest, obj_display: str, obj_id: int) -> HttpResponse: ...
def render_delete_form(self, request: Any, context: Any): ... def render_delete_form(self, request: Any, context: Any): ...
def get_inline_formsets( def get_inline_formsets(
self, request: WSGIRequest, formsets: List[Any], inline_instances: List[Any], obj: Optional[Model] = ... self, request: HttpRequest, formsets: List[Any], inline_instances: List[Any], obj: Optional[Model] = ...
) -> List[Any]: ... ) -> List[Any]: ...
def get_changeform_initial_data(self, request: WSGIRequest) -> Dict[str, str]: ... def get_changeform_initial_data(self, request: HttpRequest) -> Dict[str, str]: ...
def changeform_view( def changeform_view(
self, self,
request: WSGIRequest, request: HttpRequest,
object_id: Optional[str] = ..., object_id: Optional[str] = ...,
form_url: str = ..., form_url: str = ...,
extra_context: Optional[Dict[str, bool]] = ..., extra_context: Optional[Dict[str, bool]] = ...,
) -> Any: ... ) -> Any: ...
def autocomplete_view(self, request: WSGIRequest) -> JsonResponse: ... def autocomplete_view(self, request: HttpRequest) -> JsonResponse: ...
def add_view(self, request: WSGIRequest, form_url: str = ..., extra_context: None = ...) -> HttpResponse: ... def add_view(self, request: HttpRequest, form_url: str = ..., extra_context: None = ...) -> HttpResponse: ...
def change_view( def change_view(
self, request: WSGIRequest, object_id: str, form_url: str = ..., extra_context: Optional[Dict[str, bool]] = ... self, request: HttpRequest, object_id: str, form_url: str = ..., extra_context: Optional[Dict[str, bool]] = ...
) -> HttpResponse: ... ) -> HttpResponse: ...
def changelist_view( def changelist_view(
self, request: WSGIRequest, extra_context: Optional[Dict[str, str]] = ... self, request: HttpRequest, extra_context: Optional[Dict[str, str]] = ...
) -> TemplateResponse: ... ) -> TemplateResponse: ...
def get_deleted_objects( def get_deleted_objects(
self, objs: QuerySet, request: WSGIRequest self, objs: QuerySet, request: HttpRequest
) -> Tuple[List[Any], Dict[Any, Any], Set[Any], List[Any]]: ... ) -> Tuple[List[Any], Dict[Any, Any], Set[Any], List[Any]]: ...
def delete_view(self, request: WSGIRequest, object_id: str, extra_context: None = ...) -> Any: ... def delete_view(self, request: HttpRequest, object_id: str, extra_context: None = ...) -> Any: ...
def history_view(self, request: WSGIRequest, object_id: str, extra_context: None = ...) -> HttpResponse: ... def history_view(self, request: HttpRequest, object_id: str, extra_context: None = ...) -> HttpResponse: ...
class InlineModelAdmin(BaseModelAdmin): class InlineModelAdmin(BaseModelAdmin):
model: Any = ... model: Any = ...
fk_name: Any = ... fk_name: Any = ...
formset: Any = ... formset: Any = ...
extra: int = ... extra: int = ...
min_num: Any = ... min_num: Optional[int] = ...
max_num: Any = ... max_num: Optional[int] = ...
template: Any = ... template: str = ...
verbose_name: Any = ... verbose_name: Optional[str] = ...
verbose_name_plural: Any = ... verbose_name_plural: Optional[str] = ...
can_delete: bool = ... can_delete: bool = ...
show_change_link: bool = ... show_change_link: bool = ...
checks_class: Any = ...
classes: Any = ... classes: Any = ...
admin_site: Any = ... admin_site: Any = ...
parent_model: Any = ... parent_model: Any = ...
@@ -250,18 +249,10 @@ class InlineModelAdmin(BaseModelAdmin):
def __init__(self, parent_model: Union[Type[Model], Model], admin_site: AdminSite) -> None: ... def __init__(self, parent_model: Union[Type[Model], Model], admin_site: AdminSite) -> None: ...
@property @property
def media(self) -> Media: ... def media(self) -> Media: ...
def get_extra(self, request: WSGIRequest, obj: Optional[Model] = ..., **kwargs: Any) -> int: ... def get_extra(self, request: HttpRequest, obj: Optional[Model] = ..., **kwargs: Any) -> int: ...
def get_min_num(self, request: WSGIRequest, obj: Optional[Model] = ..., **kwargs: Any) -> None: ... def get_min_num(self, request: HttpRequest, obj: Optional[Model] = ..., **kwargs: Any) -> Optional[int]: ...
def get_max_num(self, request: WSGIRequest, obj: Optional[Model] = ..., **kwargs: Any) -> Optional[int]: ... def get_max_num(self, request: HttpRequest, obj: Optional[Model] = ..., **kwargs: Any) -> Optional[int]: ...
fields: Any = ...
def get_formset(self, request: Any, obj: Optional[Any] = ..., **kwargs: Any): ... def get_formset(self, request: Any, obj: Optional[Any] = ..., **kwargs: Any): ...
def get_queryset(self, request: WSGIRequest) -> QuerySet: ...
def has_change_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ...
def has_delete_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ...
def has_view_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ...
class StackedInline(InlineModelAdmin): class StackedInline(InlineModelAdmin): ...
template: str = ... class TabularInline(InlineModelAdmin): ...
class TabularInline(InlineModelAdmin):
template: str = ...

View File

@@ -1,10 +1,10 @@
from typing import Any from typing import Any
from django.core.handlers.wsgi import WSGIRequest from django.http.request import HttpRequest
from django.http.response import HttpResponse from django.http.response import HttpResponse
from django.utils.deprecation import MiddlewareMixin from django.utils.deprecation import MiddlewareMixin
class RedirectFallbackMiddleware(MiddlewareMixin): class RedirectFallbackMiddleware(MiddlewareMixin):
response_gone_class: Any = ... response_gone_class: Any = ...
response_redirect_class: Any = ... response_redirect_class: Any = ...
def process_response(self, request: WSGIRequest, response: HttpResponse) -> HttpResponse: ... def process_response(self, request: HttpRequest, response: HttpResponse) -> HttpResponse: ...

View File

@@ -1,20 +1,19 @@
from datetime import datetime from datetime import datetime
from typing import Any, Dict, Optional from typing import Any, Dict, Optional, Type
from django.contrib.sessions.backends.base import SessionBase
from django.db import models from django.db import models
class BaseSessionManager(models.Manager): class BaseSessionManager(models.Manager):
creation_counter: int
model: None
name: None
def encode(self, session_dict: Dict[str, int]) -> str: ... def encode(self, session_dict: Dict[str, int]) -> str: ...
def save(self, session_key: str, session_dict: Dict[str, int], expire_date: datetime) -> AbstractBaseSession: ... def save(self, session_key: str, session_dict: Dict[str, int], expire_date: datetime) -> AbstractBaseSession: ...
class AbstractBaseSession(models.Model): class AbstractBaseSession(models.Model):
session_key: Any = ... expire_date: datetime
session_data: Any = ... session_data: str
expire_date: Any = ... session_key: str
objects: Any = ... objects: Any = ...
@classmethod @classmethod
def get_session_store_class(cls) -> None: ... def get_session_store_class(cls) -> Optional[Type[SessionBase]]: ...
def get_decoded(self) -> Dict[str, int]: ... def get_decoded(self) -> Dict[str, int]: ...

View File

@@ -1,18 +1,4 @@
from typing import Any, Optional, Type
from django.contrib.sessions.backends.db import SessionStore
from django.contrib.sessions.base_session import AbstractBaseSession, BaseSessionManager from django.contrib.sessions.base_session import AbstractBaseSession, BaseSessionManager
class SessionManager(BaseSessionManager): class SessionManager(BaseSessionManager): ...
creation_counter: int class Session(AbstractBaseSession): ...
model: None
name: None
use_in_migrations: bool = ...
class Session(AbstractBaseSession):
expire_date: datetime.datetime
session_data: str
session_key: str
objects: Any = ...
@classmethod
def get_session_store_class(cls) -> Type[SessionStore]: ...

View File

@@ -1,4 +1,4 @@
from typing import Any, Dict, Optional from typing import Dict
from django.core.signing import JSONSerializer as BaseJSONSerializer from django.core.signing import JSONSerializer as BaseJSONSerializer
from django.db.models.base import Model from django.db.models.base import Model

View File

@@ -11,7 +11,7 @@ PING_URL: str
class SitemapNotFound(Exception): ... class SitemapNotFound(Exception): ...
def ping_google(sitemap_url: None = ..., ping_url: str = ...) -> None: ... def ping_google(sitemap_url: Optional[str] = ..., ping_url: str = ...) -> None: ...
class Sitemap: class Sitemap:
limit: int = ... limit: int = ...
@@ -22,14 +22,14 @@ class Sitemap:
def paginator(self) -> Paginator: ... def paginator(self) -> Paginator: ...
def get_urls( def get_urls(
self, page: Union[int, str] = ..., site: Optional[Union[Site, RequestSite]] = ..., protocol: Optional[str] = ... self, page: Union[int, str] = ..., site: Optional[Union[Site, RequestSite]] = ..., protocol: Optional[str] = ...
) -> List[Dict[str, Optional[Union[datetime, Model, str]]]]: ... ) -> List[Dict[str, Any]]: ...
class GenericSitemap(Sitemap): class GenericSitemap(Sitemap):
priority: None = ... priority: Optional[float] = ...
changefreq: None = ... changefreq: Optional[str] = ...
queryset: QuerySet = ... queryset: QuerySet = ...
date_field: None = ... date_field: None = ...
protocol: None = ... protocol: Optional[str] = ...
def __init__( def __init__(
self, self,
info_dict: Dict[str, Union[datetime, QuerySet, str]], info_dict: Dict[str, Union[datetime, QuerySet, str]],

View File

@@ -1,20 +1,21 @@
from collections import OrderedDict from collections import OrderedDict
from typing import Any, Callable, Dict, Optional, Type, Union from typing import Callable, Dict, Optional, Type, Union
from django.http.request import HttpRequest
from django.template.response import TemplateResponse
from django.contrib.sitemaps import GenericSitemap, Sitemap from django.contrib.sitemaps import GenericSitemap, Sitemap
from django.core.handlers.wsgi import WSGIRequest
from django.template.response import TemplateResponse
def x_robots_tag(func: Callable) -> Callable: ... def x_robots_tag(func: Callable) -> Callable: ...
def index( def index(
request: WSGIRequest, request: HttpRequest,
sitemaps: Dict[str, Union[Type[Sitemap], Sitemap]], sitemaps: Dict[str, Union[Type[Sitemap], Sitemap]],
template_name: str = ..., template_name: str = ...,
content_type: str = ..., content_type: str = ...,
sitemap_url_name: str = ..., sitemap_url_name: str = ...,
) -> TemplateResponse: ... ) -> TemplateResponse: ...
def sitemap( def sitemap(
request: WSGIRequest, request: HttpRequest,
sitemaps: Union[Dict[str, Type[Sitemap]], Dict[str, GenericSitemap], OrderedDict], sitemaps: Union[Dict[str, Type[Sitemap]], Dict[str, GenericSitemap], OrderedDict],
section: Optional[str] = ..., section: Optional[str] = ...,
template_name: str = ..., template_name: str = ...,

View File

@@ -1,7 +1,7 @@
from collections import OrderedDict from collections import OrderedDict
from typing import Any, Callable, Dict, Union from typing import Any, Callable, Dict, Union
from django.core.cache.backends.base import BaseCache as BaseCache from .backends.base import BaseCache as BaseCache
DEFAULT_CACHE_ALIAS: str DEFAULT_CACHE_ALIAS: str

View File

@@ -1,5 +1,5 @@
from typing import Any, List, Optional, Union from typing import Any, Iterable, Optional
TEMPLATE_FRAGMENT_KEY_TEMPLATE: str TEMPLATE_FRAGMENT_KEY_TEMPLATE: str
def make_template_fragment_key(fragment_name: str, vary_on: Optional[Union[List[int], List[str]]] = ...) -> str: ... def make_template_fragment_key(fragment_name: str, vary_on: Optional[Iterable[Any]] = ...) -> str: ...

View File

@@ -1,6 +1,6 @@
from typing import Any, Callable from typing import Any, Callable
from django.core.handlers.wsgi import WSGIRequest from django.http.request import HttpRequest
from django.http.response import HttpResponse, HttpResponseBase from django.http.response import HttpResponse, HttpResponseBase
logger: Any logger: Any
@@ -13,5 +13,5 @@ class BaseHandler:
def load_middleware(self) -> None: ... def load_middleware(self) -> None: ...
def make_view_atomic(self, view: Callable) -> Callable: ... def make_view_atomic(self, view: Callable) -> Callable: ...
def get_exception_response(self, request: Any, resolver: Any, status_code: Any, exception: Any): ... def get_exception_response(self, request: Any, resolver: Any, status_code: Any, exception: Any): ...
def get_response(self, request: WSGIRequest) -> HttpResponseBase: ... def get_response(self, request: HttpRequest) -> HttpResponseBase: ...
def process_exception_by_middleware(self, exception: Exception, request: WSGIRequest) -> HttpResponse: ... def process_exception_by_middleware(self, exception: Exception, request: HttpRequest) -> HttpResponse: ...

View File

@@ -1,12 +1,12 @@
from typing import Any, Callable from typing import Any, Callable
from django.core.handlers.wsgi import WSGIRequest from django.http.request import HttpRequest
from django.http.response import HttpResponse from django.http.response import HttpResponse
from django.urls.resolvers import URLResolver from django.urls.resolvers import URLResolver
def convert_exception_to_response(get_response: Callable) -> Callable: ... def convert_exception_to_response(get_response: Callable) -> Callable: ...
def response_for_exception(request: WSGIRequest, exc: Exception) -> HttpResponse: ... def response_for_exception(request: HttpRequest, exc: Exception) -> HttpResponse: ...
def get_exception_response( def get_exception_response(
request: WSGIRequest, resolver: URLResolver, status_code: int, exception: Exception, sender: None = ... request: HttpRequest, resolver: URLResolver, status_code: int, exception: Exception, sender: None = ...
) -> HttpResponse: ... ) -> HttpResponse: ...
def handle_uncaught_exception(request: Any, resolver: Any, exc_info: Any): ... def handle_uncaught_exception(request: Any, resolver: Any, exc_info: Any): ...

View File

@@ -1,15 +1,16 @@
from typing import Any, List, Optional, Tuple from typing import Any, List, Optional, Tuple
from django.core.mail.backends.base import BaseEmailBackend from .backends.base import BaseEmailBackend
from django.core.mail.message import DEFAULT_ATTACHMENT_MIME_TYPE as DEFAULT_ATTACHMENT_MIME_TYPE from .message import (
from django.core.mail.message import BadHeaderError as BadHeaderError BadHeaderError as BadHeaderError,
from django.core.mail.message import EmailMessage as EmailMessage DEFAULT_ATTACHMENT_MIME_TYPE as DEFAULT_ATTACHMENT_MIME_TYPE,
from django.core.mail.message import EmailMultiAlternatives as EmailMultiAlternatives EmailMessage as EmailMessage,
from django.core.mail.message import SafeMIMEMultipart as SafeMIMEMultipart EmailMultiAlternatives as EmailMultiAlternatives,
from django.core.mail.message import SafeMIMEText as SafeMIMEText SafeMIMEMultipart as SafeMIMEMultipart,
from django.core.mail.message import forbid_multi_line_headers as forbid_multi_line_headers SafeMIMEText as SafeMIMEText,
from django.core.mail.utils import DNS_NAME as DNS_NAME forbid_multi_line_headers as forbid_multi_line_headers,
from django.core.mail.utils import CachedDnsName as CachedDnsName )
from .utils import CachedDnsName as CachedDnsName, DNS_NAME as DNS_NAME
def get_connection(backend: Optional[str] = ..., fail_silently: bool = ..., **kwds: Any) -> BaseEmailBackend: ... def get_connection(backend: Optional[str] = ..., fail_silently: bool = ..., **kwds: Any) -> BaseEmailBackend: ...
def send_mail( def send_mail(
@@ -18,17 +19,17 @@ def send_mail(
from_email: Optional[str], from_email: Optional[str],
recipient_list: List[str], recipient_list: List[str],
fail_silently: bool = ..., fail_silently: bool = ...,
auth_user: None = ..., auth_user: Optional[str] = ...,
auth_password: None = ..., auth_password: Optional[str] = ...,
connection: Optional[BaseEmailBackend] = ..., connection: Optional[BaseEmailBackend] = ...,
html_message: Optional[str] = ..., html_message: Optional[str] = ...,
) -> int: ... ) -> int: ...
def send_mass_mail( def send_mass_mail(
datatuple: List[Tuple[str, str, str, List[str]]], datatuple: List[Tuple[str, str, str, List[str]]],
fail_silently: bool = ..., fail_silently: bool = ...,
auth_user: None = ..., auth_user: Optional[str] = ...,
auth_password: None = ..., auth_password: Optional[str] = ...,
connection: BaseEmailBackend = ..., connection: Optional[BaseEmailBackend] = ...,
) -> int: ... ) -> int: ...
def mail_admins( def mail_admins(
subject: str, subject: str,
@@ -45,4 +46,4 @@ def mail_managers(
html_message: Optional[str] = ..., html_message: Optional[str] = ...,
) -> None: ... ) -> None: ...
outbox = [EmailMessage()] outbox: List[EmailMessage] = ...

View File

@@ -1,8 +1,8 @@
import email from email._policybase import Policy
from email.mime.message import MIMEMessage from email.mime.message import MIMEMessage
from email.mime.multipart import MIMEMultipart from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText from email.mime.text import MIMEText
from typing import Any, Dict, List, Optional, Tuple, Union from typing import Any, Dict, List, Optional, Tuple, Union, Sequence
from django.core.mail.backends.base import BaseEmailBackend from django.core.mail.backends.base import BaseEmailBackend
from django.utils.safestring import SafeText from django.utils.safestring import SafeText
@@ -27,14 +27,14 @@ class MIMEMixin:
class SafeMIMEMessage(MIMEMixin, MIMEMessage): class SafeMIMEMessage(MIMEMixin, MIMEMessage):
defects: List[Any] defects: List[Any]
epilogue: None epilogue: None
policy: email._policybase.Compat32 policy: Policy
preamble: None preamble: None
def __setitem__(self, name: str, val: str) -> None: ... def __setitem__(self, name: str, val: str) -> None: ...
class SafeMIMEText(MIMEMixin, MIMEText): class SafeMIMEText(MIMEMixin, MIMEText):
defects: List[Any] defects: List[Any]
epilogue: None epilogue: None
policy: email._policybase.Compat32 policy: Policy
preamble: None preamble: None
encoding: str = ... encoding: str = ...
def __init__(self, _text: str, _subtype: str = ..., _charset: str = ...) -> None: ... def __init__(self, _text: str, _subtype: str = ..., _charset: str = ...) -> None: ...
@@ -44,7 +44,7 @@ class SafeMIMEText(MIMEMixin, MIMEText):
class SafeMIMEMultipart(MIMEMixin, MIMEMultipart): class SafeMIMEMultipart(MIMEMixin, MIMEMultipart):
defects: List[Any] defects: List[Any]
epilogue: None epilogue: None
policy: email._policybase.Compat32 policy: Policy
preamble: None preamble: None
encoding: str = ... encoding: str = ...
def __init__( def __init__(
@@ -71,12 +71,12 @@ class EmailMessage:
subject: str = ..., subject: str = ...,
body: Optional[str] = ..., body: Optional[str] = ...,
from_email: Optional[str] = ..., from_email: Optional[str] = ...,
to: Optional[Union[List[str], Tuple[str, str], str]] = ..., to: Optional[Union[Sequence[str], str]] = ...,
bcc: Optional[Union[List[str], Tuple[str], str]] = ..., bcc: Optional[Union[Sequence[str], str]] = ...,
connection: Optional[BaseEmailBackend] = ..., connection: Optional[BaseEmailBackend] = ...,
attachments: Optional[Union[List[Tuple[str, str]], List[MIMEText]]] = ..., attachments: Optional[Union[List[Tuple[str, str]], List[MIMEText]]] = ...,
headers: Optional[Dict[str, str]] = ..., headers: Optional[Dict[str, str]] = ...,
cc: Optional[Union[List[str], Tuple[str, str], str]] = ..., cc: Optional[Union[Sequence[str], str]] = ...,
reply_to: Optional[Union[List[Optional[str]], str]] = ..., reply_to: Optional[Union[List[Optional[str]], str]] = ...,
) -> None: ... ) -> None: ...
def get_connection(self, fail_silently: bool = ...) -> BaseEmailBackend: ... def get_connection(self, fail_silently: bool = ...) -> BaseEmailBackend: ...

View File

@@ -11,7 +11,6 @@ class Node:
parents: Set[Any] = ... parents: Set[Any] = ...
def __init__(self, key: Tuple[str, str]) -> None: ... def __init__(self, key: Tuple[str, str]) -> None: ...
def __lt__(self, other: Union[Tuple[str, str], Node]) -> bool: ... def __lt__(self, other: Union[Tuple[str, str], Node]) -> bool: ...
def __hash__(self) -> int: ...
def __getitem__(self, item: int) -> str: ... def __getitem__(self, item: int) -> str: ...
def add_child(self, child: Node) -> None: ... def add_child(self, child: Node) -> None: ...
def add_parent(self, parent: Node) -> None: ... def add_parent(self, parent: Node) -> None: ...
@@ -19,13 +18,9 @@ class Node:
def descendants(self) -> List[Tuple[str, str]]: ... def descendants(self) -> List[Tuple[str, str]]: ...
class DummyNode(Node): class DummyNode(Node):
children: Set[Any]
key: Tuple[str, str]
parents: Set[Any]
origin: Any = ... origin: Any = ...
error_message: Any = ... error_message: Any = ...
def __init__(self, key: Tuple[str, str], origin: Union[Migration, str], error_message: str) -> None: ... def __init__(self, key: Tuple[str, str], origin: Union[Migration, str], error_message: str) -> None: ...
__class__: Any = ...
def promote(self) -> None: ... def promote(self) -> None: ...
def raise_error(self) -> None: ... def raise_error(self) -> None: ...

View File

@@ -1,11 +1,11 @@
from typing import Any, Dict, Optional, Set, Tuple, Union, Sequence from typing import Any, Dict, Optional, Sequence, Set, Tuple, Union
from django.db import DefaultConnectionProxy
from django.db.backends.base.base import BaseDatabaseWrapper from django.db.backends.base.base import BaseDatabaseWrapper
from django.db.backends.sqlite3.base import DatabaseWrapper
from django.db.migrations.migration import Migration, SwappableTuple from django.db.migrations.migration import Migration, SwappableTuple
from django.db.migrations.state import ProjectState from django.db.migrations.state import ProjectState
from django.db import DefaultConnectionProxy
MIGRATIONS_MODULE_NAME: str MIGRATIONS_MODULE_NAME: str
class MigrationLoader: class MigrationLoader:

View File

@@ -13,7 +13,6 @@ class Migration:
name: str = ... name: str = ...
app_label: str = ... app_label: str = ...
def __init__(self, name: str, app_label: str) -> None: ... def __init__(self, name: str, app_label: str) -> None: ...
def __hash__(self) -> int: ...
def mutate_state(self, project_state: ProjectState, preserve: bool = ...) -> ProjectState: ... def mutate_state(self, project_state: ProjectState, preserve: bool = ...) -> ProjectState: ...
def apply( def apply(
self, project_state: ProjectState, schema_editor: BaseDatabaseSchemaEditor, collect_sql: bool = ... self, project_state: ProjectState, schema_editor: BaseDatabaseSchemaEditor, collect_sql: bool = ...
@@ -24,6 +23,6 @@ class Migration:
class SwappableTuple(tuple): class SwappableTuple(tuple):
setting: str = ... setting: str = ...
def __new__(cls: Type[SwappableTuple], value: Tuple[str, str], setting: str) -> SwappableTuple: ... def __new__(cls, value: Tuple[str, str], setting: str) -> SwappableTuple: ...
def swappable_dependency(value: str) -> SwappableTuple: ... def swappable_dependency(value: str) -> SwappableTuple: ...

View File

@@ -1,7 +1,3 @@
# Stubs for django.db.migrations.operations (Python 3.6)
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.
from .fields import ( from .fields import (
AddField as AddField, AddField as AddField,
AlterField as AlterField, AlterField as AlterField,

View File

@@ -1,4 +1,4 @@
from typing import Any, List, Optional, Type from typing import Any, List
class Operation: class Operation:
reversible: bool = ... reversible: bool = ...
@@ -6,7 +6,6 @@ class Operation:
atomic: bool = ... atomic: bool = ...
elidable: bool = ... elidable: bool = ...
serialization_expand_args: Any = ... serialization_expand_args: Any = ...
def __new__(cls: Type[Operation], *args: Any, **kwargs: Any) -> Operation: ...
def deconstruct(self): ... def deconstruct(self): ...
def state_forwards(self, app_label: Any, state: Any) -> None: ... def state_forwards(self, app_label: Any, state: Any) -> None: ...
def database_forwards(self, app_label: Any, schema_editor: Any, from_state: Any, to_state: Any) -> None: ... def database_forwards(self, app_label: Any, schema_editor: Any, from_state: Any, to_state: Any) -> None: ...

View File

@@ -12,7 +12,6 @@ class ModelOperation(Operation):
def name_lower(self) -> str: ... def name_lower(self) -> str: ...
class CreateModel(ModelOperation): class CreateModel(ModelOperation):
serialization_expand_args: Any = ...
fields: Sequence[Tuple[str, Field]] = ... fields: Sequence[Tuple[str, Field]] = ...
options: Any = ... options: Any = ...
bases: Optional[Sequence[Union[type, str]]] = ... bases: Optional[Sequence[Union[type, str]]] = ...
@@ -63,7 +62,6 @@ class AlterModelOptions(ModelOptionOperation):
def __init__(self, name: str, options: Dict[str, Any]) -> None: ... def __init__(self, name: str, options: Dict[str, Any]) -> None: ...
class AlterModelManagers(ModelOptionOperation): class AlterModelManagers(ModelOptionOperation):
serialization_expand_args: Any = ...
managers: Any = ... managers: Any = ...
def __init__(self, name: Any, managers: Any) -> None: ... def __init__(self, name: Any, managers: Any) -> None: ...

View File

@@ -1,4 +1,4 @@
from typing import Any, Callable, Optional, Sequence, Dict from typing import Any, Callable, Dict, Optional, Sequence
from django.db.backends.base.schema import BaseDatabaseSchemaEditor from django.db.backends.base.schema import BaseDatabaseSchemaEditor
from django.db.migrations.state import StateApps from django.db.migrations.state import StateApps
@@ -6,7 +6,6 @@ from django.db.migrations.state import StateApps
from .base import Operation from .base import Operation
class SeparateDatabaseAndState(Operation): class SeparateDatabaseAndState(Operation):
serialization_expand_args: Any = ...
database_operations: Sequence[Operation] = ... database_operations: Sequence[Operation] = ...
state_operations: Sequence[Operation] = ... state_operations: Sequence[Operation] = ...
def __init__( def __init__(
@@ -19,7 +18,6 @@ class RunSQL(Operation):
reverse_sql: Any = ... reverse_sql: Any = ...
state_operations: Any = ... state_operations: Any = ...
hints: Any = ... hints: Any = ...
elidable: Any = ...
def __init__( def __init__(
self, self,
sql: Any, sql: Any,
@@ -30,12 +28,9 @@ class RunSQL(Operation):
) -> None: ... ) -> None: ...
class RunPython(Operation): class RunPython(Operation):
reduces_to_sql: bool = ...
atomic: bool = ...
code: Callable = ... code: Callable = ...
reverse_code: Optional[Callable] = ... reverse_code: Optional[Callable] = ...
hints: Optional[Dict[str, Any]] = ... hints: Optional[Dict[str, Any]] = ...
elidable: bool = ...
def __init__( def __init__(
self, self,
code: Callable, code: Callable,

View File

@@ -1,6 +1,5 @@
from typing import Any, Optional
from django.db.migrations.state import ProjectState from django.db.migrations.state import ProjectState
from django.db.models.fields import Field from django.db.models.fields import Field
def is_referenced_by_foreign_key(state: ProjectState, model_name_lower: str, field: Field, field_name: str) -> bool: ... def is_referenced_by_foreign_key(state: ProjectState, model_name_lower: str, field: Field, field_name: str) -> bool: ...

View File

@@ -1,7 +1,7 @@
from typing import Any, List, Optional from typing import List, Optional
from django.db.migrations.operations.base import Operation from django.db.migrations.operations.base import Operation
class MigrationOptimizer: class MigrationOptimizer:
def optimize(self, operations: List[Operation], app_label: str = ...) -> List[Operation]: ... def optimize(self, operations: List[Operation], app_label: Optional[str] = ...) -> List[Operation]: ...
def optimize_inner(self, operations: List[Operation], app_label: str = ...) -> List[Operation]: ... def optimize_inner(self, operations: List[Operation], app_label: Optional[str] = ...) -> List[Operation]: ...

View File

@@ -1,14 +1,13 @@
from typing import Any, Dict, Optional, Set from typing import Any, Dict, Optional, Set
from django.db.migrations.state import ModelState from django.db.migrations.state import ModelState
from django.db.models.fields import Field from django.db.models.fields import Field
from .loader import MigrationLoader
class MigrationQuestioner: class MigrationQuestioner:
defaults: Dict[Any, Any] = ... defaults: Dict[str, Any] = ...
specified_apps: Set[Any] = ... specified_apps: Set[str] = ...
dry_run: None = ... dry_run: Optional[bool] = ...
def __init__( def __init__(
self, self,
defaults: Optional[Dict[str, bool]] = ..., defaults: Optional[Dict[str, bool]] = ...,
@@ -23,21 +22,5 @@ class MigrationQuestioner:
def ask_merge(self, app_label: str) -> bool: ... def ask_merge(self, app_label: str) -> bool: ...
def ask_auto_now_add_addition(self, field_name: str, model_name: str) -> None: ... def ask_auto_now_add_addition(self, field_name: str, model_name: str) -> None: ...
class InteractiveMigrationQuestioner(MigrationQuestioner): class InteractiveMigrationQuestioner(MigrationQuestioner): ...
defaults: Dict[Any, Any] class NonInteractiveMigrationQuestioner(MigrationQuestioner): ...
dry_run: bool
specified_apps: Set[str]
def ask_not_null_addition(self, field_name: str, model_name: str) -> None: ...
def ask_not_null_alteration(self, field_name: Any, model_name: Any): ...
def ask_rename(self, model_name: Any, old_name: Any, new_name: Any, field_instance: Any): ...
def ask_rename_model(self, old_model_state: Any, new_model_state: Any): ...
def ask_merge(self, app_label: str) -> bool: ...
def ask_auto_now_add_addition(self, field_name: str, model_name: str) -> int: ...
class NonInteractiveMigrationQuestioner(MigrationQuestioner):
defaults: Dict[Any, Any]
dry_run: bool
specified_apps: Set[str]
def ask_not_null_addition(self, field_name: Any, model_name: Any) -> None: ...
def ask_not_null_alteration(self, field_name: Any, model_name: Any): ...
def ask_auto_now_add_addition(self, field_name: Any, model_name: Any) -> None: ...

View File

@@ -1,9 +1,10 @@
from typing import Any, Optional, Set, Tuple, Union from typing import Any, Optional, Set, Tuple
from django.db import models
from django.db.backends.base.base import BaseDatabaseWrapper from django.db.backends.base.base import BaseDatabaseWrapper
from django.db.models.query import QuerySet from django.db.models.query import QuerySet
from django.db import models
class MigrationRecorder: class MigrationRecorder:
class Migration(models.Model): class Migration(models.Model):
app: Any = ... app: Any = ...

View File

@@ -1,88 +1,40 @@
from typing import Any, Callable, Dict, List, Set, Tuple, Union from typing import Any, Callable, Dict, List, Set, Tuple, Union
from django.db.models.fields import Field
class BaseSerializer: class BaseSerializer:
value: Any = ... value: Any = ...
def __init__(self, value: Any) -> None: ... def __init__(self, value: Any) -> None: ...
def serialize(self) -> None: ... def serialize(self) -> Any: ...
class BaseSequenceSerializer(BaseSerializer): class BaseSequenceSerializer(BaseSerializer): ...
def serialize(self) -> Tuple[str, Set[str]]: ... class BaseSimpleSerializer(BaseSerializer): ...
class DatetimeSerializer(BaseSerializer): ...
class BaseSimpleSerializer(BaseSerializer): class DateSerializer(BaseSerializer): ...
value: str class DecimalSerializer(BaseSerializer): ...
def serialize(self) -> Tuple[str, Set[Any]]: ...
class DatetimeSerializer(BaseSerializer):
value: Any = ...
def serialize(self): ...
class DateSerializer(BaseSerializer):
def serialize(self): ...
class DecimalSerializer(BaseSerializer):
def serialize(self): ...
class DeconstructableSerializer(BaseSerializer): class DeconstructableSerializer(BaseSerializer):
@staticmethod @staticmethod
def serialize_deconstructed( def serialize_deconstructed(
path: str, args: List[Any], kwargs: Dict[str, Union[Callable, int, str]] path: str, args: List[Any], kwargs: Dict[str, Union[Callable, int, str]]
) -> Tuple[str, Set[str]]: ... ) -> Tuple[str, Set[str]]: ...
def serialize(self): ...
class DictionarySerializer(BaseSerializer):
def serialize(self): ...
class EnumSerializer(BaseSerializer):
def serialize(self): ...
class FloatSerializer(BaseSimpleSerializer):
def serialize(self): ...
class DictionarySerializer(BaseSerializer): ...
class EnumSerializer(BaseSerializer): ...
class FloatSerializer(BaseSimpleSerializer): ...
class FrozensetSerializer(BaseSequenceSerializer): ... class FrozensetSerializer(BaseSequenceSerializer): ...
class FunctionTypeSerializer(BaseSerializer): ...
class FunctionTypeSerializer(BaseSerializer): class FunctoolsPartialSerializer(BaseSerializer): ...
value: Callable class IterableSerializer(BaseSerializer): ...
def serialize(self) -> Tuple[str, Set[str]]: ... class ModelFieldSerializer(DeconstructableSerializer): ...
class ModelManagerSerializer(DeconstructableSerializer): ...
class FunctoolsPartialSerializer(BaseSerializer): class OperationSerializer(BaseSerializer): ...
def serialize(self): ... class RegexSerializer(BaseSerializer): ...
class IterableSerializer(BaseSerializer):
def serialize(self): ...
class ModelFieldSerializer(DeconstructableSerializer):
value: Field
def serialize(self) -> Tuple[str, Set[str]]: ...
class ModelManagerSerializer(DeconstructableSerializer):
def serialize(self): ...
class OperationSerializer(BaseSerializer):
def serialize(self): ...
class RegexSerializer(BaseSerializer):
def serialize(self): ...
class SequenceSerializer(BaseSequenceSerializer): ... class SequenceSerializer(BaseSequenceSerializer): ...
class SetSerializer(BaseSequenceSerializer): ... class SetSerializer(BaseSequenceSerializer): ...
class SettingsReferenceSerializer(BaseSerializer): ...
class SettingsReferenceSerializer(BaseSerializer): class TimedeltaSerializer(BaseSerializer): ...
def serialize(self): ... class TimeSerializer(BaseSerializer): ...
class TimedeltaSerializer(BaseSerializer):
def serialize(self): ...
class TimeSerializer(BaseSerializer):
def serialize(self): ...
class TupleSerializer(BaseSequenceSerializer): ... class TupleSerializer(BaseSequenceSerializer): ...
class TypeSerializer(BaseSerializer): ...
class TypeSerializer(BaseSerializer): class UUIDSerializer(BaseSerializer): ...
def serialize(self): ...
class UUIDSerializer(BaseSerializer):
def serialize(self): ...
def serializer_factory(value: Any) -> BaseSerializer: ... def serializer_factory(value: Any) -> BaseSerializer: ...

View File

@@ -1,9 +1,8 @@
from typing import Any, Dict, Iterator, List, Optional, Tuple, Type, DefaultDict, Union, Sequence from typing import Any, DefaultDict, Dict, Iterator, List, Optional, Sequence, Tuple, Type, Union
from django.apps.registry import Apps from django.apps.registry import Apps
from django.db.models.base import Model from django.db.models.base import Model
from django.db.models.manager import Manager from django.db.models.manager import Manager
from django.utils.functional import cached_property
from django.db.models.fields import Field from django.db.models.fields import Field

View File

@@ -1,4 +1,4 @@
from typing import Any, Dict, Iterator, List, Optional, Set from typing import Dict, Iterator, List, Set
from django.db.migrations.operations.base import Operation from django.db.migrations.operations.base import Operation

View File

@@ -1,12 +1,10 @@
from typing import Any, Optional from typing import Any
from django.utils.functional import SimpleLazyObject
COMPILED_REGEX_TYPE: Any COMPILED_REGEX_TYPE: Any
class RegexObject: class RegexObject:
pattern: str = ... pattern: str = ...
flags: int = ... flags: int = ...
def __init__(self, obj: SimpleLazyObject) -> None: ... def __init__(self, obj: Any) -> None: ...
def get_migration_name_timestamp() -> str: ... def get_migration_name_timestamp() -> str: ...

View File

@@ -1,13 +1,10 @@
from typing import Any, Optional, Set, Tuple, Type, List, Union from typing import Any, List, Set, Tuple, Union
from django.db.migrations.migration import Migration from django.db.migrations.migration import Migration
from django.db.migrations.operations.base import Operation from django.db.migrations.operations.base import Operation
from django.db.migrations.operations.models import CreateModel from django.db.migrations.operations.models import CreateModel
class SettingsReference(str): class SettingsReference(str):
def __new__(self: Type[SettingsReference], value: str, setting_name: str) -> SettingsReference: ...
setting_name: str = ...
def __init__(self, value: str, setting_name: str) -> None: ... def __init__(self, value: str, setting_name: str) -> None: ...
class OperationWriter: class OperationWriter:

View File

@@ -1,6 +1,6 @@
from collections import UserList from collections import UserList
from datetime import datetime from datetime import datetime
from typing import Any, Callable, Dict, List, Optional, Tuple, Type, Union, Sequence from typing import Any, Dict, List, Optional, Sequence, Union
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.utils.safestring import SafeText from django.utils.safestring import SafeText
@@ -28,9 +28,6 @@ class ErrorList(UserList):
def as_json(self, escape_html: bool = ...) -> str: ... def as_json(self, escape_html: bool = ...) -> str: ...
def as_ul(self) -> str: ... def as_ul(self) -> str: ...
def as_text(self) -> str: ... def as_text(self) -> str: ...
def __reduce_ex__(
self, *args: Any, **kwargs: Any
) -> Tuple[Callable, Tuple[Type[ErrorList]], Dict[str, Union[List[ValidationError], str]], None, None]: ...
def from_current_timezone(value: datetime) -> datetime: ... def from_current_timezone(value: datetime) -> datetime: ...
def to_current_timezone(value: datetime) -> datetime: ... def to_current_timezone(value: datetime) -> datetime: ...

View File

@@ -1,9 +1,8 @@
import datetime import datetime
from io import BytesIO from io import BytesIO
from json import JSONEncoder from json import JSONEncoder
from typing import Any, Dict, Iterable, Iterator, List, Optional, Tuple, Type, Union, overload, AnyStr, IO from typing import Any, AnyStr, Dict, Iterable, Iterator, List, Optional, Tuple, Type, Union, overload
import six
from django.core.handlers.wsgi import WSGIRequest from django.core.handlers.wsgi import WSGIRequest
from django.http.cookie import SimpleCookie from django.http.cookie import SimpleCookie
from django.test.client import Client from django.test.client import Client
@@ -70,7 +69,6 @@ class HttpResponse(HttpResponseBase):
request: Dict[str, Any] request: Dict[str, Any]
resolver_match: ResolverMatch resolver_match: ResolverMatch
sameorigin: bool sameorigin: bool
status_code: int
templates: List[Template] templates: List[Template]
test_server_port: str test_server_port: str
test_was_secure_request: bool test_was_secure_request: bool
@@ -88,21 +86,13 @@ class HttpResponse(HttpResponseBase):
def json(self) -> Dict[str, Any]: ... def json(self) -> Dict[str, Any]: ...
class StreamingHttpResponse(HttpResponseBase): class StreamingHttpResponse(HttpResponseBase):
content: AnyStr
streaming_content: Iterator[AnyStr]
def __init__(self, streaming_content: Iterable[AnyStr] = ..., *args: Any, **kwargs: Any) -> None: ... def __init__(self, streaming_content: Iterable[AnyStr] = ..., *args: Any, **kwargs: Any) -> None: ...
@property
def content(self) -> AnyStr: ...
@content.setter
def content(self, value: AnyStr) -> None: ...
@property
def streaming_content(self) -> Iterator[AnyStr]: ...
@streaming_content.setter
def streaming_content(self, value: Iterable[AnyStr]) -> None: ...
def __iter__(self) -> Iterator[AnyStr]: ...
def getvalue(self) -> AnyStr: ... def getvalue(self) -> AnyStr: ...
class FileResponse(StreamingHttpResponse): class FileResponse(StreamingHttpResponse):
client: Client client: Client
closed: bool
context: None context: None
file_to_stream: Optional[BytesIO] file_to_stream: Optional[BytesIO]
request: Dict[str, str] request: Dict[str, str]
@@ -119,8 +109,6 @@ class FileResponse(StreamingHttpResponse):
class HttpResponseRedirectBase(HttpResponse): class HttpResponseRedirectBase(HttpResponse):
allowed_schemes = ... # type: List[str] allowed_schemes = ... # type: List[str]
def __init__(self, redirect_to: str, *args: Any, **kwargs: Any) -> None: ... def __init__(self, redirect_to: str, *args: Any, **kwargs: Any) -> None: ...
@property
def url(self) -> str: ...
class HttpResponseRedirect(HttpResponseRedirectBase): ... class HttpResponseRedirect(HttpResponseRedirectBase): ...
class HttpResponsePermanentRedirect(HttpResponseRedirectBase): ... class HttpResponsePermanentRedirect(HttpResponseRedirectBase): ...

View File

@@ -1,4 +1,4 @@
from typing import Any, Optional, Union from typing import Any, Optional, Union, Callable
from django.http.request import HttpRequest from django.http.request import HttpRequest
from django.http.response import HttpResponse, HttpResponseBase from django.http.response import HttpResponse, HttpResponseBase
@@ -26,4 +26,6 @@ class CacheMiddleware(UpdateCacheMiddleware, FetchFromCacheMiddleware):
cache_alias: str = ... cache_alias: str = ...
cache_timeout: float = ... cache_timeout: float = ...
cache: BaseCache = ... cache: BaseCache = ...
def __init__(self, get_response: None = ..., cache_timeout: Optional[float] = ..., **kwargs: Any) -> None: ... def __init__(
self, get_response: Optional[Callable] = ..., cache_timeout: Optional[float] = ..., **kwargs: Any
) -> None: ...

View File

@@ -1,10 +1,10 @@
from typing import Any from typing import Any
from django.core.handlers.wsgi import WSGIRequest from django.http.request import HttpRequest
from django.http.response import HttpResponseBase from django.http.response import HttpResponseBase
from django.utils.deprecation import MiddlewareMixin from django.utils.deprecation import MiddlewareMixin
re_accepts_gzip: Any re_accepts_gzip: Any
class GZipMiddleware(MiddlewareMixin): class GZipMiddleware(MiddlewareMixin):
def process_response(self, request: WSGIRequest, response: HttpResponseBase) -> HttpResponseBase: ... def process_response(self, request: HttpRequest, response: HttpResponseBase) -> HttpResponseBase: ...

View File

@@ -1,7 +1,7 @@
from django.core.handlers.wsgi import WSGIRequest from django.http.request import HttpRequest
from django.http.response import HttpResponseBase from django.http.response import HttpResponseBase
from django.utils.deprecation import MiddlewareMixin from django.utils.deprecation import MiddlewareMixin
class ConditionalGetMiddleware(MiddlewareMixin): class ConditionalGetMiddleware(MiddlewareMixin):
def process_response(self, request: WSGIRequest, response: HttpResponseBase) -> HttpResponseBase: ... def process_response(self, request: HttpRequest, response: HttpResponseBase) -> HttpResponseBase: ...
def needs_etag(self, response: HttpResponseBase) -> bool: ... def needs_etag(self, response: HttpResponseBase) -> bool: ...

View File

@@ -1,10 +1,10 @@
from typing import Any from typing import Any
from django.core.handlers.wsgi import WSGIRequest from django.http.request import HttpRequest
from django.http.response import HttpResponseBase from django.http.response import HttpResponseBase
from django.utils.deprecation import MiddlewareMixin from django.utils.deprecation import MiddlewareMixin
class LocaleMiddleware(MiddlewareMixin): class LocaleMiddleware(MiddlewareMixin):
response_redirect_class: Any = ... response_redirect_class: Any = ...
def process_request(self, request: WSGIRequest) -> None: ... def process_request(self, request: HttpRequest) -> None: ...
def process_response(self, request: WSGIRequest, response: HttpResponseBase) -> HttpResponseBase: ... def process_response(self, request: HttpRequest, response: HttpResponseBase) -> HttpResponseBase: ...

View File

@@ -1,6 +1,6 @@
from typing import Any, Optional, List from typing import Any, List, Optional
from django.core.handlers.wsgi import WSGIRequest from django.http.request import HttpRequest
from django.http.response import HttpResponse, HttpResponsePermanentRedirect from django.http.response import HttpResponse, HttpResponsePermanentRedirect
from django.utils.deprecation import MiddlewareMixin from django.utils.deprecation import MiddlewareMixin
@@ -13,5 +13,5 @@ class SecurityMiddleware(MiddlewareMixin):
redirect: bool = ... redirect: bool = ...
redirect_host: Optional[str] = ... redirect_host: Optional[str] = ...
redirect_exempt: List[Any] = ... redirect_exempt: List[Any] = ...
def process_request(self, request: WSGIRequest) -> Optional[HttpResponsePermanentRedirect]: ... def process_request(self, request: HttpRequest) -> Optional[HttpResponsePermanentRedirect]: ...
def process_response(self, request: WSGIRequest, response: HttpResponse) -> HttpResponse: ... def process_response(self, request: HttpRequest, response: HttpResponse) -> HttpResponse: ...

View File

@@ -9,8 +9,6 @@ from django.http.cookie import SimpleCookie
from django.http.request import HttpRequest from django.http.request import HttpRequest
from django.http.response import HttpResponse, HttpResponseBase from django.http.response import HttpResponse, HttpResponseBase
from django.core.handlers.wsgi import WSGIRequest
BOUNDARY: str = ... BOUNDARY: str = ...
MULTIPART_CONTENT: str = ... MULTIPART_CONTENT: str = ...
CONTENT_TYPE_RE: Pattern = ... CONTENT_TYPE_RE: Pattern = ...
@@ -42,13 +40,13 @@ class RequestFactory:
cookies: SimpleCookie = ... cookies: SimpleCookie = ...
errors: BytesIO = ... errors: BytesIO = ...
def __init__(self, *, json_encoder: Any = ..., **defaults: Any) -> None: ... def __init__(self, *, json_encoder: Any = ..., **defaults: Any) -> None: ...
def request(self, **request: Any) -> WSGIRequest: ... def request(self, **request: Any) -> HttpRequest: ...
def get(self, path: str, data: Any = ..., secure: bool = ..., **extra: Any) -> WSGIRequest: ... def get(self, path: str, data: Any = ..., secure: bool = ..., **extra: Any) -> HttpRequest: ...
def post( def post(
self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any
) -> WSGIRequest: ... ) -> HttpRequest: ...
def head(self, path: str, data: Any = ..., secure: bool = ..., **extra: Any) -> WSGIRequest: ... def head(self, path: str, data: Any = ..., secure: bool = ..., **extra: Any) -> HttpRequest: ...
def trace(self, path: str, secure: bool = ..., **extra: Any) -> WSGIRequest: ... def trace(self, path: str, secure: bool = ..., **extra: Any) -> HttpRequest: ...
def options( def options(
self, self,
path: str, path: str,
@@ -56,16 +54,16 @@ class RequestFactory:
content_type: str = ..., content_type: str = ...,
secure: bool = ..., secure: bool = ...,
**extra: Any **extra: Any
) -> WSGIRequest: ... ) -> HttpRequest: ...
def put( def put(
self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any
) -> WSGIRequest: ... ) -> HttpRequest: ...
def patch( def patch(
self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any
) -> WSGIRequest: ... ) -> HttpRequest: ...
def delete( def delete(
self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any
) -> WSGIRequest: ... ) -> HttpRequest: ...
def generic( def generic(
self, self,
method: str, method: str,
@@ -74,7 +72,7 @@ class RequestFactory:
content_type: Optional[str] = ..., content_type: Optional[str] = ...,
secure: bool = ..., secure: bool = ...,
**extra: Any **extra: Any
) -> WSGIRequest: ... ) -> HttpRequest: ...
class Client: class Client:
json_encoder: Type[DjangoJSONEncoder] = ... json_encoder: Type[DjangoJSONEncoder] = ...

View File

@@ -1,5 +1,5 @@
from html.parser import HTMLParser from html.parser import HTMLParser
from typing import Any, List, Optional, Tuple, Union, TypeVar, Iterable, Sequence from typing import Any, List, Optional, Sequence, Tuple, TypeVar, Union
_Self = TypeVar("_Self") _Self = TypeVar("_Self")

View File

@@ -1,22 +1,14 @@
from typing import Any, Callable, Dict, List, Tuple, Type, Union from typing import Any
from django.test import LiveServerTestCase from django.test import LiveServerTestCase
class SeleniumTestCaseBase: class SeleniumTestCaseBase:
browsers: Any = ... browsers: Any = ...
browser: Any = ... browser: Any = ...
def __new__(
cls: Type[SeleniumTestCaseBase],
name: str,
bases: Tuple[Type[SeleniumTestCase]],
attrs: Dict[str, Union[Callable, List[str], str]],
) -> Type[SeleniumTestCase]: ...
@classmethod @classmethod
def import_webdriver(cls, browser: Any): ... def import_webdriver(cls, browser: Any): ...
def create_webdriver(self): ... def create_webdriver(self): ...
class SeleniumTestCase(LiveServerTestCase): class SeleniumTestCase(LiveServerTestCase):
implicit_wait: int = ... implicit_wait: int = ...
@classmethod
def setUpClass(cls) -> None: ...
def disable_implicit_wait(self) -> None: ... def disable_implicit_wait(self) -> None: ...

View File

@@ -18,14 +18,9 @@ from django.utils.safestring import SafeText
from django.db import connections as connections from django.db import connections as connections
class _AssertNumQueriesContext(CaptureQueriesContext): class _AssertNumQueriesContext(CaptureQueriesContext):
connection: Any
final_queries: Optional[int]
force_debug_cursor: bool
initial_queries: int
test_case: SimpleTestCase = ... test_case: SimpleTestCase = ...
num: int = ... num: int = ...
def __init__(self, test_case: Any, num: Any, connection: Any) -> None: ... def __init__(self, test_case: Any, num: Any, connection: Any) -> None: ...
def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any): ...
class _AssertTemplateUsedContext: class _AssertTemplateUsedContext:
test_case: SimpleTestCase = ... test_case: SimpleTestCase = ...
@@ -40,14 +35,7 @@ class _AssertTemplateUsedContext:
def __enter__(self): ... def __enter__(self): ...
def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any): ... def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any): ...
class _AssertTemplateNotUsedContext(_AssertTemplateUsedContext): class _AssertTemplateNotUsedContext(_AssertTemplateUsedContext): ...
context: ContextList
rendered_template_names: List[str]
rendered_templates: List[Template]
template_name: str
test_case: SimpleTestCase
def test(self): ...
def message(self): ...
class _CursorFailure: class _CursorFailure:
cls_name: str = ... cls_name: str = ...
@@ -59,10 +47,6 @@ class SimpleTestCase(unittest.TestCase):
client_class: Any = ... client_class: Any = ...
client: Client client: Client
allow_database_queries: bool = ... allow_database_queries: bool = ...
@classmethod
def setUpClass(cls) -> None: ...
@classmethod
def tearDownClass(cls) -> None: ...
def __call__(self, result: unittest.TestResult = ...) -> None: ... def __call__(self, result: unittest.TestResult = ...) -> None: ...
def settings(self, **kwargs: Any) -> Any: ... def settings(self, **kwargs: Any) -> Any: ...
def modify_settings(self, **kwargs: Any) -> Any: ... def modify_settings(self, **kwargs: Any) -> Any: ...
@@ -150,7 +134,6 @@ class TransactionTestCase(SimpleTestCase):
fixtures: Any = ... fixtures: Any = ...
multi_db: bool = ... multi_db: bool = ...
serialized_rollback: bool = ... serialized_rollback: bool = ...
allow_database_queries: bool = ...
def assertQuerysetEqual( def assertQuerysetEqual(
self, self,
qs: Union[Iterator[Any], List[Model], QuerySet, RawQuerySet], qs: Union[Iterator[Any], List[Model], QuerySet, RawQuerySet],
@@ -164,10 +147,6 @@ class TransactionTestCase(SimpleTestCase):
) -> Optional[_AssertNumQueriesContext]: ... ) -> Optional[_AssertNumQueriesContext]: ...
class TestCase(TransactionTestCase): class TestCase(TransactionTestCase):
@classmethod
def setUpClass(cls) -> None: ...
@classmethod
def tearDownClass(cls) -> None: ...
@classmethod @classmethod
def setUpTestData(cls) -> None: ... def setUpTestData(cls) -> None: ...
@@ -181,17 +160,14 @@ def skipIfDBFeature(*features: Any) -> Callable: ...
def skipUnlessDBFeature(*features: Any) -> Callable: ... def skipUnlessDBFeature(*features: Any) -> Callable: ...
def skipUnlessAnyDBFeature(*features: Any) -> Callable: ... def skipUnlessAnyDBFeature(*features: Any) -> Callable: ...
class QuietWSGIRequestHandler(WSGIRequestHandler): class QuietWSGIRequestHandler(WSGIRequestHandler): ...
def log_message(*args: Any) -> None: ...
class FSFilesHandler(WSGIHandler): class FSFilesHandler(WSGIHandler):
application: Any = ... application: Any = ...
base_url: Any = ... base_url: Any = ...
def __init__(self, application: Any) -> None: ... def __init__(self, application: Any) -> None: ...
def file_path(self, url: Any): ... def file_path(self, url: Any): ...
def get_response(self, request: Any): ...
def serve(self, request: Any): ... def serve(self, request: Any): ...
def __call__(self, environ: Any, start_response: Any): ...
class _StaticFilesHandler(FSFilesHandler): class _StaticFilesHandler(FSFilesHandler):
def get_base_dir(self): ... def get_base_dir(self): ...
@@ -216,7 +192,6 @@ class LiveServerThread(threading.Thread):
port: int = ..., port: int = ...,
) -> None: ... ) -> None: ...
httpd: ThreadedWSGIServer = ... httpd: ThreadedWSGIServer = ...
def run(self) -> None: ...
def terminate(self) -> None: ... def terminate(self) -> None: ...
class LiveServerTestCase(TransactionTestCase): class LiveServerTestCase(TransactionTestCase):
@@ -225,10 +200,6 @@ class LiveServerTestCase(TransactionTestCase):
server_thread_class: Any = ... server_thread_class: Any = ...
static_handler: Any = ... static_handler: Any = ...
def live_server_url(cls): ... def live_server_url(cls): ...
@classmethod
def setUpClass(cls) -> None: ...
@classmethod
def tearDownClass(cls) -> None: ...
class SerializeMixin: class SerializeMixin:
lockfile: Any = ... lockfile: Any = ...

View File

@@ -66,15 +66,15 @@ class override_system_checks(TestContextDecorator):
class CaptureQueriesContext: class CaptureQueriesContext:
connection: Any = ... connection: Any = ...
force_debug_cursor: bool = ...
initial_queries: int = ...
final_queries: Optional[int] = ...
def __init__(self, connection: Any) -> None: ... def __init__(self, connection: Any) -> None: ...
def __iter__(self): ... def __iter__(self): ...
def __getitem__(self, index: int) -> Dict[str, str]: ... def __getitem__(self, index: int) -> Dict[str, str]: ...
def __len__(self) -> int: ... def __len__(self) -> int: ...
@property @property
def captured_queries(self) -> List[Dict[str, str]]: ... def captured_queries(self) -> List[Dict[str, str]]: ...
force_debug_cursor: bool = ...
initial_queries: int = ...
final_queries: Optional[int] = ...
def __enter__(self) -> CaptureQueriesContext: ... def __enter__(self) -> CaptureQueriesContext: ...
def __exit__(self, exc_type: None, exc_value: None, traceback: None) -> None: ... def __exit__(self, exc_type: None, exc_value: None, traceback: None) -> None: ...

View File

@@ -1,8 +1,7 @@
from typing import Optional from typing import Optional
from django.core.handlers.wsgi import WSGIRequest from django.http.request import HttpRequest
from django.http.response import ( from django.http.response import (
Http404,
HttpResponseBadRequest, HttpResponseBadRequest,
HttpResponseForbidden, HttpResponseForbidden,
HttpResponseNotFound, HttpResponseNotFound,
@@ -15,10 +14,10 @@ ERROR_400_TEMPLATE_NAME: str
ERROR_500_TEMPLATE_NAME: str ERROR_500_TEMPLATE_NAME: str
def page_not_found( def page_not_found(
request: WSGIRequest, exception: Optional[Http404], template_name: str = ... request: HttpRequest, exception: Optional[Exception], template_name: str = ...
) -> HttpResponseNotFound: ... ) -> HttpResponseNotFound: ...
def server_error(request: WSGIRequest, template_name: str = ...) -> HttpResponseServerError: ... def server_error(request: HttpRequest, template_name: str = ...) -> HttpResponseServerError: ...
def bad_request(request: WSGIRequest, exception: Exception, template_name: str = ...) -> HttpResponseBadRequest: ... def bad_request(request: HttpRequest, exception: Exception, template_name: str = ...) -> HttpResponseBadRequest: ...
def permission_denied( def permission_denied(
request: WSGIRequest, exception: Exception, template_name: str = ... request: HttpRequest, exception: Exception, template_name: str = ...
) -> HttpResponseForbidden: ... ) -> HttpResponseForbidden: ...