From 0381fdb0227f0db96a584d8e916ae6d8b3d025a3 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Mon, 31 Oct 2022 17:43:49 +0000 Subject: [PATCH] Add some types to views (#1221) * Add some types to views * Remove GeoModelAdmin.formfield_for_dbfield --- django-stubs/contrib/admin/options.pyi | 22 ++++++++++----------- django-stubs/contrib/gis/admin/options.pyi | 1 - django-stubs/contrib/gis/sitemaps/views.pyi | 17 ++++++++++++---- django-stubs/contrib/gis/views.pyi | 7 +++++-- django-stubs/test/testcases.pyi | 3 ++- django-stubs/views/debug.pyi | 6 +++++- 6 files changed, 36 insertions(+), 20 deletions(-) diff --git a/django-stubs/contrib/admin/options.pyi b/django-stubs/contrib/admin/options.pyi index b88b171..9c7b7aa 100644 --- a/django-stubs/contrib/admin/options.pyi +++ b/django-stubs/contrib/admin/options.pyi @@ -190,16 +190,16 @@ class ModelAdmin(BaseModelAdmin[_ModelT]): def media(self) -> Media: ... def get_model_perms(self, request: HttpRequest) -> Dict[str, bool]: ... def get_form( - self, request: Any, obj: Optional[_ModelT] = ..., change: bool = ..., **kwargs: Any + self, request: HttpRequest, obj: Optional[_ModelT] = ..., change: bool = ..., **kwargs: Any ) -> Type[forms.ModelForm[_ModelT]]: ... 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: Optional[str] = ... ) -> Optional[_ModelT]: ... - def get_changelist_form(self, request: Any, **kwargs: Any) -> Type[ModelForm[_ModelT]]: ... + def get_changelist_form(self, request: HttpRequest, **kwargs: Any) -> Type[ModelForm[_ModelT]]: ... def get_changelist_formset( - self, request: Any, **kwargs: Any + self, request: HttpRequest, **kwargs: Any ) -> Type[BaseModelFormSet[_ModelT, ModelForm[_ModelT]]]: ... def get_formsets_with_inlines(self, request: HttpRequest, obj: Optional[_ModelT] = ...) -> Iterator[Any]: ... def get_paginator( @@ -241,21 +241,21 @@ class ModelAdmin(BaseModelAdmin[_ModelT]): extra_tags: str = ..., fail_silently: bool = ..., ) -> None: ... - def save_form(self, request: Any, form: Any, change: Any) -> Any: ... - def save_model(self, request: Any, obj: _ModelT, form: Any, change: Any) -> None: ... + def save_form(self, request: HttpRequest, form: Any, change: Any) -> Any: ... + def save_model(self, request: HttpRequest, obj: _ModelT, form: Any, change: Any) -> None: ... def delete_model(self, request: HttpRequest, obj: _ModelT) -> 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 save_formset(self, request: HttpRequest, form: Any, formset: Any, change: Any) -> None: ... + def save_related(self, request: HttpRequest, form: Any, formsets: Any, change: Any) -> None: ... def render_change_form( self, - request: Any, - context: Any, + request: HttpRequest, + context: Dict[str, Any], add: bool = ..., change: bool = ..., form_url: str = ..., obj: Optional[_ModelT] = ..., - ) -> Any: ... + ) -> HttpResponse: ... def response_add( self, request: HttpRequest, obj: _ModelT, post_url_continue: Optional[str] = ... ) -> HttpResponse: ... @@ -265,7 +265,7 @@ class ModelAdmin(BaseModelAdmin[_ModelT]): # Probably FileResponse cannot come from ModelAdmin views def response_action(self, request: HttpRequest, queryset: QuerySet) -> Optional[HttpResponse]: ... def response_delete(self, request: HttpRequest, obj_display: str, obj_id: int) -> HttpResponse: ... - def render_delete_form(self, request: Any, context: Any) -> Any: ... + def render_delete_form(self, request: HttpRequest, context: Dict[str, Any]) -> HttpResponse: ... def get_inline_formsets( self, request: HttpRequest, formsets: List[Any], inline_instances: List[Any], obj: Optional[_ModelT] = ... ) -> List[Any]: ... diff --git a/django-stubs/contrib/gis/admin/options.pyi b/django-stubs/contrib/gis/admin/options.pyi index 3f8d655..113ca6e 100644 --- a/django-stubs/contrib/gis/admin/options.pyi +++ b/django-stubs/contrib/gis/admin/options.pyi @@ -36,7 +36,6 @@ class GeoModelAdmin(ModelAdmin): widget: Any = ... @property def media(self) -> Any: ... - def formfield_for_dbfield(self, db_field: Any, request: Any, **kwargs: Any) -> Any: ... def get_map_widget(self, db_field: Any) -> Any: ... class OSMGeoAdmin(GeoModelAdmin): diff --git a/django-stubs/contrib/gis/sitemaps/views.pyi b/django-stubs/contrib/gis/sitemaps/views.pyi index 4552617..4774a69 100644 --- a/django-stubs/contrib/gis/sitemaps/views.pyi +++ b/django-stubs/contrib/gis/sitemaps/views.pyi @@ -1,6 +1,15 @@ -from typing import Any, Optional +from typing import Optional + +from django.http import HttpRequest, HttpResponse def kml( - request: Any, label: Any, model: Any, field_name: Optional[Any] = ..., compress: bool = ..., using: Any = ... -) -> Any: ... -def kmz(request: Any, label: Any, model: Any, field_name: Optional[Any] = ..., using: Any = ...) -> Any: ... + request: HttpRequest, + label: str, + model: str, + field_name: Optional[str] = ..., + compress: bool = ..., + using: str = ..., +) -> HttpResponse: ... +def kmz( + request: HttpRequest, label: str, model: str, field_name: Optional[str] = ..., using: str = ... +) -> HttpResponse: ... diff --git a/django-stubs/contrib/gis/views.pyi b/django-stubs/contrib/gis/views.pyi index f4dcde9..d9ddea8 100644 --- a/django-stubs/contrib/gis/views.pyi +++ b/django-stubs/contrib/gis/views.pyi @@ -1,3 +1,6 @@ -from typing import Any, Optional +from typing import Dict, Optional, Type -def feed(request: Any, url: Any, feed_dict: Optional[Any] = ...) -> Any: ... +from django.contrib.gis.feeds import Feed +from django.http import HttpRequest, HttpResponse + +def feed(request: HttpRequest, url: str, feed_dict: Optional[Dict[str, Type[Feed]]] = ...) -> HttpResponse: ... diff --git a/django-stubs/test/testcases.pyi b/django-stubs/test/testcases.pyi index ee729e4..1535554 100644 --- a/django-stubs/test/testcases.pyi +++ b/django-stubs/test/testcases.pyi @@ -31,6 +31,7 @@ from django.db.models.base import Model from django.db.models.query import QuerySet, RawQuerySet from django.forms import BaseFormSet, Form from django.forms.fields import EmailField +from django.http import HttpRequest from django.http.response import FileResponse, HttpResponseBase from django.template.base import Template from django.test.client import AsyncClient, Client @@ -241,7 +242,7 @@ class FSFilesHandler(WSGIHandler): base_url: Any = ... def __init__(self, application: Any) -> None: ... def file_path(self, url: Any) -> str: ... - def serve(self, request: Any) -> FileResponse: ... + def serve(self, request: HttpRequest) -> FileResponse: ... class _StaticFilesHandler(FSFilesHandler): def get_base_dir(self) -> str: ... diff --git a/django-stubs/views/debug.pyi b/django-stubs/views/debug.pyi index 8e4af92..03c9ba4 100644 --- a/django-stubs/views/debug.pyi +++ b/django-stubs/views/debug.pyi @@ -14,7 +14,11 @@ class CallableSettingWrapper: def __init__(self, callable_setting: Union[Callable, Type[Any]]) -> None: ... def technical_500_response( - request: Any, exc_type: Any, exc_value: Any, tb: Any, status_code: int = ... + request: HttpRequest, + exc_type: Optional[Type[BaseException]], + exc_value: Optional[BaseException], + tb: Optional[TracebackType], + status_code: int = ..., ) -> HttpResponse: ... def get_default_exception_reporter_filter() -> SafeExceptionReporterFilter: ... def get_exception_reporter_filter(request: Optional[HttpRequest]) -> SafeExceptionReporterFilter: ...