mirror of
https://github.com/python/cpython.git
synced 2025-08-14 13:59:20 +00:00
Revert my commit 3555cf6f9c98: "Issue #8796: codecs.open() calls the builtin
open() function instead of using StreamReaderWriter. Deprecate StreamReader, StreamWriter, StreamReaderWriter, StreamRecoder and EncodedFile() of the codec module. Use the builtin open() function or io.TextIOWrapper instead." "It has not been approved !" wrote Marc-Andre Lemburg.
This commit is contained in:
parent
4f2dab5c33
commit
0501070669
4 changed files with 59 additions and 148 deletions
|
@ -345,8 +345,6 @@ class StreamWriter(Codec):
|
|||
The set of allowed parameter values can be extended via
|
||||
register_error.
|
||||
"""
|
||||
import warnings
|
||||
warnings.warn('use io.TextIOWrapper', DeprecationWarning, stacklevel=2)
|
||||
self.stream = stream
|
||||
self.errors = errors
|
||||
|
||||
|
@ -418,8 +416,6 @@ class StreamReader(Codec):
|
|||
The set of allowed parameter values can be extended via
|
||||
register_error.
|
||||
"""
|
||||
import warnings
|
||||
warnings.warn('use io.TextIOWrapper', DeprecationWarning, stacklevel=2)
|
||||
self.stream = stream
|
||||
self.errors = errors
|
||||
self.bytebuffer = b""
|
||||
|
@ -850,7 +846,7 @@ class StreamRecoder:
|
|||
|
||||
### Shortcuts
|
||||
|
||||
def open(filename, mode='r', encoding=None, errors=None, buffering=1):
|
||||
def open(filename, mode='rb', encoding=None, errors='strict', buffering=1):
|
||||
|
||||
""" Open an encoded file using the given mode and return
|
||||
a wrapped version providing transparent encoding/decoding.
|
||||
|
@ -881,13 +877,18 @@ def open(filename, mode='r', encoding=None, errors=None, buffering=1):
|
|||
parameter.
|
||||
|
||||
"""
|
||||
if encoding is not None:
|
||||
return builtins.open(filename, mode, buffering,
|
||||
encoding, errors, newline='')
|
||||
else:
|
||||
if 'b' not in mode:
|
||||
mode = mode + 'b'
|
||||
return builtins.open(filename, mode, buffering, encoding, errors)
|
||||
if encoding is not None and \
|
||||
'b' not in mode:
|
||||
# Force opening of the file in binary mode
|
||||
mode = mode + 'b'
|
||||
file = builtins.open(filename, mode, buffering)
|
||||
if encoding is None:
|
||||
return file
|
||||
info = lookup(encoding)
|
||||
srw = StreamReaderWriter(file, info.streamreader, info.streamwriter, errors)
|
||||
# Add attributes to simplify introspection
|
||||
srw.encoding = encoding
|
||||
return srw
|
||||
|
||||
def EncodedFile(file, data_encoding, file_encoding=None, errors='strict'):
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue