3

对于下面的代码,我收到以下 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)
4

1 回答 1

0

这是排版中的错误

HTTPResponse存根没有扩展,BinaryIO因此不被认为是函数的候选者IO[bytes]——这已得到修复

这个修复应该在下一个版本中出现mypy0.620如果我猜对了他们的版本方案应该是)。或者,您可以运行mypywith--custom-typeshed-dir以更快地获得更改

于 2018-06-12T16:43:18.040 回答