我收到以下代码的以下 mypy 错误。我如何才能正确转换响应对象,以便 mypy 满意我将其传递给 shutil.copyfileobj 方法?
错误:“copyfileobj”的参数 1 具有不兼容的类型“Union[HTTPResponse, BinaryIO]”;预期 IO[任何]
以下代码将 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)
最佳答案
HTTPResponse
stub 没有从 BinaryIO
扩展,因此不被认为是采用 IO[bytes]
的函数的候选者 --这已被修复
这个修复应该会出现在 mypy
的下一个版本中(如果我猜对了他们的版本方案,应该是 0.620
)。或者,您可以使用 --custom-typeshed-dir
运行 mypy
以更快地获取更改
关于Python mypy 类型提示 shutil.copyfileobj() 具有不兼容的类型 "Union[HTTPResponse, BinaryIO]";预期 IO[任何],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42234589/