88from types import TracebackType
99from typing import (
1010 Any ,
11- AnyStr ,
1211 AsyncGenerator ,
1312 AsyncIterable ,
1413 AsyncIterator ,
1918
2019from aiofiles import open as async_open
2120from aiofiles .base import AiofilesContextManager
22- from aiofiles .threadpool .binary import AsyncBufferedIOBase , AsyncBufferedReader
21+ from aiofiles .threadpool .binary import AsyncBufferedIOBase
2322from werkzeug .datastructures import ContentRange , Headers
2423from werkzeug .exceptions import RequestedRangeNotSatisfiable
2524from werkzeug .http import parse_etags
@@ -148,7 +147,7 @@ def __init__(self, file_path: str | PathLike, *, buffer_size: int | None = None)
148147 if buffer_size is not None :
149148 self .buffer_size = buffer_size
150149 self .file : AsyncBufferedIOBase | None = None
151- self .file_manager : AiofilesContextManager [ None , None , AsyncBufferedReader ] = None
150+ self .file_manager : AiofilesContextManager = None
152151
153152 async def __aenter__ (self ) -> FileBody :
154153 self .file_manager = async_open (self .file_path , mode = "rb" )
@@ -262,7 +261,7 @@ class Response(SansIOResponse):
262261
263262 def __init__ (
264263 self ,
265- response : ResponseBody | AnyStr | Iterable | None = None ,
264+ response : ResponseBody | str | bytes | Iterable | None = None ,
266265 status : int | None = None ,
267266 headers : dict | Headers | None = None ,
268267 mimetype : str | None = None ,
@@ -296,7 +295,7 @@ def __init__(
296295 elif isinstance (response , ResponseBody ):
297296 self .response = response
298297 elif isinstance (response , (str , bytes )):
299- self .set_data (response ) # type: ignore
298+ self .set_data (response )
300299 else :
301300 self .response = self .iterable_body_class (response )
302301
@@ -314,9 +313,9 @@ async def get_data(self, as_text: Literal[True]) -> str: ...
314313 async def get_data (self , as_text : Literal [False ]) -> bytes : ...
315314
316315 @overload
317- async def get_data (self , as_text : bool = True ) -> AnyStr : ...
316+ async def get_data (self , as_text : bool = True ) -> str | bytes : ...
318317
319- async def get_data (self , as_text : bool = False ) -> AnyStr :
318+ async def get_data (self , as_text : bool = False ) -> str | bytes :
320319 """Return the body data."""
321320 if self .implicit_sequence_conversion :
322321 await self .make_sequence ()
@@ -327,9 +326,9 @@ async def get_data(self, as_text: bool = False) -> AnyStr:
327326 result += data .decode ()
328327 else :
329328 result += data
330- return result # type: ignore
329+ return result
331330
332- def set_data (self , data : AnyStr ) -> None :
331+ def set_data (self , data : str | bytes ) -> None :
333332 """Set the response data.
334333
335334 This will encode using the :attr:`charset`.
@@ -344,7 +343,7 @@ def set_data(self, data: AnyStr) -> None:
344343
345344 @property
346345 async def data (self ) -> bytes :
347- return await self .get_data ()
346+ return await self .get_data (as_text = False )
348347
349348 @data .setter
350349 def data (self , value : bytes ) -> None :
0 commit comments