Align io.py more squarely with CPython 3.10

This commit is contained in:
Padraic Fanning committed 2022-04-27 18:58:15 -04:00
1 parent 34f6d4559d
commit c8a8d324d1
1 file changed
+17 -3
Vendored
+17 -3
View File
@@ -55,15 +55,29 @@ from _io import (DEFAULT_BUFFER_SIZE, BlockingIOError, UnsupportedOperation,
open, open_code, BytesIO, StringIO, BufferedReader,
BufferedWriter, BufferedRWPair, BufferedRandom,
# XXX RUSTPYTHON TODO: IncrementalNewlineDecoder
# IncrementalNewlineDecoder, TextIOWrapper)
TextIOWrapper)
# IncrementalNewlineDecoder, text_encoding, TextIOWrapper)
text_encoding, TextIOWrapper)
try:
from _io import FileIO
except ImportError:
pass
OpenWrapper = _io.open # for compatibility with _pyio
def __getattr__(name):
if name == "OpenWrapper":
# bpo-43680: Until Python 3.9, _pyio.open was not a static method and
# builtins.open was set to OpenWrapper to not become a bound method
# when set to a class variable. _io.open is a built-in function whereas
# _pyio.open is a Python function. In Python 3.10, _pyio.open() is now
# a static method, and builtins.open() is now io.open().
import warnings
warnings.warn('OpenWrapper is deprecated, use open instead',
DeprecationWarning, stacklevel=2)
global OpenWrapper
OpenWrapper = open
return OpenWrapper
raise AttributeError(name)
# Pretend this exception was created here.
UnsupportedOperation.__module__ = "io"