Commit 0093907f authored by Serhiy Storchaka's avatar Serhiy Storchaka

Issue #28426: Deprecated undocumented functions PyUnicode_AsEncodedObject(),

PyUnicode_AsDecodedObject(), PyUnicode_AsDecodedUnicode() and
PyUnicode_AsEncodedUnicode().
parent 802426f9
...@@ -1230,7 +1230,10 @@ Deprecated Python modules, functions and methods ...@@ -1230,7 +1230,10 @@ Deprecated Python modules, functions and methods
Deprecated functions and types of the C API 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 Deprecated features
......
...@@ -1171,22 +1171,30 @@ PyAPI_FUNC(PyObject*) PyUnicode_Decode( ...@@ -1171,22 +1171,30 @@ PyAPI_FUNC(PyObject*) PyUnicode_Decode(
); );
/* Decode a Unicode object unicode and return the result as Python /* 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( PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedObject(
PyObject *unicode, /* Unicode object */ PyObject *unicode, /* Unicode object */
const char *encoding, /* encoding */ const char *encoding, /* encoding */
const char *errors /* error handling */ const char *errors /* error handling */
); ) Py_DEPRECATED(3.6);
/* Decode a Unicode object unicode and return the result as Unicode /* 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( PyAPI_FUNC(PyObject*) PyUnicode_AsDecodedUnicode(
PyObject *unicode, /* Unicode object */ PyObject *unicode, /* Unicode object */
const char *encoding, /* encoding */ const char *encoding, /* encoding */
const char *errors /* error handling */ const char *errors /* error handling */
); ) Py_DEPRECATED(3.6);
/* Encodes a Py_UNICODE buffer of the given size and returns a /* Encodes a Py_UNICODE buffer of the given size and returns a
Python string object. */ Python string object. */
...@@ -1201,13 +1209,18 @@ PyAPI_FUNC(PyObject*) PyUnicode_Encode( ...@@ -1201,13 +1209,18 @@ PyAPI_FUNC(PyObject*) PyUnicode_Encode(
#endif #endif
/* Encodes a Unicode object and returns the result as Python /* 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( PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedObject(
PyObject *unicode, /* Unicode object */ PyObject *unicode, /* Unicode object */
const char *encoding, /* encoding */ const char *encoding, /* encoding */
const char *errors /* error handling */ const char *errors /* error handling */
); ) Py_DEPRECATED(3.6);
/* Encodes a Unicode object and returns the result as Python string /* Encodes a Unicode object and returns the result as Python string
object. */ object. */
...@@ -1219,13 +1232,17 @@ PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedString( ...@@ -1219,13 +1232,17 @@ PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedString(
); );
/* Encodes a Unicode object and returns the result as Unicode /* 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( PyAPI_FUNC(PyObject*) PyUnicode_AsEncodedUnicode(
PyObject *unicode, /* Unicode object */ PyObject *unicode, /* Unicode object */
const char *encoding, /* encoding */ const char *encoding, /* encoding */
const char *errors /* error handling */ const char *errors /* error handling */
); ) Py_DEPRECATED(3.6);
/* Build an encoding map. */ /* Build an encoding map. */
......
...@@ -349,6 +349,13 @@ Windows ...@@ -349,6 +349,13 @@ Windows
- Issue #28138: Windows ._pth file should allow import site - 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 Build
----- -----
......
...@@ -3241,6 +3241,11 @@ PyUnicode_AsDecodedObject(PyObject *unicode, ...@@ -3241,6 +3241,11 @@ PyUnicode_AsDecodedObject(PyObject *unicode,
return NULL; 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) if (encoding == NULL)
encoding = PyUnicode_GetDefaultEncoding(); encoding = PyUnicode_GetDefaultEncoding();
...@@ -3260,6 +3265,11 @@ PyUnicode_AsDecodedUnicode(PyObject *unicode, ...@@ -3260,6 +3265,11 @@ PyUnicode_AsDecodedUnicode(PyObject *unicode,
goto onError; 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) if (encoding == NULL)
encoding = PyUnicode_GetDefaultEncoding(); encoding = PyUnicode_GetDefaultEncoding();
...@@ -3310,6 +3320,12 @@ PyUnicode_AsEncodedObject(PyObject *unicode, ...@@ -3310,6 +3320,12 @@ PyUnicode_AsEncodedObject(PyObject *unicode,
goto onError; 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) if (encoding == NULL)
encoding = PyUnicode_GetDefaultEncoding(); encoding = PyUnicode_GetDefaultEncoding();
...@@ -3635,6 +3651,11 @@ PyUnicode_AsEncodedUnicode(PyObject *unicode, ...@@ -3635,6 +3651,11 @@ PyUnicode_AsEncodedUnicode(PyObject *unicode,
goto onError; 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) if (encoding == NULL)
encoding = PyUnicode_GetDefaultEncoding(); encoding = PyUnicode_GetDefaultEncoding();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment