summaryrefslogtreecommitdiffstats
path: root/Lib/codecs.py
diff options
context:
space:
mode:
authorAlexey Izbyshev <izbyshev@ispras.ru>2018-10-20 00:22:31 (GMT)
committerVictor Stinner <vstinner@redhat.com>2018-10-20 00:22:31 (GMT)
commita2670565d8f5c502388378aba1fe73023fd8c8d4 (patch)
treea9f3a5f8e2a123aaff4f27a94c33580f0216dccd /Lib/codecs.py
parent4acf6c9d4be77b968fa498569d7a1545e5e77344 (diff)
downloadcpython-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.py5
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