diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-27 21:08:00 +0300 |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-27 21:08:00 +0300 |
commit | 2edcd1cba499c8bc04e8d8a3e153ccbf7e9eecee (patch) | |
tree | 21a49b766716f353e741900d4fd2b5291994e00d | |
parent | 9e7d6a9d5efed11ca35f86a79db026a5a852af56 (diff) | |
parent | 0093907f0ed88c6aa3561cc4328154ae907bc976 (diff) | |
download | cpython-git-2edcd1cba499c8bc04e8d8a3e153ccbf7e9eecee.tar.gz |
Issue #28426: Deprecated undocumented functions PyUnicode_AsEncodedObject(),
PyUnicode_AsDecodedObject(), PyUnicode_AsDecodedUnicode() and
PyUnicode_AsEncodedUnicode().
-rw-r--r-- | Doc/whatsnew/3.6.rst | 5 | ||||
-rw-r--r-- | Include/unicodeobject.h | 33 | ||||
-rw-r--r-- | Misc/NEWS | 7 | ||||
-rw-r--r-- | Objects/unicodeobject.c | 21 |
4 files changed, 57 insertions, 9 deletions
diff --git a/Doc/whatsnew/3.6.rst b/Doc/whatsnew/3.6.rst index ba50a8e03b..a612d6b866 100644 --- a/Doc/whatsnew/3.6.rst +++ b/Doc/whatsnew/3.6.rst @@ -1231,7 +1231,10 @@ Deprecated Python modules, functions and methods Deprecated functions and types of the C API ------------------------------------------- -* None yet. +* Undocumented functions :c:func:`PyUnicode_AsEncodedObject`, + :c:func:`PyUnicode_AsDecodedObject`, :c:func:`PyUnicode_AsEncodedUnicode` + and :c:func:`PyUnicode_AsDecodedUnicode` are deprecated now. + Use :ref:`generic codec based API <codec-registry>` instead. Deprecated features diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index 643d10d274..5711de0164 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -1171,22 +1171,30 @@ PyAPI_FUNC(PyObject*) PyUnicode_Decode( ); /* Decode a Unicode object unicode and return the result as Python - object. */ + object. + + This API is DEPRECATED. The only supported standard encoding is rot13. + Use PyCodec_Decode() to decode with rot13 and non-standard codecs + that decode from str. */ PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedObject( PyObject *unicode, /* Unicode object */ const char *encoding, /* encoding */ const char *errors /* error handling */ - ); + ) Py_DEPRECATED(3.6); /* Decode a Unicode object unicode and return the result as Unicode - object. */ + object. + + This API is DEPRECATED. The only supported standard encoding is rot13. + Use PyCodec_Decode() to decode with rot13 and non-standard codecs + that decode from str to str. */ PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedUnicode( PyObject *unicode, /* Unicode object */ const char *encoding, /* encoding */ const char *errors /* error handling */ - ); + ) Py_DEPRECATED(3.6); /* Encodes a Py_UNICODE buffer of the given size and returns a Python string object. */ @@ -1201,13 +1209,18 @@ PyAPI_FUNC(PyObject*) PyUnicode_Encode( #endif /* Encodes a Unicode object and returns the result as Python - object. */ + object. + + This API is DEPRECATED. It is superceeded by PyUnicode_AsEncodedString() + since all standard encodings (except rot13) encode str to bytes. + Use PyCodec_Encode() for encoding with rot13 and non-standard codecs + that encode form str to non-bytes. */ PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedObject( PyObject *unicode, /* Unicode object */ const char *encoding, /* encoding */ const char *errors /* error handling */ - ); + ) Py_DEPRECATED(3.6); /* Encodes a Unicode object and returns the result as Python string object. */ @@ -1219,13 +1232,17 @@ PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedString( ); /* Encodes a Unicode object and returns the result as Unicode - object. */ + object. + + This API is DEPRECATED. The only supported standard encodings is rot13. + Use PyCodec_Encode() to encode with rot13 and non-standard codecs + that encode from str to str. */ PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedUnicode( PyObject *unicode, /* Unicode object */ const char *encoding, /* encoding */ const char *errors /* error handling */ - ); + ) Py_DEPRECATED(3.6); /* Build an encoding map. */ @@ -345,6 +345,13 @@ Windows - Issue #28138: Windows ._pth file should allow import site +C API +----- + +- Issue #28426: Deprecated undocumented functions PyUnicode_AsEncodedObject(), + PyUnicode_AsDecodedObject(), PyUnicode_AsDecodedUnicode() and + PyUnicode_AsEncodedUnicode(). + Build ----- diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 2a0dc767c2..134fa07600 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -3237,6 +3237,11 @@ PyUnicode_AsDecodedObject(PyObject *unicode, return NULL; } + if (PyErr_WarnEx(PyExc_DeprecationWarning, + "PyUnicode_AsDecodedObject() is deprecated; " + "use PyCodec_Decode() to decode from str", 1) < 0) + return NULL; + if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); @@ -3256,6 +3261,11 @@ PyUnicode_AsDecodedUnicode(PyObject *unicode, goto onError; } + if (PyErr_WarnEx(PyExc_DeprecationWarning, + "PyUnicode_AsDecodedUnicode() is deprecated; " + "use PyCodec_Decode() to decode from str to str", 1) < 0) + return NULL; + if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); @@ -3306,6 +3316,12 @@ PyUnicode_AsEncodedObject(PyObject *unicode, goto onError; } + if (PyErr_WarnEx(PyExc_DeprecationWarning, + "PyUnicode_AsEncodedObject() is deprecated; " + "use PyUnicode_AsEncodedString() to encode from str to bytes " + "or PyCodec_Encode() for generic encoding", 1) < 0) + return NULL; + if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); @@ -3628,6 +3644,11 @@ PyUnicode_AsEncodedUnicode(PyObject *unicode, goto onError; } + if (PyErr_WarnEx(PyExc_DeprecationWarning, + "PyUnicode_AsEncodedUnicode() is deprecated; " + "use PyCodec_Encode() to encode from str to str", 1) < 0) + return NULL; + if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); |