Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
20d32557
Commit
20d32557
authored
Apr 15, 2016
by
Martin Panter
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue #15984: Correct PyUnicode_FromObject() and _FromEncodedObject() docs
parent
6245cb3c
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
21 deletions
+15
-21
Doc/c-api/unicode.rst
Doc/c-api/unicode.rst
+7
-5
Include/unicodeobject.h
Include/unicodeobject.h
+8
-16
No files found.
Doc/c-api/unicode.rst
View file @
20d32557
...
@@ -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
...
...
Include/unicodeobject.h
View file @
20d32557
...
@@ -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.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment