Commit 20d32557 authored by Martin Panter's avatar Martin Panter

Issue #15984: Correct PyUnicode_FromObject() and _FromEncodedObject() docs

parent 6245cb3c
...@@ -556,14 +556,13 @@ APIs: ...@@ -556,14 +556,13 @@ APIs:
.. c:function:: PyObject* PyUnicode_FromEncodedObject(PyObject *obj, \ .. c:function:: PyObject* PyUnicode_FromEncodedObject(PyObject *obj, \
const char *encoding, const char *errors) const char *encoding, const char *errors)
Coerce an encoded object *obj* to a Unicode object and return a reference with Decode an encoded object *obj* to a Unicode object.
incremented refcount.
:class:`bytes`, :class:`bytearray` and other :class:`bytes`, :class:`bytearray` and other
:term:`bytes-like objects <bytes-like object>` :term:`bytes-like objects <bytes-like object>`
are decoded according to the given *encoding* and using the error handling are decoded according to the given *encoding* and using the error handling
defined by *errors*. Both can be *NULL* to have the interface use the default defined by *errors*. Both can be *NULL* to have the interface use the default
values (see the next section for details). values (see :ref:`builtincodecs` for details).
All other objects, including Unicode objects, cause a :exc:`TypeError` to be All other objects, including Unicode objects, cause a :exc:`TypeError` to be
set. set.
...@@ -745,8 +744,11 @@ Extension modules can continue using them, as they will not be removed in Python ...@@ -745,8 +744,11 @@ Extension modules can continue using them, as they will not be removed in Python
.. c:function:: PyObject* PyUnicode_FromObject(PyObject *obj) .. c:function:: PyObject* PyUnicode_FromObject(PyObject *obj)
Shortcut for ``PyUnicode_FromEncodedObject(obj, NULL, "strict")`` which is used Copy an instance of a Unicode subtype to a new true Unicode object if
throughout the interpreter whenever coercion to Unicode is needed. necessary. If *obj* is already a true Unicode object (not a subtype),
return the reference with incremented refcount.
Objects other than Unicode or its subtypes will cause a :exc:`TypeError`.
Locale Encoding Locale Encoding
......
...@@ -844,17 +844,13 @@ PyAPI_FUNC(int) PyUnicode_Resize( ...@@ -844,17 +844,13 @@ PyAPI_FUNC(int) PyUnicode_Resize(
Py_ssize_t length /* New length */ Py_ssize_t length /* New length */
); );
/* Coerce obj to a Unicode object and return a reference with /* Decode obj to an Unicode object.
*incremented* refcount.
Coercion is done in the following way: bytes, bytearray and other bytes-like objects are decoded according to the
given encoding and error handler. The encoding and error handler can be
NULL to have the interface use UTF-8 and "strict".
1. bytes, bytearray and other bytes-like objects are decoded All other objects (including Unicode objects) raise an exception.
under the assumptions that they contain data using the UTF-8
encoding. Decoding is done in "strict" mode.
2. All other objects (including Unicode objects) raise an
exception.
The API returns NULL in case of an error. The caller is responsible The API returns NULL in case of an error. The caller is responsible
for decref'ing the returned objects. for decref'ing the returned objects.
...@@ -867,13 +863,9 @@ PyAPI_FUNC(PyObject*) PyUnicode_FromEncodedObject( ...@@ -867,13 +863,9 @@ PyAPI_FUNC(PyObject*) PyUnicode_FromEncodedObject(
const char *errors /* error handling */ const char *errors /* error handling */
); );
/* Coerce obj to a Unicode object and return a reference with /* Copy an instance of a Unicode subtype to a new true Unicode object if
*incremented* refcount. necessary. If obj is already a true Unicode object (not a subtype), return
the reference with *incremented* refcount.
Unicode objects are passed back as-is (subclasses are converted to
true Unicode objects), all other objects are delegated to
PyUnicode_FromEncodedObject(obj, NULL, "strict") which results in
using UTF-8 encoding as basis for decoding the object.
The API returns NULL in case of an error. The caller is responsible The API returns NULL in case of an error. The caller is responsible
for decref'ing the returned objects. for decref'ing the returned objects.
......
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