mirror of
https://github.com/python/cpython.git
synced 2025-07-29 06:05:00 +00:00
Slightly revised version of patch #1538956:
Replace UnicodeDecodeErrors raised during == and != compares of Unicode and other objects with a new UnicodeWarning. All other comparisons continue to raise exceptions. Exceptions other than UnicodeDecodeErrors are also left untouched.
This commit is contained in:
parent
e6dd31c50b
commit
040f76b79c
11 changed files with 170 additions and 36 deletions
|
@ -189,6 +189,7 @@ typedef PY_UNICODE_TYPE Py_UNICODE;
|
|||
# define PyUnicode_RSplit PyUnicodeUCS2_RSplit
|
||||
# define PyUnicode_Replace PyUnicodeUCS2_Replace
|
||||
# define PyUnicode_Resize PyUnicodeUCS2_Resize
|
||||
# define PyUnicode_RichCompare PyUnicodeUCS2_RichCompare
|
||||
# define PyUnicode_SetDefaultEncoding PyUnicodeUCS2_SetDefaultEncoding
|
||||
# define PyUnicode_Split PyUnicodeUCS2_Split
|
||||
# define PyUnicode_Splitlines PyUnicodeUCS2_Splitlines
|
||||
|
@ -266,6 +267,7 @@ typedef PY_UNICODE_TYPE Py_UNICODE;
|
|||
# define PyUnicode_RSplit PyUnicodeUCS4_RSplit
|
||||
# define PyUnicode_Replace PyUnicodeUCS4_Replace
|
||||
# define PyUnicode_Resize PyUnicodeUCS4_Resize
|
||||
# define PyUnicode_RichCompare PyUnicodeUCS4_RichCompare
|
||||
# define PyUnicode_SetDefaultEncoding PyUnicodeUCS4_SetDefaultEncoding
|
||||
# define PyUnicode_Split PyUnicodeUCS4_Split
|
||||
# define PyUnicode_Splitlines PyUnicodeUCS4_Splitlines
|
||||
|
@ -1139,6 +1141,28 @@ PyAPI_FUNC(int) PyUnicode_Compare(
|
|||
PyObject *right /* Right string */
|
||||
);
|
||||
|
||||
/* Rich compare two strings and return one of the following:
|
||||
|
||||
- NULL in case an exception was raised
|
||||
- Py_True or Py_False for successfuly comparisons
|
||||
- Py_NotImplemented in case the type combination is unknown
|
||||
|
||||
Note that Py_EQ and Py_NE comparisons can cause a UnicodeWarning in
|
||||
case the conversion of the arguments to Unicode fails with a
|
||||
UnicodeDecodeError.
|
||||
|
||||
Possible values for op:
|
||||
|
||||
Py_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE
|
||||
|
||||
*/
|
||||
|
||||
PyAPI_FUNC(PyObject *) PyUnicode_RichCompare(
|
||||
PyObject *left, /* Left string */
|
||||
PyObject *right, /* Right string */
|
||||
int op /* Operation: Py_EQ, Py_NE, Py_GT, etc. */
|
||||
);
|
||||
|
||||
/* Apply a argument tuple or dictionary to a format string and return
|
||||
the resulting Unicode string. */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue