From e6dcfe4fc60d2d7cb88b09c9325b4cb0a4fe77d6 Mon Sep 17 00:00:00 2001 From: Chas Nelson Date: Tue, 9 Feb 2021 19:07:35 +0000 Subject: [PATCH] fix: add headers to http.HttpResponseBase constructor (#564) * fix: add headers to http.HttpResponseBase constructor fixes #563 * fix: correct Dict() with Dict[] * feat: add ResponseHeaders typing * fix: correct HttpResponseBase.headers type * fix: add missing ...s * fix: add CaseInsensitiveMapping import * fix: make Dict -> Dict[str, str] --- django-stubs/http/response.pyi | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/django-stubs/http/response.pyi b/django-stubs/http/response.pyi index 3bcad2d..f1581dd 100644 --- a/django-stubs/http/response.pyi +++ b/django-stubs/http/response.pyi @@ -6,24 +6,35 @@ from typing import Any, Dict, Iterable, Iterator, List, Optional, Tuple, Type, U from django.core.handlers.wsgi import WSGIRequest from django.http.cookie import SimpleCookie from django.test.client import Client - +from django.utils.datastructures import CaseInsensitiveMapping from django.template import Context, Template from django.urls import ResolverMatch class BadHeaderError(ValueError): ... +class ResponseHeaders(CaseInsensitiveMapping): + store: Dict[str, str] = ... + def __init__(self, data: Dict[str, str]) -> None: ... + def _convert_to_charset(self, value: Union[bytes, str], charset: str, mime_encode: str=...) -> str: ... + def __delitem__(self, key: str) -> None: ... + def __setitem__(self, key: str, value: str) -> None: ... + def pop(self, key: str, default: Optional[str] = ...) -> str: ... + def setdefault(self, key: str, value: str) -> None: ... + class HttpResponseBase(Iterable[Any]): status_code: int = ... cookies: SimpleCookie = ... reason_phrase: str = ... charset: str = ... closed: bool = ... + headers: ResponseHeaders = ... def __init__( self, content_type: Optional[str] = ..., status: Optional[int] = ..., reason: Optional[str] = ..., charset: Optional[str] = ..., + headers: Optional[Dict[str, str]] = ..., ) -> None: ... def serialize_headers(self) -> bytes: ... def __setitem__(self, header: Union[str, bytes], value: Union[str, bytes, int]) -> None: ...