diff options
author | Alexey Izbyshev <izbyshev@ispras.ru> | 2018-10-20 00:22:31 (GMT) |
---|---|---|
committer | Victor Stinner <vstinner@redhat.com> | 2018-10-20 00:22:31 (GMT) |
commit | a2670565d8f5c502388378aba1fe73023fd8c8d4 (patch) | |
tree | a9f3a5f8e2a123aaff4f27a94c33580f0216dccd /Lib/codecs.py | |
parent | 4acf6c9d4be77b968fa498569d7a1545e5e77344 (diff) | |
download | cpython-a2670565d8f5c502388378aba1fe73023fd8c8d4.zip cpython-a2670565d8f5c502388378aba1fe73023fd8c8d4.tar.gz cpython-a2670565d8f5c502388378aba1fe73023fd8c8d4.tar.bz2 |
bpo-32236: open() emits RuntimeWarning if buffering=1 for binary mode (GH-4842)
If buffering=1 is specified for open() in binary mode, it is silently
treated as buffering=-1 (i.e., the default buffer size).
Coupled with the fact that line buffering is always supported in Python 2,
such behavior caused several issues (e.g., bpo-10344, bpo-21332).
Warn that line buffering is not supported if open() is called with
binary mode and buffering=1.
Diffstat (limited to 'Lib/codecs.py')
-rw-r--r-- | Lib/codecs.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Lib/codecs.py b/Lib/codecs.py index a70ed20..6b028ad 100644 --- a/Lib/codecs.py +++ b/Lib/codecs.py @@ -862,7 +862,7 @@ class StreamRecoder: ### Shortcuts -def open(filename, mode='r', encoding=None, errors='strict', buffering=1): +def open(filename, mode='r', encoding=None, errors='strict', buffering=-1): """ Open an encoded file using the given mode and return a wrapped version providing transparent encoding/decoding. @@ -883,7 +883,8 @@ def open(filename, mode='r', encoding=None, errors='strict', buffering=1): encoding error occurs. buffering has the same meaning as for the builtin open() API. - It defaults to line buffered. + It defaults to -1 which means that the default buffer size will + be used. The returned wrapped file object provides an extra attribute .encoding which allows querying the used encoding. This |