diff -r 204a43c452cc Modules/_datetimemodule.c --- a/Modules/_datetimemodule.c Sat Oct 22 23:18:31 2016 +0300 +++ b/Modules/_datetimemodule.c Sat Oct 22 23:46:34 2016 +0300 @@ -3243,9 +3243,8 @@ timezone_new(PyTypeObject *type, PyObjec { PyObject *offset; PyObject *name = NULL; - if (PyArg_ParseTupleAndKeywords(args, kw, "O!|O!:timezone", timezone_kws, - &PyDateTime_DeltaType, &offset, - &PyUnicode_Type, &name)) + if (PyArg_ParseTupleAndKeywords(args, kw, "O!|U:timezone", timezone_kws, + &PyDateTime_DeltaType, &offset, &name)) return new_timezone(offset, name); return NULL; diff -r 204a43c452cc Modules/clinic/unicodedata.c.h --- a/Modules/clinic/unicodedata.c.h Sat Oct 22 23:18:31 2016 +0300 +++ b/Modules/clinic/unicodedata.c.h Sat Oct 22 23:46:34 2016 +0300 @@ -306,8 +306,8 @@ unicodedata_UCD_normalize(PyObject *self const char *form; PyObject *input; - if (!PyArg_ParseTuple(args, "sO!:normalize", - &form, &PyUnicode_Type, &input)) { + if (!PyArg_ParseTuple(args, "sU:normalize", + &form, &input)) { goto exit; } return_value = unicodedata_UCD_normalize_impl(self, form, input); @@ -379,4 +379,4 @@ unicodedata_UCD_lookup(PyObject *self, P exit: return return_value; } -/*[clinic end generated code: output=5313ce129da87b2f input=a9049054013a1b77]*/ +/*[clinic end generated code: output=07e93c267323a576 input=a9049054013a1b77]*/ diff -r 204a43c452cc Modules/unicodedata.c --- a/Modules/unicodedata.c Sat Oct 22 23:18:31 2016 +0300 +++ b/Modules/unicodedata.c Sat Oct 22 23:46:34 2016 +0300 @@ -808,7 +808,7 @@ unicodedata.UCD.normalize self: self form: str - unistr as input: object(subclass_of='&PyUnicode_Type') + unistr as input: unicode / Return the normal form 'form' for the Unicode string unistr. @@ -819,11 +819,8 @@ Valid values for form are 'NFC', 'NFKC', static PyObject * unicodedata_UCD_normalize_impl(PyObject *self, const char *form, PyObject *input) -/*[clinic end generated code: output=62d1f8870027efdc input=cd092e631cf11883]*/ +/*[clinic end generated code: output=62d1f8870027efdc input=1744c55f4ab79bf0]*/ { - if (PyUnicode_READY(input) == -1) - return NULL; - if (PyUnicode_GET_LENGTH(input) == 0) { /* Special case empty input strings, since resizing them later would cause internal errors. */ diff -r 204a43c452cc Objects/exceptions.c --- a/Objects/exceptions.c Sat Oct 22 23:18:31 2016 +0300 +++ b/Objects/exceptions.c Sat Oct 22 23:46:34 2016 +0300 @@ -1820,21 +1820,16 @@ UnicodeEncodeError_init(PyObject *self, Py_CLEAR(err->object); Py_CLEAR(err->reason); - if (!PyArg_ParseTuple(args, "O!O!nnO!", - &PyUnicode_Type, &err->encoding, - &PyUnicode_Type, &err->object, + if (!PyArg_ParseTuple(args, "UUnnU", + &err->encoding, + &err->object, &err->start, &err->end, - &PyUnicode_Type, &err->reason)) { + &err->reason)) { err->encoding = err->object = err->reason = NULL; return -1; } - if (PyUnicode_READY(err->object) < -1) { - err->encoding = NULL; - return -1; - } - Py_INCREF(err->encoding); Py_INCREF(err->object); Py_INCREF(err->reason); @@ -1935,12 +1930,12 @@ UnicodeDecodeError_init(PyObject *self, Py_CLEAR(ude->object); Py_CLEAR(ude->reason); - if (!PyArg_ParseTuple(args, "O!OnnO!", - &PyUnicode_Type, &ude->encoding, + if (!PyArg_ParseTuple(args, "UOnnU", + &ude->encoding, &ude->object, &ude->start, &ude->end, - &PyUnicode_Type, &ude->reason)) { + &ude->reason)) { ude->encoding = ude->object = ude->reason = NULL; return -1; } @@ -2050,11 +2045,11 @@ UnicodeTranslateError_init(PyUnicodeErro Py_CLEAR(self->object); Py_CLEAR(self->reason); - if (!PyArg_ParseTuple(args, "O!nnO!", - &PyUnicode_Type, &self->object, + if (!PyArg_ParseTuple(args, "UnnU", + &self->object, &self->start, &self->end, - &PyUnicode_Type, &self->reason)) { + &self->reason)) { self->object = self->reason = NULL; return -1; } diff -r 204a43c452cc Objects/unicodeobject.c --- a/Objects/unicodeobject.c Sat Oct 22 23:18:31 2016 +0300 +++ b/Objects/unicodeobject.c Sat Oct 22 23:46:34 2016 +0300 @@ -8621,7 +8621,7 @@ unicode_translate_call_errorhandler(cons Py_ssize_t startpos, Py_ssize_t endpos, Py_ssize_t *newpos) { - static const char *argparse = "O!n;translating error handler must return (str, int) tuple"; + static const char *argparse = "Un;translating error handler must return (str, int) tuple"; Py_ssize_t i_newpos; PyObject *restuple; @@ -8643,11 +8643,11 @@ unicode_translate_call_errorhandler(cons if (restuple == NULL) return NULL; if (!PyTuple_Check(restuple)) { - PyErr_SetString(PyExc_TypeError, &argparse[4]); + PyErr_SetString(PyExc_TypeError, &argparse[3]); Py_DECREF(restuple); return NULL; } - if (!PyArg_ParseTuple(restuple, argparse, &PyUnicode_Type, + if (!PyArg_ParseTuple(restuple, argparse, &resunicode, &i_newpos)) { Py_DECREF(restuple); return NULL;