diff options
author | Victor Stinner <vstinner@python.org> | 2019-10-28 14:40:08 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-28 14:40:08 (GMT) |
commit | e471e72977c83664f13d041c78549140c86c92de (patch) | |
tree | feddc2c15e7199122f6f59992de0dab8f73b6149 /Modules/_io/_iomodule.c | |
parent | 3bfc8e0fcc707d200c267ff05b052fd6a63c985a (diff) | |
download | cpython-e471e72977c83664f13d041c78549140c86c92de.zip cpython-e471e72977c83664f13d041c78549140c86c92de.tar.gz cpython-e471e72977c83664f13d041c78549140c86c92de.tar.bz2 |
bpo-37330: open() no longer accept 'U' in file mode (GH-16959)
open(), io.open(), codecs.open() and fileinput.FileInput no longer
accept "U" ("universal newline") in the file mode. This flag was
deprecated since Python 3.3.
Diffstat (limited to 'Modules/_io/_iomodule.c')
-rw-r--r-- | Modules/_io/_iomodule.c | 25 |
1 files changed, 2 insertions, 23 deletions
diff --git a/Modules/_io/_iomodule.c b/Modules/_io/_iomodule.c index b4cc894..5932363 100644 --- a/Modules/_io/_iomodule.c +++ b/Modules/_io/_iomodule.c @@ -138,7 +138,6 @@ Character Meaning 'b' binary mode 't' text mode (default) '+' open a disk file for updating (reading and writing) -'U' universal newline mode (deprecated) ========= =============================================================== The default mode is 'rt' (open for reading text). For binary random @@ -154,10 +153,6 @@ bytes objects without any decoding. In text mode (the default, or when returned as strings, the bytes having been first decoded using a platform-dependent encoding or using the specified encoding if given. -'U' mode is deprecated and will raise an exception in future versions -of Python. It has no effect in Python 3. Use newline to control -universal newlines mode. - buffering is an optional integer used to set the buffering policy. Pass 0 to switch buffering off (only allowed in binary mode), 1 to select line buffering (only usable in text mode), and an integer > 1 to indicate @@ -233,12 +228,12 @@ static PyObject * _io_open_impl(PyObject *module, PyObject *file, const char *mode, int buffering, const char *encoding, const char *errors, const char *newline, int closefd, PyObject *opener) -/*[clinic end generated code: output=aefafc4ce2b46dc0 input=7295902222e6b311]*/ +/*[clinic end generated code: output=aefafc4ce2b46dc0 input=1543f4511d2356a5]*/ { unsigned i; int creating = 0, reading = 0, writing = 0, appending = 0, updating = 0; - int text = 0, binary = 0, universal = 0; + int text = 0, binary = 0; char rawmode[6], *m; int line_buffering, is_number; @@ -296,10 +291,6 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode, case 'b': binary = 1; break; - case 'U': - universal = 1; - reading = 1; - break; default: goto invalid_mode; } @@ -322,18 +313,6 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode, *m = '\0'; /* Parameters validation */ - if (universal) { - if (creating || writing || appending || updating) { - PyErr_SetString(PyExc_ValueError, - "mode U cannot be combined with 'x', 'w', 'a', or '+'"); - goto error; - } - if (PyErr_WarnEx(PyExc_DeprecationWarning, - "'U' mode is deprecated", 1) < 0) - goto error; - reading = 1; - } - if (text && binary) { PyErr_SetString(PyExc_ValueError, "can't have text and binary mode at once"); |