From 6f23d124c0a06c37ff8d29c333e8d8f2cd9f7e86 Mon Sep 17 00:00:00 2001 From: Matthias Kramm Date: Fri, 28 Jul 2017 21:07:37 -0700 Subject: [PATCH] Remove subclass IOBase from TextIOBase. (#1505) This used to cause TextIOBase to subclass both BinaryIO and TextIO, even though those two are incompatible. --- stdlib/2/fcntl.pyi | 4 ++-- stdlib/2/io.pyi | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/stdlib/2/fcntl.pyi b/stdlib/2/fcntl.pyi index 5e7da7fef..c7ff895e4 100644 --- a/stdlib/2/fcntl.pyi +++ b/stdlib/2/fcntl.pyi @@ -1,4 +1,4 @@ -from typing import Any, Union +from typing import Any, Union, IO import io FASYNC = ... # type: int @@ -72,7 +72,7 @@ LOCK_SH = ... # type: int LOCK_UN = ... # type: int LOCK_WRITE = ... # type: int -_ANYFILE = Union[int, io.IOBase] +_ANYFILE = Union[int, IO] # TODO All these return either int or bytes depending on the value of # cmd (not on the type of arg). diff --git a/stdlib/2/io.pyi b/stdlib/2/io.pyi index 0c01b2b15..e78ec5068 100644 --- a/stdlib/2/io.pyi +++ b/stdlib/2/io.pyi @@ -39,5 +39,7 @@ class RawIOBase(_io._RawIOBase, IOBase): class BufferedIOBase(_io._BufferedIOBase, IOBase): pass -class TextIOBase(_io._TextIOBase, IOBase): # type: ignore +# Note: In the actual io.py, TextIOBase subclasses IOBase. +# (Which we don't do here because we don't want to subclass both TextIO and BinaryIO.) +class TextIOBase(_io._TextIOBase): pass