У меня есть следующий код
import io
def reader(byte_stream: io.BufferedIOBase):
...
reader(open("./README.md", "rb"))
Когда я запускаю этот файл через mypy
, я получаю следующую ошибку типа:
subclass.py:6:8: error: Argument 1 to "reader" has incompatible type "BinaryIO"; expected "BufferedIOBase" [arg-type]
reader(open("./README.md", "rb"))
^
Found 1 error in 1 file (checked 1 source file)
Это не должно быть ошибкой , поскольку BinaryIO
наследуется от BufferedIOBase
, что я здесь проверил:
isinstance(open("./README.md", "rb"), io.BufferedIOBase) # True
Итак, что не так с моей сигнатурой типа?