from io import BytesIO from django.http.request import QueryDict from django.http.response import HttpResponse from django.test.client import FakePayload from django.utils.datastructures import MultiValueDict from typing import ( Any, Callable, Dict, Optional, Union, ) def get_bytes_from_wsgi(environ: Dict[str, Any], key: str, default: str) -> bytes: ... def get_path_info(environ: Dict[str, Any]) -> str: ... def get_script_name(environ: Dict[str, Any]) -> str: ... def get_str_from_wsgi(environ: Dict[str, Any], key: str, default: str) -> str: ... class LimitedStream: def __init__( self, stream: Union[str, BytesIO, FakePayload], limit: int, buf_size: int = ... ) -> None: ... def _read_limited(self, size: Optional[int] = ...) -> bytes: ... def read(self, size: Optional[int] = ...) -> bytes: ... def readline(self, size: Optional[int] = ...) -> bytes: ... class WSGIHandler: def __call__(self, environ: Dict[str, Any], start_response: Callable) -> HttpResponse: ... def __init__(self, *args, **kwargs) -> None: ... class WSGIRequest: @cached_property def COOKIES(self) -> Dict[str, str]: ... @property def FILES(self) -> MultiValueDict: ... @cached_property def GET(self) -> QueryDict: ... def __init__(self, environ: Dict[str, Any]) -> None: ... def _get_post(self) -> QueryDict: ... def _get_scheme(self) -> str: ... def _set_post(self, post: QueryDict) -> None: ...