8
8
from types import TracebackType
9
9
from typing import (
10
10
Any ,
11
- AnyStr ,
12
11
AsyncGenerator ,
13
12
AsyncIterable ,
14
13
AsyncIterator ,
19
18
20
19
from aiofiles import open as async_open
21
20
from aiofiles .base import AiofilesContextManager
22
- from aiofiles .threadpool .binary import AsyncBufferedIOBase , AsyncBufferedReader
21
+ from aiofiles .threadpool .binary import AsyncBufferedIOBase
23
22
from werkzeug .datastructures import ContentRange , Headers
24
23
from werkzeug .exceptions import RequestedRangeNotSatisfiable
25
24
from werkzeug .http import parse_etags
@@ -148,7 +147,7 @@ def __init__(self, file_path: str | PathLike, *, buffer_size: int | None = None)
148
147
if buffer_size is not None :
149
148
self .buffer_size = buffer_size
150
149
self .file : AsyncBufferedIOBase | None = None
151
- self .file_manager : AiofilesContextManager [ None , None , AsyncBufferedReader ] = None
150
+ self .file_manager : AiofilesContextManager = None
152
151
153
152
async def __aenter__ (self ) -> FileBody :
154
153
self .file_manager = async_open (self .file_path , mode = "rb" )
@@ -262,7 +261,7 @@ class Response(SansIOResponse):
262
261
263
262
def __init__ (
264
263
self ,
265
- response : ResponseBody | AnyStr | Iterable | None = None ,
264
+ response : ResponseBody | str | bytes | Iterable | None = None ,
266
265
status : int | None = None ,
267
266
headers : dict | Headers | None = None ,
268
267
mimetype : str | None = None ,
@@ -296,7 +295,7 @@ def __init__(
296
295
elif isinstance (response , ResponseBody ):
297
296
self .response = response
298
297
elif isinstance (response , (str , bytes )):
299
- self .set_data (response ) # type: ignore
298
+ self .set_data (response )
300
299
else :
301
300
self .response = self .iterable_body_class (response )
302
301
@@ -314,9 +313,9 @@ async def get_data(self, as_text: Literal[True]) -> str: ...
314
313
async def get_data (self , as_text : Literal [False ]) -> bytes : ...
315
314
316
315
@overload
317
- async def get_data (self , as_text : bool = True ) -> AnyStr : ...
316
+ async def get_data (self , as_text : bool = True ) -> str | bytes : ...
318
317
319
- async def get_data (self , as_text : bool = False ) -> AnyStr :
318
+ async def get_data (self , as_text : bool = False ) -> str | bytes :
320
319
"""Return the body data."""
321
320
if self .implicit_sequence_conversion :
322
321
await self .make_sequence ()
@@ -327,9 +326,9 @@ async def get_data(self, as_text: bool = False) -> AnyStr:
327
326
result += data .decode ()
328
327
else :
329
328
result += data
330
- return result # type: ignore
329
+ return result
331
330
332
- def set_data (self , data : AnyStr ) -> None :
331
+ def set_data (self , data : str | bytes ) -> None :
333
332
"""Set the response data.
334
333
335
334
This will encode using the :attr:`charset`.
@@ -344,7 +343,7 @@ def set_data(self, data: AnyStr) -> None:
344
343
345
344
@property
346
345
async def data (self ) -> bytes :
347
- return await self .get_data ()
346
+ return await self .get_data (as_text = False )
348
347
349
348
@data .setter
350
349
def data (self , value : bytes ) -> None :
0 commit comments