我在下面的代码中遇到以下mypy错误。我如何正确地转换响应对象,以便mypy对我将它传递给shutil.copyfileobj方法感到满意?
error:Argument 1 to "copyfileobj" has incompatible type "Union[HTTPResponse, BinaryIO]"; expected IO[Any]
以下代码将Web请求的响应流式传输到文件。
request = urllib.request.Request(get_file_url, headers=self.data_api_headers)
with urllib.request.urlopen(request) as response:
with open(export_file_path, 'wb') as out_file:
shutil.copyfileobj(response, out_file)
答案 0 :(得分:0)
HTTPResponse
存根未从BinaryIO
延伸,因此不被视为IO[bytes]
功能的候选者 - 已修复
此修补程序应位于mypy
的下一版本中(如果我正确猜测其版本方案,则应为0.620
)。或者,您可以使用mypy
运行--custom-typeshed-dir
以更快地获得更改