From b686751f193fc4981935f3bf2be5a84f71b62b95 Mon Sep 17 00:00:00 2001 From: Maxim Kurnikov Date: Fri, 22 Feb 2019 02:55:49 +0300 Subject: [PATCH] fix some stubs --- django-stubs/contrib/admin/options.pyi | 157 +++++++++--------- django-stubs/contrib/redirects/middleware.pyi | 4 +- .../contrib/sessions/base_session.pyi | 15 +- django-stubs/contrib/sessions/models.pyi | 18 +- django-stubs/contrib/sessions/serializers.pyi | 2 +- django-stubs/contrib/sitemaps/__init__.pyi | 10 +- django-stubs/contrib/sitemaps/views.pyi | 11 +- django-stubs/core/cache/__init__.pyi | 2 +- django-stubs/core/cache/utils.pyi | 4 +- django-stubs/core/handlers/base.pyi | 6 +- django-stubs/core/handlers/exception.pyi | 6 +- django-stubs/core/mail/__init__.pyi | 33 ++-- django-stubs/core/mail/message.pyi | 16 +- django-stubs/db/migrations/graph.pyi | 5 - django-stubs/db/migrations/loader.pyi | 6 +- django-stubs/db/migrations/migration.pyi | 3 +- .../db/migrations/operations/__init__.pyi | 4 - .../db/migrations/operations/base.pyi | 3 +- .../db/migrations/operations/models.pyi | 2 - .../db/migrations/operations/special.pyi | 7 +- .../db/migrations/operations/utils.pyi | 3 +- django-stubs/db/migrations/optimizer.pyi | 6 +- django-stubs/db/migrations/questioner.pyi | 29 +--- django-stubs/db/migrations/recorder.pyi | 5 +- django-stubs/db/migrations/serializer.pyi | 90 +++------- django-stubs/db/migrations/state.pyi | 3 +- .../db/migrations/topological_sort.pyi | 2 +- django-stubs/db/migrations/utils.pyi | 6 +- django-stubs/db/migrations/writer.pyi | 5 +- django-stubs/forms/utils.pyi | 5 +- django-stubs/http/response.pyi | 18 +- django-stubs/middleware/cache.pyi | 6 +- django-stubs/middleware/gzip.pyi | 4 +- django-stubs/middleware/http.pyi | 4 +- django-stubs/middleware/locale.pyi | 6 +- django-stubs/middleware/security.pyi | 8 +- django-stubs/test/client.pyi | 22 ++- django-stubs/test/html.pyi | 2 +- django-stubs/test/selenium.pyi | 10 +- django-stubs/test/testcases.pyi | 33 +--- django-stubs/test/utils.pyi | 6 +- django-stubs/views/defaults.pyi | 11 +- 42 files changed, 217 insertions(+), 381 deletions(-) diff --git a/django-stubs/contrib/admin/options.pyi b/django-stubs/contrib/admin/options.pyi index 70f3395..a26bf36 100644 --- a/django-stubs/contrib/admin/options.pyi +++ b/django-stubs/contrib/admin/options.pyi @@ -1,5 +1,5 @@ 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.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.contenttypes.models import ContentType from django.core.checks.messages import Error -from django.core.handlers.wsgi import WSGIRequest from django.core.paginator import Paginator from django.db.models.base import Model 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.models import ModelChoiceField, ModelMultipleChoiceField from django.forms.widgets import Media +from django.http.request import HttpRequest from django.http.response import HttpResponse, HttpResponseBase, HttpResponseRedirect, JsonResponse +from django.template.response import TemplateResponse from django.urls.resolvers import URLPattern from django.utils.safestring import SafeText from django.db.models.fields import Field -from django.template.response import TemplateResponse IS_POPUP_VAR: str TO_FIELD_VAR: str @@ -58,40 +58,40 @@ class BaseModelAdmin: def check(self, **kwargs: Any) -> List[Union[str, Error]]: ... def __init__(self) -> None: ... def formfield_for_dbfield( - self, db_field: Field, request: Optional[WSGIRequest], **kwargs: Any + self, db_field: Field, request: Optional[HttpRequest], **kwargs: Any ) -> Optional[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: ... def get_field_queryset( - self, db: None, db_field: RelatedField, request: Optional[WSGIRequest] + self, db: None, db_field: RelatedField, request: Optional[HttpRequest] ) -> Optional[QuerySet]: ... def formfield_for_foreignkey( - self, db_field: ForeignKey, request: Optional[WSGIRequest], **kwargs: Any + self, db_field: ForeignKey, request: Optional[HttpRequest], **kwargs: Any ) -> Optional[ModelChoiceField]: ... def formfield_for_manytomany( - self, db_field: ManyToManyField, request: Optional[WSGIRequest], **kwargs: Any + self, db_field: ManyToManyField, request: Optional[HttpRequest], **kwargs: Any ) -> 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_empty_value_display(self) -> SafeText: ... - def get_exclude(self, request: WSGIRequest, obj: Optional[Model] = ...) -> Any: ... - def get_fields(self, request: WSGIRequest, obj: Optional[Model] = ...) -> Sequence[Union[Callable, str]]: ... + def get_exclude(self, request: HttpRequest, obj: Optional[Model] = ...) -> Any: ... + def get_fields(self, request: HttpRequest, obj: Optional[Model] = ...) -> Sequence[Union[Callable, str]]: ... def get_fieldsets( - self, request: WSGIRequest, obj: Optional[Model] = ... + self, request: HttpRequest, obj: Optional[Model] = ... ) -> List[Tuple[Optional[str], Dict[str, Any]]]: ... - def get_ordering(self, request: WSGIRequest) -> Union[List[str], Tuple]: ... - def get_readonly_fields(self, request: WSGIRequest, obj: Optional[Model] = ...) -> Union[List[str], Tuple]: ... - def get_prepopulated_fields(self, request: WSGIRequest, obj: Optional[Model] = ...) -> Dict[str, Tuple[str]]: ... - def get_queryset(self, request: WSGIRequest) -> QuerySet: ... - def get_sortable_by(self, request: WSGIRequest) -> Union[List[Callable], List[str], Tuple]: ... + def get_ordering(self, request: HttpRequest) -> Union[List[str], Tuple]: ... + def get_readonly_fields(self, request: HttpRequest, obj: Optional[Model] = ...) -> Union[List[str], Tuple]: ... + def get_prepopulated_fields(self, request: HttpRequest, obj: Optional[Model] = ...) -> Dict[str, Tuple[str]]: ... + def get_queryset(self, request: HttpRequest) -> QuerySet: ... + def get_sortable_by(self, request: HttpRequest) -> Union[List[Callable], List[str], Tuple]: ... def lookup_allowed(self, lookup: str, value: str) -> bool: ... - def to_field_allowed(self, request: WSGIRequest, to_field: str) -> bool: ... - def has_add_permission(self, request: WSGIRequest, obj: Optional[Model] = ...) -> bool: ... - 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: ... - def has_module_permission(self, request: WSGIRequest) -> bool: ... + def to_field_allowed(self, request: HttpRequest, to_field: str) -> bool: ... + def has_add_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ... + def has_change_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ... + def has_delete_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ... + def has_view_permission(self, request: HttpRequest, obj: Optional[Model] = ...) -> bool: ... + def has_module_permission(self, request: HttpRequest) -> bool: ... class ModelAdmin(BaseModelAdmin): formfield_overrides: Any @@ -127,54 +127,54 @@ class ModelAdmin(BaseModelAdmin): opts: Options = ... admin_site: AdminSite = ... 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]: ... @property def urls(self) -> List[URLPattern]: ... @property 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_changelist(self, request: WSGIRequest, **kwargs: Any) -> Type[ChangeList]: ... - def get_changelist_instance(self, request: WSGIRequest) -> ChangeList: ... - def get_object(self, request: WSGIRequest, object_id: str, from_field: None = ...) -> Optional[Model]: ... + def get_changelist(self, request: HttpRequest, **kwargs: Any) -> Type[ChangeList]: ... + def get_changelist_instance(self, request: HttpRequest) -> ChangeList: ... + 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_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( self, - request: WSGIRequest, + request: HttpRequest, queryset: QuerySet, per_page: int, orphans: int = ..., allow_empty_first_page: bool = ..., ) -> Paginator: ... - def log_addition(self, request: WSGIRequest, object: Model, message: Any) -> LogEntry: ... - def log_change(self, request: WSGIRequest, object: Model, message: Any) -> LogEntry: ... - def log_deletion(self, request: WSGIRequest, object: Model, object_repr: str) -> LogEntry: ... + def log_addition(self, request: HttpRequest, object: Model, message: Any) -> LogEntry: ... + def log_change(self, request: HttpRequest, object: Model, message: Any) -> LogEntry: ... + def log_deletion(self, request: HttpRequest, object: Model, object_repr: str) -> LogEntry: ... 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( - self, request: WSGIRequest, default_choices: List[Tuple[str, str]] = ... + self, request: HttpRequest, default_choices: List[Tuple[str, str]] = ... ) -> List[Tuple[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_links(self, request: WSGIRequest, list_display: Sequence[str]) -> Optional[Sequence[str]]: ... - def get_list_filter(self, request: WSGIRequest) -> Sequence[str]: ... - def get_list_select_related(self, request: WSGIRequest) -> Sequence[str]: ... - def get_search_fields(self, request: WSGIRequest) -> List[str]: ... + def get_list_display(self, request: HttpRequest) -> Sequence[str]: ... + def get_list_display_links(self, request: HttpRequest, list_display: Sequence[str]) -> Optional[Sequence[str]]: ... + def get_list_filter(self, request: HttpRequest) -> Sequence[str]: ... + def get_list_select_related(self, request: HttpRequest) -> Sequence[str]: ... + def get_search_fields(self, request: HttpRequest) -> List[str]: ... def get_search_results( - self, request: WSGIRequest, queryset: QuerySet, search_term: str + self, request: HttpRequest, queryset: QuerySet, search_term: str ) -> Tuple[QuerySet, bool]: ... - def get_preserved_filters(self, request: WSGIRequest) -> str: ... - def _get_edited_object_pks(self, request: WSGIRequest, prefix: str) -> List[str]: ... - def _get_list_editable_queryset(self, request: WSGIRequest, prefix: str) -> QuerySet: ... + def get_preserved_filters(self, request: HttpRequest) -> str: ... + def _get_edited_object_pks(self, request: HttpRequest, prefix: str) -> List[str]: ... + def _get_list_editable_queryset(self, request: HttpRequest, prefix: str) -> QuerySet: ... 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]]]]: ... def message_user( self, - request: WSGIRequest, + request: HttpRequest, message: str, level: Union[int, str] = ..., extra_tags: str = ..., @@ -182,8 +182,8 @@ class ModelAdmin(BaseModelAdmin): ) -> None: ... def save_form(self, request: Any, form: Any, change: Any): ... def save_model(self, request: Any, obj: Any, form: Any, change: Any) -> None: ... - def delete_model(self, request: WSGIRequest, obj: Model) -> None: ... - def delete_queryset(self, request: WSGIRequest, queryset: QuerySet) -> None: ... + def delete_model(self, request: HttpRequest, obj: Model) -> 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_related(self, request: Any, form: Any, formsets: Any, change: Any) -> None: ... def render_change_form( @@ -196,52 +196,51 @@ class ModelAdmin(BaseModelAdmin): obj: Optional[Any] = ..., ): ... def response_add( - self, request: WSGIRequest, obj: Model, post_url_continue: Optional[str] = ... + self, request: HttpRequest, obj: Model, post_url_continue: Optional[str] = ... ) -> HttpResponse: ... - def response_change(self, request: WSGIRequest, obj: Model) -> HttpResponse: ... - def response_post_save_add(self, request: WSGIRequest, obj: Model) -> HttpResponseRedirect: ... - def response_post_save_change(self, request: WSGIRequest, obj: Model) -> HttpResponseRedirect: ... - def response_action(self, request: WSGIRequest, queryset: QuerySet) -> Optional[HttpResponseBase]: ... - def response_delete(self, request: WSGIRequest, obj_display: str, obj_id: int) -> HttpResponse: ... + def response_change(self, request: HttpRequest, obj: Model) -> HttpResponse: ... + def response_post_save_add(self, request: HttpRequest, obj: Model) -> HttpResponseRedirect: ... + def response_post_save_change(self, request: HttpRequest, obj: Model) -> HttpResponseRedirect: ... + def response_action(self, request: HttpRequest, queryset: QuerySet) -> Optional[HttpResponseBase]: ... + def response_delete(self, request: HttpRequest, obj_display: str, obj_id: int) -> HttpResponse: ... def render_delete_form(self, request: Any, context: Any): ... 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]: ... - 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( self, - request: WSGIRequest, + request: HttpRequest, object_id: Optional[str] = ..., form_url: str = ..., extra_context: Optional[Dict[str, bool]] = ..., ) -> Any: ... - def autocomplete_view(self, request: WSGIRequest) -> JsonResponse: ... - def add_view(self, request: WSGIRequest, form_url: str = ..., extra_context: None = ...) -> HttpResponse: ... + def autocomplete_view(self, request: HttpRequest) -> JsonResponse: ... + def add_view(self, request: HttpRequest, form_url: str = ..., extra_context: None = ...) -> HttpResponse: ... 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: ... def changelist_view( - self, request: WSGIRequest, extra_context: Optional[Dict[str, str]] = ... + self, request: HttpRequest, extra_context: Optional[Dict[str, str]] = ... ) -> TemplateResponse: ... def get_deleted_objects( - self, objs: QuerySet, request: WSGIRequest + self, objs: QuerySet, request: HttpRequest ) -> Tuple[List[Any], Dict[Any, Any], Set[Any], List[Any]]: ... - def delete_view(self, request: WSGIRequest, object_id: str, extra_context: None = ...) -> Any: ... - def history_view(self, request: WSGIRequest, object_id: str, extra_context: None = ...) -> HttpResponse: ... + def delete_view(self, request: HttpRequest, object_id: str, extra_context: None = ...) -> Any: ... + def history_view(self, request: HttpRequest, object_id: str, extra_context: None = ...) -> HttpResponse: ... class InlineModelAdmin(BaseModelAdmin): model: Any = ... fk_name: Any = ... formset: Any = ... extra: int = ... - min_num: Any = ... - max_num: Any = ... - template: Any = ... - verbose_name: Any = ... - verbose_name_plural: Any = ... + min_num: Optional[int] = ... + max_num: Optional[int] = ... + template: str = ... + verbose_name: Optional[str] = ... + verbose_name_plural: Optional[str] = ... can_delete: bool = ... show_change_link: bool = ... - checks_class: Any = ... classes: Any = ... admin_site: Any = ... parent_model: Any = ... @@ -250,18 +249,10 @@ class InlineModelAdmin(BaseModelAdmin): def __init__(self, parent_model: Union[Type[Model], Model], admin_site: AdminSite) -> None: ... @property def media(self) -> Media: ... - def get_extra(self, request: WSGIRequest, obj: Optional[Model] = ..., **kwargs: Any) -> int: ... - def get_min_num(self, request: WSGIRequest, obj: Optional[Model] = ..., **kwargs: Any) -> None: ... - def get_max_num(self, request: WSGIRequest, obj: Optional[Model] = ..., **kwargs: Any) -> Optional[int]: ... - fields: Any = ... + def get_extra(self, request: HttpRequest, obj: Optional[Model] = ..., **kwargs: Any) -> int: ... + def get_min_num(self, request: HttpRequest, obj: Optional[Model] = ..., **kwargs: Any) -> Optional[int]: ... + def get_max_num(self, request: HttpRequest, obj: Optional[Model] = ..., **kwargs: Any) -> Optional[int]: ... 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): - template: str = ... - -class TabularInline(InlineModelAdmin): - template: str = ... +class StackedInline(InlineModelAdmin): ... +class TabularInline(InlineModelAdmin): ... diff --git a/django-stubs/contrib/redirects/middleware.pyi b/django-stubs/contrib/redirects/middleware.pyi index 398770b..10b8304 100644 --- a/django-stubs/contrib/redirects/middleware.pyi +++ b/django-stubs/contrib/redirects/middleware.pyi @@ -1,10 +1,10 @@ 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.utils.deprecation import MiddlewareMixin class RedirectFallbackMiddleware(MiddlewareMixin): response_gone_class: Any = ... response_redirect_class: Any = ... - def process_response(self, request: WSGIRequest, response: HttpResponse) -> HttpResponse: ... + def process_response(self, request: HttpRequest, response: HttpResponse) -> HttpResponse: ... diff --git a/django-stubs/contrib/sessions/base_session.pyi b/django-stubs/contrib/sessions/base_session.pyi index c587fa9..1578fa7 100644 --- a/django-stubs/contrib/sessions/base_session.pyi +++ b/django-stubs/contrib/sessions/base_session.pyi @@ -1,20 +1,19 @@ 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 class BaseSessionManager(models.Manager): - creation_counter: int - model: None - name: None def encode(self, session_dict: Dict[str, int]) -> str: ... def save(self, session_key: str, session_dict: Dict[str, int], expire_date: datetime) -> AbstractBaseSession: ... class AbstractBaseSession(models.Model): - session_key: Any = ... - session_data: Any = ... - expire_date: Any = ... + expire_date: datetime + session_data: str + session_key: str objects: Any = ... @classmethod - def get_session_store_class(cls) -> None: ... + def get_session_store_class(cls) -> Optional[Type[SessionBase]]: ... def get_decoded(self) -> Dict[str, int]: ... diff --git a/django-stubs/contrib/sessions/models.pyi b/django-stubs/contrib/sessions/models.pyi index 581141d..08b30ef 100644 --- a/django-stubs/contrib/sessions/models.pyi +++ b/django-stubs/contrib/sessions/models.pyi @@ -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 -class SessionManager(BaseSessionManager): - creation_counter: int - 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]: ... +class SessionManager(BaseSessionManager): ... +class Session(AbstractBaseSession): ... diff --git a/django-stubs/contrib/sessions/serializers.pyi b/django-stubs/contrib/sessions/serializers.pyi index 1a8bec2..5c0eb15 100644 --- a/django-stubs/contrib/sessions/serializers.pyi +++ b/django-stubs/contrib/sessions/serializers.pyi @@ -1,4 +1,4 @@ -from typing import Any, Dict, Optional +from typing import Dict from django.core.signing import JSONSerializer as BaseJSONSerializer from django.db.models.base import Model diff --git a/django-stubs/contrib/sitemaps/__init__.pyi b/django-stubs/contrib/sitemaps/__init__.pyi index 592a101..3917df2 100644 --- a/django-stubs/contrib/sitemaps/__init__.pyi +++ b/django-stubs/contrib/sitemaps/__init__.pyi @@ -11,7 +11,7 @@ PING_URL: str 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: limit: int = ... @@ -22,14 +22,14 @@ class Sitemap: def paginator(self) -> Paginator: ... def get_urls( 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): - priority: None = ... - changefreq: None = ... + priority: Optional[float] = ... + changefreq: Optional[str] = ... queryset: QuerySet = ... date_field: None = ... - protocol: None = ... + protocol: Optional[str] = ... def __init__( self, info_dict: Dict[str, Union[datetime, QuerySet, str]], diff --git a/django-stubs/contrib/sitemaps/views.pyi b/django-stubs/contrib/sitemaps/views.pyi index 8450fac..fb7a639 100644 --- a/django-stubs/contrib/sitemaps/views.pyi +++ b/django-stubs/contrib/sitemaps/views.pyi @@ -1,20 +1,21 @@ 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.core.handlers.wsgi import WSGIRequest -from django.template.response import TemplateResponse def x_robots_tag(func: Callable) -> Callable: ... def index( - request: WSGIRequest, + request: HttpRequest, sitemaps: Dict[str, Union[Type[Sitemap], Sitemap]], template_name: str = ..., content_type: str = ..., sitemap_url_name: str = ..., ) -> TemplateResponse: ... def sitemap( - request: WSGIRequest, + request: HttpRequest, sitemaps: Union[Dict[str, Type[Sitemap]], Dict[str, GenericSitemap], OrderedDict], section: Optional[str] = ..., template_name: str = ..., diff --git a/django-stubs/core/cache/__init__.pyi b/django-stubs/core/cache/__init__.pyi index 301bc8f..e198142 100644 --- a/django-stubs/core/cache/__init__.pyi +++ b/django-stubs/core/cache/__init__.pyi @@ -1,7 +1,7 @@ from collections import OrderedDict 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 diff --git a/django-stubs/core/cache/utils.pyi b/django-stubs/core/cache/utils.pyi index ea5d6e5..76df119 100644 --- a/django-stubs/core/cache/utils.pyi +++ b/django-stubs/core/cache/utils.pyi @@ -1,5 +1,5 @@ -from typing import Any, List, Optional, Union +from typing import Any, Iterable, Optional 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: ... diff --git a/django-stubs/core/handlers/base.pyi b/django-stubs/core/handlers/base.pyi index 03b89fe..2be4169 100644 --- a/django-stubs/core/handlers/base.pyi +++ b/django-stubs/core/handlers/base.pyi @@ -1,6 +1,6 @@ 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 logger: Any @@ -13,5 +13,5 @@ class BaseHandler: def load_middleware(self) -> None: ... def make_view_atomic(self, view: Callable) -> Callable: ... def get_exception_response(self, request: Any, resolver: Any, status_code: Any, exception: Any): ... - def get_response(self, request: WSGIRequest) -> HttpResponseBase: ... - def process_exception_by_middleware(self, exception: Exception, request: WSGIRequest) -> HttpResponse: ... + def get_response(self, request: HttpRequest) -> HttpResponseBase: ... + def process_exception_by_middleware(self, exception: Exception, request: HttpRequest) -> HttpResponse: ... diff --git a/django-stubs/core/handlers/exception.pyi b/django-stubs/core/handlers/exception.pyi index 115a69d..ef4de5f 100644 --- a/django-stubs/core/handlers/exception.pyi +++ b/django-stubs/core/handlers/exception.pyi @@ -1,12 +1,12 @@ 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.urls.resolvers import URLResolver 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( - request: WSGIRequest, resolver: URLResolver, status_code: int, exception: Exception, sender: None = ... + request: HttpRequest, resolver: URLResolver, status_code: int, exception: Exception, sender: None = ... ) -> HttpResponse: ... def handle_uncaught_exception(request: Any, resolver: Any, exc_info: Any): ... diff --git a/django-stubs/core/mail/__init__.pyi b/django-stubs/core/mail/__init__.pyi index 42e3589..40d7c6a 100644 --- a/django-stubs/core/mail/__init__.pyi +++ b/django-stubs/core/mail/__init__.pyi @@ -1,15 +1,16 @@ from typing import Any, List, Optional, Tuple -from django.core.mail.backends.base import BaseEmailBackend -from django.core.mail.message import DEFAULT_ATTACHMENT_MIME_TYPE as DEFAULT_ATTACHMENT_MIME_TYPE -from django.core.mail.message import BadHeaderError as BadHeaderError -from django.core.mail.message import EmailMessage as EmailMessage -from django.core.mail.message import EmailMultiAlternatives as EmailMultiAlternatives -from django.core.mail.message import SafeMIMEMultipart as SafeMIMEMultipart -from django.core.mail.message import SafeMIMEText as SafeMIMEText -from django.core.mail.message import forbid_multi_line_headers as forbid_multi_line_headers -from django.core.mail.utils import DNS_NAME as DNS_NAME -from django.core.mail.utils import CachedDnsName as CachedDnsName +from .backends.base import BaseEmailBackend +from .message import ( + BadHeaderError as BadHeaderError, + DEFAULT_ATTACHMENT_MIME_TYPE as DEFAULT_ATTACHMENT_MIME_TYPE, + EmailMessage as EmailMessage, + EmailMultiAlternatives as EmailMultiAlternatives, + SafeMIMEMultipart as SafeMIMEMultipart, + SafeMIMEText as SafeMIMEText, + forbid_multi_line_headers as forbid_multi_line_headers, +) +from .utils import CachedDnsName as CachedDnsName, DNS_NAME as DNS_NAME def get_connection(backend: Optional[str] = ..., fail_silently: bool = ..., **kwds: Any) -> BaseEmailBackend: ... def send_mail( @@ -18,17 +19,17 @@ def send_mail( from_email: Optional[str], recipient_list: List[str], fail_silently: bool = ..., - auth_user: None = ..., - auth_password: None = ..., + auth_user: Optional[str] = ..., + auth_password: Optional[str] = ..., connection: Optional[BaseEmailBackend] = ..., html_message: Optional[str] = ..., ) -> int: ... def send_mass_mail( datatuple: List[Tuple[str, str, str, List[str]]], fail_silently: bool = ..., - auth_user: None = ..., - auth_password: None = ..., - connection: BaseEmailBackend = ..., + auth_user: Optional[str] = ..., + auth_password: Optional[str] = ..., + connection: Optional[BaseEmailBackend] = ..., ) -> int: ... def mail_admins( subject: str, @@ -45,4 +46,4 @@ def mail_managers( html_message: Optional[str] = ..., ) -> None: ... -outbox = [EmailMessage()] +outbox: List[EmailMessage] = ... diff --git a/django-stubs/core/mail/message.pyi b/django-stubs/core/mail/message.pyi index 1a1fb3a..c52e8ec 100644 --- a/django-stubs/core/mail/message.pyi +++ b/django-stubs/core/mail/message.pyi @@ -1,8 +1,8 @@ -import email +from email._policybase import Policy from email.mime.message import MIMEMessage from email.mime.multipart import MIMEMultipart 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.utils.safestring import SafeText @@ -27,14 +27,14 @@ class MIMEMixin: class SafeMIMEMessage(MIMEMixin, MIMEMessage): defects: List[Any] epilogue: None - policy: email._policybase.Compat32 + policy: Policy preamble: None def __setitem__(self, name: str, val: str) -> None: ... class SafeMIMEText(MIMEMixin, MIMEText): defects: List[Any] epilogue: None - policy: email._policybase.Compat32 + policy: Policy preamble: None encoding: str = ... def __init__(self, _text: str, _subtype: str = ..., _charset: str = ...) -> None: ... @@ -44,7 +44,7 @@ class SafeMIMEText(MIMEMixin, MIMEText): class SafeMIMEMultipart(MIMEMixin, MIMEMultipart): defects: List[Any] epilogue: None - policy: email._policybase.Compat32 + policy: Policy preamble: None encoding: str = ... def __init__( @@ -71,12 +71,12 @@ class EmailMessage: subject: str = ..., body: Optional[str] = ..., from_email: Optional[str] = ..., - to: Optional[Union[List[str], Tuple[str, str], str]] = ..., - bcc: Optional[Union[List[str], Tuple[str], str]] = ..., + to: Optional[Union[Sequence[str], str]] = ..., + bcc: Optional[Union[Sequence[str], str]] = ..., connection: Optional[BaseEmailBackend] = ..., attachments: Optional[Union[List[Tuple[str, str]], List[MIMEText]]] = ..., 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]] = ..., ) -> None: ... def get_connection(self, fail_silently: bool = ...) -> BaseEmailBackend: ... diff --git a/django-stubs/db/migrations/graph.pyi b/django-stubs/db/migrations/graph.pyi index 852c6d2..b45ee18 100644 --- a/django-stubs/db/migrations/graph.pyi +++ b/django-stubs/db/migrations/graph.pyi @@ -11,7 +11,6 @@ class Node: parents: Set[Any] = ... def __init__(self, key: Tuple[str, str]) -> None: ... def __lt__(self, other: Union[Tuple[str, str], Node]) -> bool: ... - def __hash__(self) -> int: ... def __getitem__(self, item: int) -> str: ... def add_child(self, child: Node) -> None: ... def add_parent(self, parent: Node) -> None: ... @@ -19,13 +18,9 @@ class Node: def descendants(self) -> List[Tuple[str, str]]: ... class DummyNode(Node): - children: Set[Any] - key: Tuple[str, str] - parents: Set[Any] origin: Any = ... error_message: Any = ... def __init__(self, key: Tuple[str, str], origin: Union[Migration, str], error_message: str) -> None: ... - __class__: Any = ... def promote(self) -> None: ... def raise_error(self) -> None: ... diff --git a/django-stubs/db/migrations/loader.pyi b/django-stubs/db/migrations/loader.pyi index 2c52e64..e970d31 100644 --- a/django-stubs/db/migrations/loader.pyi +++ b/django-stubs/db/migrations/loader.pyi @@ -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.sqlite3.base import DatabaseWrapper from django.db.migrations.migration import Migration, SwappableTuple from django.db.migrations.state import ProjectState +from django.db import DefaultConnectionProxy + MIGRATIONS_MODULE_NAME: str class MigrationLoader: diff --git a/django-stubs/db/migrations/migration.pyi b/django-stubs/db/migrations/migration.pyi index b508dd6..05fd0a6 100644 --- a/django-stubs/db/migrations/migration.pyi +++ b/django-stubs/db/migrations/migration.pyi @@ -13,7 +13,6 @@ class Migration: name: str = ... app_label: str = ... def __init__(self, name: str, app_label: str) -> None: ... - def __hash__(self) -> int: ... def mutate_state(self, project_state: ProjectState, preserve: bool = ...) -> ProjectState: ... def apply( self, project_state: ProjectState, schema_editor: BaseDatabaseSchemaEditor, collect_sql: bool = ... @@ -24,6 +23,6 @@ class Migration: class SwappableTuple(tuple): 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: ... diff --git a/django-stubs/db/migrations/operations/__init__.pyi b/django-stubs/db/migrations/operations/__init__.pyi index 311074d..a93fe67 100644 --- a/django-stubs/db/migrations/operations/__init__.pyi +++ b/django-stubs/db/migrations/operations/__init__.pyi @@ -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 ( AddField as AddField, AlterField as AlterField, diff --git a/django-stubs/db/migrations/operations/base.pyi b/django-stubs/db/migrations/operations/base.pyi index b4f1d04..601aeb7 100644 --- a/django-stubs/db/migrations/operations/base.pyi +++ b/django-stubs/db/migrations/operations/base.pyi @@ -1,4 +1,4 @@ -from typing import Any, List, Optional, Type +from typing import Any, List class Operation: reversible: bool = ... @@ -6,7 +6,6 @@ class Operation: atomic: bool = ... elidable: bool = ... serialization_expand_args: Any = ... - def __new__(cls: Type[Operation], *args: Any, **kwargs: Any) -> Operation: ... def deconstruct(self): ... 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: ... diff --git a/django-stubs/db/migrations/operations/models.pyi b/django-stubs/db/migrations/operations/models.pyi index 7c1a3d5..23b64ba 100644 --- a/django-stubs/db/migrations/operations/models.pyi +++ b/django-stubs/db/migrations/operations/models.pyi @@ -12,7 +12,6 @@ class ModelOperation(Operation): def name_lower(self) -> str: ... class CreateModel(ModelOperation): - serialization_expand_args: Any = ... fields: Sequence[Tuple[str, Field]] = ... options: Any = ... bases: Optional[Sequence[Union[type, str]]] = ... @@ -63,7 +62,6 @@ class AlterModelOptions(ModelOptionOperation): def __init__(self, name: str, options: Dict[str, Any]) -> None: ... class AlterModelManagers(ModelOptionOperation): - serialization_expand_args: Any = ... managers: Any = ... def __init__(self, name: Any, managers: Any) -> None: ... diff --git a/django-stubs/db/migrations/operations/special.pyi b/django-stubs/db/migrations/operations/special.pyi index 59c65a5..323a32c 100644 --- a/django-stubs/db/migrations/operations/special.pyi +++ b/django-stubs/db/migrations/operations/special.pyi @@ -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.migrations.state import StateApps @@ -6,7 +6,6 @@ from django.db.migrations.state import StateApps from .base import Operation class SeparateDatabaseAndState(Operation): - serialization_expand_args: Any = ... database_operations: Sequence[Operation] = ... state_operations: Sequence[Operation] = ... def __init__( @@ -19,7 +18,6 @@ class RunSQL(Operation): reverse_sql: Any = ... state_operations: Any = ... hints: Any = ... - elidable: Any = ... def __init__( self, sql: Any, @@ -30,12 +28,9 @@ class RunSQL(Operation): ) -> None: ... class RunPython(Operation): - reduces_to_sql: bool = ... - atomic: bool = ... code: Callable = ... reverse_code: Optional[Callable] = ... hints: Optional[Dict[str, Any]] = ... - elidable: bool = ... def __init__( self, code: Callable, diff --git a/django-stubs/db/migrations/operations/utils.pyi b/django-stubs/db/migrations/operations/utils.pyi index 0556645..58c49d8 100644 --- a/django-stubs/db/migrations/operations/utils.pyi +++ b/django-stubs/db/migrations/operations/utils.pyi @@ -1,6 +1,5 @@ -from typing import Any, Optional - from django.db.migrations.state import ProjectState + 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: ... diff --git a/django-stubs/db/migrations/optimizer.pyi b/django-stubs/db/migrations/optimizer.pyi index 217c405..0a43cfc 100644 --- a/django-stubs/db/migrations/optimizer.pyi +++ b/django-stubs/db/migrations/optimizer.pyi @@ -1,7 +1,7 @@ -from typing import Any, List, Optional +from typing import List, Optional from django.db.migrations.operations.base import Operation class MigrationOptimizer: - def optimize(self, operations: List[Operation], app_label: str = ...) -> List[Operation]: ... - def optimize_inner(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: Optional[str] = ...) -> List[Operation]: ... diff --git a/django-stubs/db/migrations/questioner.pyi b/django-stubs/db/migrations/questioner.pyi index b05611f..2a2ff1c 100644 --- a/django-stubs/db/migrations/questioner.pyi +++ b/django-stubs/db/migrations/questioner.pyi @@ -1,14 +1,13 @@ from typing import Any, Dict, Optional, Set from django.db.migrations.state import ModelState + from django.db.models.fields import Field -from .loader import MigrationLoader - class MigrationQuestioner: - defaults: Dict[Any, Any] = ... - specified_apps: Set[Any] = ... - dry_run: None = ... + defaults: Dict[str, Any] = ... + specified_apps: Set[str] = ... + dry_run: Optional[bool] = ... def __init__( self, defaults: Optional[Dict[str, bool]] = ..., @@ -23,21 +22,5 @@ class MigrationQuestioner: def ask_merge(self, app_label: str) -> bool: ... def ask_auto_now_add_addition(self, field_name: str, model_name: str) -> None: ... -class InteractiveMigrationQuestioner(MigrationQuestioner): - defaults: Dict[Any, Any] - 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: ... +class InteractiveMigrationQuestioner(MigrationQuestioner): ... +class NonInteractiveMigrationQuestioner(MigrationQuestioner): ... diff --git a/django-stubs/db/migrations/recorder.pyi b/django-stubs/db/migrations/recorder.pyi index 8386b03..e2918e4 100644 --- a/django-stubs/db/migrations/recorder.pyi +++ b/django-stubs/db/migrations/recorder.pyi @@ -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.models.query import QuerySet +from django.db import models + class MigrationRecorder: class Migration(models.Model): app: Any = ... diff --git a/django-stubs/db/migrations/serializer.pyi b/django-stubs/db/migrations/serializer.pyi index ac782fd..fe3f95c 100644 --- a/django-stubs/db/migrations/serializer.pyi +++ b/django-stubs/db/migrations/serializer.pyi @@ -1,88 +1,40 @@ from typing import Any, Callable, Dict, List, Set, Tuple, Union -from django.db.models.fields import Field - class BaseSerializer: value: Any = ... def __init__(self, value: Any) -> None: ... - def serialize(self) -> None: ... + def serialize(self) -> Any: ... -class BaseSequenceSerializer(BaseSerializer): - def serialize(self) -> Tuple[str, Set[str]]: ... - -class BaseSimpleSerializer(BaseSerializer): - value: str - 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 BaseSequenceSerializer(BaseSerializer): ... +class BaseSimpleSerializer(BaseSerializer): ... +class DatetimeSerializer(BaseSerializer): ... +class DateSerializer(BaseSerializer): ... +class DecimalSerializer(BaseSerializer): ... class DeconstructableSerializer(BaseSerializer): @staticmethod def serialize_deconstructed( path: str, args: List[Any], kwargs: Dict[str, Union[Callable, int, 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 FunctionTypeSerializer(BaseSerializer): - value: Callable - def serialize(self) -> Tuple[str, Set[str]]: ... - -class FunctoolsPartialSerializer(BaseSerializer): - def serialize(self): ... - -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 FunctionTypeSerializer(BaseSerializer): ... +class FunctoolsPartialSerializer(BaseSerializer): ... +class IterableSerializer(BaseSerializer): ... +class ModelFieldSerializer(DeconstructableSerializer): ... +class ModelManagerSerializer(DeconstructableSerializer): ... +class OperationSerializer(BaseSerializer): ... +class RegexSerializer(BaseSerializer): ... class SequenceSerializer(BaseSequenceSerializer): ... class SetSerializer(BaseSequenceSerializer): ... - -class SettingsReferenceSerializer(BaseSerializer): - def serialize(self): ... - -class TimedeltaSerializer(BaseSerializer): - def serialize(self): ... - -class TimeSerializer(BaseSerializer): - def serialize(self): ... - +class SettingsReferenceSerializer(BaseSerializer): ... +class TimedeltaSerializer(BaseSerializer): ... +class TimeSerializer(BaseSerializer): ... class TupleSerializer(BaseSequenceSerializer): ... - -class TypeSerializer(BaseSerializer): - def serialize(self): ... - -class UUIDSerializer(BaseSerializer): - def serialize(self): ... +class TypeSerializer(BaseSerializer): ... +class UUIDSerializer(BaseSerializer): ... def serializer_factory(value: Any) -> BaseSerializer: ... diff --git a/django-stubs/db/migrations/state.pyi b/django-stubs/db/migrations/state.pyi index c31caae..5f8bf77 100644 --- a/django-stubs/db/migrations/state.pyi +++ b/django-stubs/db/migrations/state.pyi @@ -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.db.models.base import Model from django.db.models.manager import Manager -from django.utils.functional import cached_property from django.db.models.fields import Field diff --git a/django-stubs/db/migrations/topological_sort.pyi b/django-stubs/db/migrations/topological_sort.pyi index 1f3cf19..87e9bc3 100644 --- a/django-stubs/db/migrations/topological_sort.pyi +++ b/django-stubs/db/migrations/topological_sort.pyi @@ -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 diff --git a/django-stubs/db/migrations/utils.pyi b/django-stubs/db/migrations/utils.pyi index 53db41a..fb98a1e 100644 --- a/django-stubs/db/migrations/utils.pyi +++ b/django-stubs/db/migrations/utils.pyi @@ -1,12 +1,10 @@ -from typing import Any, Optional - -from django.utils.functional import SimpleLazyObject +from typing import Any COMPILED_REGEX_TYPE: Any class RegexObject: pattern: str = ... flags: int = ... - def __init__(self, obj: SimpleLazyObject) -> None: ... + def __init__(self, obj: Any) -> None: ... def get_migration_name_timestamp() -> str: ... diff --git a/django-stubs/db/migrations/writer.pyi b/django-stubs/db/migrations/writer.pyi index cf0392c..641f9a7 100644 --- a/django-stubs/db/migrations/writer.pyi +++ b/django-stubs/db/migrations/writer.pyi @@ -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.operations.base import Operation - from django.db.migrations.operations.models import CreateModel 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: ... class OperationWriter: diff --git a/django-stubs/forms/utils.pyi b/django-stubs/forms/utils.pyi index f48d4f5..92fc211 100644 --- a/django-stubs/forms/utils.pyi +++ b/django-stubs/forms/utils.pyi @@ -1,6 +1,6 @@ from collections import UserList 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.utils.safestring import SafeText @@ -28,9 +28,6 @@ class ErrorList(UserList): def as_json(self, escape_html: bool = ...) -> str: ... def as_ul(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 to_current_timezone(value: datetime) -> datetime: ... diff --git a/django-stubs/http/response.pyi b/django-stubs/http/response.pyi index e50943e..3c4f22b 100644 --- a/django-stubs/http/response.pyi +++ b/django-stubs/http/response.pyi @@ -1,9 +1,8 @@ import datetime from io import BytesIO 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.http.cookie import SimpleCookie from django.test.client import Client @@ -70,7 +69,6 @@ class HttpResponse(HttpResponseBase): request: Dict[str, Any] resolver_match: ResolverMatch sameorigin: bool - status_code: int templates: List[Template] test_server_port: str test_was_secure_request: bool @@ -88,21 +86,13 @@ class HttpResponse(HttpResponseBase): def json(self) -> Dict[str, Any]: ... class StreamingHttpResponse(HttpResponseBase): + content: AnyStr + streaming_content: Iterator[AnyStr] 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: ... class FileResponse(StreamingHttpResponse): client: Client - closed: bool context: None file_to_stream: Optional[BytesIO] request: Dict[str, str] @@ -119,8 +109,6 @@ class FileResponse(StreamingHttpResponse): class HttpResponseRedirectBase(HttpResponse): allowed_schemes = ... # type: List[str] def __init__(self, redirect_to: str, *args: Any, **kwargs: Any) -> None: ... - @property - def url(self) -> str: ... class HttpResponseRedirect(HttpResponseRedirectBase): ... class HttpResponsePermanentRedirect(HttpResponseRedirectBase): ... diff --git a/django-stubs/middleware/cache.pyi b/django-stubs/middleware/cache.pyi index 1b009b0..04c7eb2 100644 --- a/django-stubs/middleware/cache.pyi +++ b/django-stubs/middleware/cache.pyi @@ -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.response import HttpResponse, HttpResponseBase @@ -26,4 +26,6 @@ class CacheMiddleware(UpdateCacheMiddleware, FetchFromCacheMiddleware): cache_alias: str = ... cache_timeout: float = ... 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: ... diff --git a/django-stubs/middleware/gzip.pyi b/django-stubs/middleware/gzip.pyi index 878ea35..e25dca8 100644 --- a/django-stubs/middleware/gzip.pyi +++ b/django-stubs/middleware/gzip.pyi @@ -1,10 +1,10 @@ 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.utils.deprecation import MiddlewareMixin re_accepts_gzip: Any class GZipMiddleware(MiddlewareMixin): - def process_response(self, request: WSGIRequest, response: HttpResponseBase) -> HttpResponseBase: ... + def process_response(self, request: HttpRequest, response: HttpResponseBase) -> HttpResponseBase: ... diff --git a/django-stubs/middleware/http.pyi b/django-stubs/middleware/http.pyi index 1c4c5d9..c0981b7 100644 --- a/django-stubs/middleware/http.pyi +++ b/django-stubs/middleware/http.pyi @@ -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.utils.deprecation import 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: ... diff --git a/django-stubs/middleware/locale.pyi b/django-stubs/middleware/locale.pyi index 45652d3..ed24767 100644 --- a/django-stubs/middleware/locale.pyi +++ b/django-stubs/middleware/locale.pyi @@ -1,10 +1,10 @@ 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.utils.deprecation import MiddlewareMixin class LocaleMiddleware(MiddlewareMixin): response_redirect_class: Any = ... - def process_request(self, request: WSGIRequest) -> None: ... - def process_response(self, request: WSGIRequest, response: HttpResponseBase) -> HttpResponseBase: ... + def process_request(self, request: HttpRequest) -> None: ... + def process_response(self, request: HttpRequest, response: HttpResponseBase) -> HttpResponseBase: ... diff --git a/django-stubs/middleware/security.pyi b/django-stubs/middleware/security.pyi index cea7129..1a44933 100644 --- a/django-stubs/middleware/security.pyi +++ b/django-stubs/middleware/security.pyi @@ -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.utils.deprecation import MiddlewareMixin @@ -13,5 +13,5 @@ class SecurityMiddleware(MiddlewareMixin): redirect: bool = ... redirect_host: Optional[str] = ... redirect_exempt: List[Any] = ... - def process_request(self, request: WSGIRequest) -> Optional[HttpResponsePermanentRedirect]: ... - def process_response(self, request: WSGIRequest, response: HttpResponse) -> HttpResponse: ... + def process_request(self, request: HttpRequest) -> Optional[HttpResponsePermanentRedirect]: ... + def process_response(self, request: HttpRequest, response: HttpResponse) -> HttpResponse: ... diff --git a/django-stubs/test/client.pyi b/django-stubs/test/client.pyi index 1b4b1b3..00e043c 100644 --- a/django-stubs/test/client.pyi +++ b/django-stubs/test/client.pyi @@ -9,8 +9,6 @@ from django.http.cookie import SimpleCookie from django.http.request import HttpRequest from django.http.response import HttpResponse, HttpResponseBase -from django.core.handlers.wsgi import WSGIRequest - BOUNDARY: str = ... MULTIPART_CONTENT: str = ... CONTENT_TYPE_RE: Pattern = ... @@ -42,13 +40,13 @@ class RequestFactory: cookies: SimpleCookie = ... errors: BytesIO = ... def __init__(self, *, json_encoder: Any = ..., **defaults: Any) -> None: ... - def request(self, **request: Any) -> WSGIRequest: ... - def get(self, path: str, data: Any = ..., secure: bool = ..., **extra: Any) -> WSGIRequest: ... + def request(self, **request: Any) -> HttpRequest: ... + def get(self, path: str, data: Any = ..., secure: bool = ..., **extra: Any) -> HttpRequest: ... def post( self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any - ) -> WSGIRequest: ... - def head(self, path: str, data: Any = ..., secure: bool = ..., **extra: Any) -> WSGIRequest: ... - def trace(self, path: str, secure: bool = ..., **extra: Any) -> WSGIRequest: ... + ) -> HttpRequest: ... + def head(self, path: str, data: Any = ..., secure: bool = ..., **extra: Any) -> HttpRequest: ... + def trace(self, path: str, secure: bool = ..., **extra: Any) -> HttpRequest: ... def options( self, path: str, @@ -56,16 +54,16 @@ class RequestFactory: content_type: str = ..., secure: bool = ..., **extra: Any - ) -> WSGIRequest: ... + ) -> HttpRequest: ... def put( self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any - ) -> WSGIRequest: ... + ) -> HttpRequest: ... def patch( self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any - ) -> WSGIRequest: ... + ) -> HttpRequest: ... def delete( self, path: str, data: Any = ..., content_type: str = ..., secure: bool = ..., **extra: Any - ) -> WSGIRequest: ... + ) -> HttpRequest: ... def generic( self, method: str, @@ -74,7 +72,7 @@ class RequestFactory: content_type: Optional[str] = ..., secure: bool = ..., **extra: Any - ) -> WSGIRequest: ... + ) -> HttpRequest: ... class Client: json_encoder: Type[DjangoJSONEncoder] = ... diff --git a/django-stubs/test/html.pyi b/django-stubs/test/html.pyi index c14f92c..e9a623c 100644 --- a/django-stubs/test/html.pyi +++ b/django-stubs/test/html.pyi @@ -1,5 +1,5 @@ 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") diff --git a/django-stubs/test/selenium.pyi b/django-stubs/test/selenium.pyi index fe1092f..bc5f469 100644 --- a/django-stubs/test/selenium.pyi +++ b/django-stubs/test/selenium.pyi @@ -1,22 +1,14 @@ -from typing import Any, Callable, Dict, List, Tuple, Type, Union +from typing import Any from django.test import LiveServerTestCase class SeleniumTestCaseBase: browsers: 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 def import_webdriver(cls, browser: Any): ... def create_webdriver(self): ... class SeleniumTestCase(LiveServerTestCase): implicit_wait: int = ... - @classmethod - def setUpClass(cls) -> None: ... def disable_implicit_wait(self) -> None: ... diff --git a/django-stubs/test/testcases.pyi b/django-stubs/test/testcases.pyi index 5a88add..ad131eb 100644 --- a/django-stubs/test/testcases.pyi +++ b/django-stubs/test/testcases.pyi @@ -18,14 +18,9 @@ from django.utils.safestring import SafeText from django.db import connections as connections class _AssertNumQueriesContext(CaptureQueriesContext): - connection: Any - final_queries: Optional[int] - force_debug_cursor: bool - initial_queries: int test_case: SimpleTestCase = ... num: int = ... def __init__(self, test_case: Any, num: Any, connection: Any) -> None: ... - def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any): ... class _AssertTemplateUsedContext: test_case: SimpleTestCase = ... @@ -40,14 +35,7 @@ class _AssertTemplateUsedContext: def __enter__(self): ... def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any): ... -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 _AssertTemplateNotUsedContext(_AssertTemplateUsedContext): ... class _CursorFailure: cls_name: str = ... @@ -59,10 +47,6 @@ class SimpleTestCase(unittest.TestCase): client_class: Any = ... client: Client allow_database_queries: bool = ... - @classmethod - def setUpClass(cls) -> None: ... - @classmethod - def tearDownClass(cls) -> None: ... def __call__(self, result: unittest.TestResult = ...) -> None: ... def settings(self, **kwargs: Any) -> Any: ... def modify_settings(self, **kwargs: Any) -> Any: ... @@ -150,7 +134,6 @@ class TransactionTestCase(SimpleTestCase): fixtures: Any = ... multi_db: bool = ... serialized_rollback: bool = ... - allow_database_queries: bool = ... def assertQuerysetEqual( self, qs: Union[Iterator[Any], List[Model], QuerySet, RawQuerySet], @@ -164,10 +147,6 @@ class TransactionTestCase(SimpleTestCase): ) -> Optional[_AssertNumQueriesContext]: ... class TestCase(TransactionTestCase): - @classmethod - def setUpClass(cls) -> None: ... - @classmethod - def tearDownClass(cls) -> None: ... @classmethod def setUpTestData(cls) -> None: ... @@ -181,17 +160,14 @@ def skipIfDBFeature(*features: Any) -> Callable: ... def skipUnlessDBFeature(*features: Any) -> Callable: ... def skipUnlessAnyDBFeature(*features: Any) -> Callable: ... -class QuietWSGIRequestHandler(WSGIRequestHandler): - def log_message(*args: Any) -> None: ... +class QuietWSGIRequestHandler(WSGIRequestHandler): ... class FSFilesHandler(WSGIHandler): application: Any = ... base_url: Any = ... def __init__(self, application: Any) -> None: ... def file_path(self, url: Any): ... - def get_response(self, request: Any): ... def serve(self, request: Any): ... - def __call__(self, environ: Any, start_response: Any): ... class _StaticFilesHandler(FSFilesHandler): def get_base_dir(self): ... @@ -216,7 +192,6 @@ class LiveServerThread(threading.Thread): port: int = ..., ) -> None: ... httpd: ThreadedWSGIServer = ... - def run(self) -> None: ... def terminate(self) -> None: ... class LiveServerTestCase(TransactionTestCase): @@ -225,10 +200,6 @@ class LiveServerTestCase(TransactionTestCase): server_thread_class: Any = ... static_handler: Any = ... def live_server_url(cls): ... - @classmethod - def setUpClass(cls) -> None: ... - @classmethod - def tearDownClass(cls) -> None: ... class SerializeMixin: lockfile: Any = ... diff --git a/django-stubs/test/utils.pyi b/django-stubs/test/utils.pyi index 4a441a2..8db49a4 100644 --- a/django-stubs/test/utils.pyi +++ b/django-stubs/test/utils.pyi @@ -66,15 +66,15 @@ class override_system_checks(TestContextDecorator): class CaptureQueriesContext: connection: Any = ... + force_debug_cursor: bool = ... + initial_queries: int = ... + final_queries: Optional[int] = ... def __init__(self, connection: Any) -> None: ... def __iter__(self): ... def __getitem__(self, index: int) -> Dict[str, str]: ... def __len__(self) -> int: ... @property def captured_queries(self) -> List[Dict[str, str]]: ... - force_debug_cursor: bool = ... - initial_queries: int = ... - final_queries: Optional[int] = ... def __enter__(self) -> CaptureQueriesContext: ... def __exit__(self, exc_type: None, exc_value: None, traceback: None) -> None: ... diff --git a/django-stubs/views/defaults.pyi b/django-stubs/views/defaults.pyi index 800c677..3241eb8 100644 --- a/django-stubs/views/defaults.pyi +++ b/django-stubs/views/defaults.pyi @@ -1,8 +1,7 @@ from typing import Optional -from django.core.handlers.wsgi import WSGIRequest +from django.http.request import HttpRequest from django.http.response import ( - Http404, HttpResponseBadRequest, HttpResponseForbidden, HttpResponseNotFound, @@ -15,10 +14,10 @@ ERROR_400_TEMPLATE_NAME: str ERROR_500_TEMPLATE_NAME: str def page_not_found( - request: WSGIRequest, exception: Optional[Http404], template_name: str = ... + request: HttpRequest, exception: Optional[Exception], template_name: str = ... ) -> HttpResponseNotFound: ... -def server_error(request: WSGIRequest, template_name: str = ...) -> HttpResponseServerError: ... -def bad_request(request: WSGIRequest, exception: Exception, template_name: str = ...) -> HttpResponseBadRequest: ... +def server_error(request: HttpRequest, template_name: str = ...) -> HttpResponseServerError: ... +def bad_request(request: HttpRequest, exception: Exception, template_name: str = ...) -> HttpResponseBadRequest: ... def permission_denied( - request: WSGIRequest, exception: Exception, template_name: str = ... + request: HttpRequest, exception: Exception, template_name: str = ... ) -> HttpResponseForbidden: ...