17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_decimal__doc__, 67db96d56Sopenharmony_ci"decimal($self, chr, default=<unrepresentable>, /)\n" 77db96d56Sopenharmony_ci"--\n" 87db96d56Sopenharmony_ci"\n" 97db96d56Sopenharmony_ci"Converts a Unicode character into its equivalent decimal value.\n" 107db96d56Sopenharmony_ci"\n" 117db96d56Sopenharmony_ci"Returns the decimal value assigned to the character chr as integer.\n" 127db96d56Sopenharmony_ci"If no such value is defined, default is returned, or, if not given,\n" 137db96d56Sopenharmony_ci"ValueError is raised."); 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ci#define UNICODEDATA_UCD_DECIMAL_METHODDEF \ 167db96d56Sopenharmony_ci {"decimal", _PyCFunction_CAST(unicodedata_UCD_decimal), METH_FASTCALL, unicodedata_UCD_decimal__doc__}, 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_cistatic PyObject * 197db96d56Sopenharmony_ciunicodedata_UCD_decimal_impl(PyObject *self, int chr, 207db96d56Sopenharmony_ci PyObject *default_value); 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_cistatic PyObject * 237db96d56Sopenharmony_ciunicodedata_UCD_decimal(PyObject *self, PyObject *const *args, Py_ssize_t nargs) 247db96d56Sopenharmony_ci{ 257db96d56Sopenharmony_ci PyObject *return_value = NULL; 267db96d56Sopenharmony_ci int chr; 277db96d56Sopenharmony_ci PyObject *default_value = NULL; 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("decimal", nargs, 1, 2)) { 307db96d56Sopenharmony_ci goto exit; 317db96d56Sopenharmony_ci } 327db96d56Sopenharmony_ci if (!PyUnicode_Check(args[0])) { 337db96d56Sopenharmony_ci _PyArg_BadArgument("decimal", "argument 1", "a unicode character", args[0]); 347db96d56Sopenharmony_ci goto exit; 357db96d56Sopenharmony_ci } 367db96d56Sopenharmony_ci if (PyUnicode_READY(args[0])) { 377db96d56Sopenharmony_ci goto exit; 387db96d56Sopenharmony_ci } 397db96d56Sopenharmony_ci if (PyUnicode_GET_LENGTH(args[0]) != 1) { 407db96d56Sopenharmony_ci _PyArg_BadArgument("decimal", "argument 1", "a unicode character", args[0]); 417db96d56Sopenharmony_ci goto exit; 427db96d56Sopenharmony_ci } 437db96d56Sopenharmony_ci chr = PyUnicode_READ_CHAR(args[0], 0); 447db96d56Sopenharmony_ci if (nargs < 2) { 457db96d56Sopenharmony_ci goto skip_optional; 467db96d56Sopenharmony_ci } 477db96d56Sopenharmony_ci default_value = args[1]; 487db96d56Sopenharmony_ciskip_optional: 497db96d56Sopenharmony_ci return_value = unicodedata_UCD_decimal_impl(self, chr, default_value); 507db96d56Sopenharmony_ci 517db96d56Sopenharmony_ciexit: 527db96d56Sopenharmony_ci return return_value; 537db96d56Sopenharmony_ci} 547db96d56Sopenharmony_ci 557db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_digit__doc__, 567db96d56Sopenharmony_ci"digit($self, chr, default=<unrepresentable>, /)\n" 577db96d56Sopenharmony_ci"--\n" 587db96d56Sopenharmony_ci"\n" 597db96d56Sopenharmony_ci"Converts a Unicode character into its equivalent digit value.\n" 607db96d56Sopenharmony_ci"\n" 617db96d56Sopenharmony_ci"Returns the digit value assigned to the character chr as integer.\n" 627db96d56Sopenharmony_ci"If no such value is defined, default is returned, or, if not given,\n" 637db96d56Sopenharmony_ci"ValueError is raised."); 647db96d56Sopenharmony_ci 657db96d56Sopenharmony_ci#define UNICODEDATA_UCD_DIGIT_METHODDEF \ 667db96d56Sopenharmony_ci {"digit", _PyCFunction_CAST(unicodedata_UCD_digit), METH_FASTCALL, unicodedata_UCD_digit__doc__}, 677db96d56Sopenharmony_ci 687db96d56Sopenharmony_cistatic PyObject * 697db96d56Sopenharmony_ciunicodedata_UCD_digit_impl(PyObject *self, int chr, PyObject *default_value); 707db96d56Sopenharmony_ci 717db96d56Sopenharmony_cistatic PyObject * 727db96d56Sopenharmony_ciunicodedata_UCD_digit(PyObject *self, PyObject *const *args, Py_ssize_t nargs) 737db96d56Sopenharmony_ci{ 747db96d56Sopenharmony_ci PyObject *return_value = NULL; 757db96d56Sopenharmony_ci int chr; 767db96d56Sopenharmony_ci PyObject *default_value = NULL; 777db96d56Sopenharmony_ci 787db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("digit", nargs, 1, 2)) { 797db96d56Sopenharmony_ci goto exit; 807db96d56Sopenharmony_ci } 817db96d56Sopenharmony_ci if (!PyUnicode_Check(args[0])) { 827db96d56Sopenharmony_ci _PyArg_BadArgument("digit", "argument 1", "a unicode character", args[0]); 837db96d56Sopenharmony_ci goto exit; 847db96d56Sopenharmony_ci } 857db96d56Sopenharmony_ci if (PyUnicode_READY(args[0])) { 867db96d56Sopenharmony_ci goto exit; 877db96d56Sopenharmony_ci } 887db96d56Sopenharmony_ci if (PyUnicode_GET_LENGTH(args[0]) != 1) { 897db96d56Sopenharmony_ci _PyArg_BadArgument("digit", "argument 1", "a unicode character", args[0]); 907db96d56Sopenharmony_ci goto exit; 917db96d56Sopenharmony_ci } 927db96d56Sopenharmony_ci chr = PyUnicode_READ_CHAR(args[0], 0); 937db96d56Sopenharmony_ci if (nargs < 2) { 947db96d56Sopenharmony_ci goto skip_optional; 957db96d56Sopenharmony_ci } 967db96d56Sopenharmony_ci default_value = args[1]; 977db96d56Sopenharmony_ciskip_optional: 987db96d56Sopenharmony_ci return_value = unicodedata_UCD_digit_impl(self, chr, default_value); 997db96d56Sopenharmony_ci 1007db96d56Sopenharmony_ciexit: 1017db96d56Sopenharmony_ci return return_value; 1027db96d56Sopenharmony_ci} 1037db96d56Sopenharmony_ci 1047db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_numeric__doc__, 1057db96d56Sopenharmony_ci"numeric($self, chr, default=<unrepresentable>, /)\n" 1067db96d56Sopenharmony_ci"--\n" 1077db96d56Sopenharmony_ci"\n" 1087db96d56Sopenharmony_ci"Converts a Unicode character into its equivalent numeric value.\n" 1097db96d56Sopenharmony_ci"\n" 1107db96d56Sopenharmony_ci"Returns the numeric value assigned to the character chr as float.\n" 1117db96d56Sopenharmony_ci"If no such value is defined, default is returned, or, if not given,\n" 1127db96d56Sopenharmony_ci"ValueError is raised."); 1137db96d56Sopenharmony_ci 1147db96d56Sopenharmony_ci#define UNICODEDATA_UCD_NUMERIC_METHODDEF \ 1157db96d56Sopenharmony_ci {"numeric", _PyCFunction_CAST(unicodedata_UCD_numeric), METH_FASTCALL, unicodedata_UCD_numeric__doc__}, 1167db96d56Sopenharmony_ci 1177db96d56Sopenharmony_cistatic PyObject * 1187db96d56Sopenharmony_ciunicodedata_UCD_numeric_impl(PyObject *self, int chr, 1197db96d56Sopenharmony_ci PyObject *default_value); 1207db96d56Sopenharmony_ci 1217db96d56Sopenharmony_cistatic PyObject * 1227db96d56Sopenharmony_ciunicodedata_UCD_numeric(PyObject *self, PyObject *const *args, Py_ssize_t nargs) 1237db96d56Sopenharmony_ci{ 1247db96d56Sopenharmony_ci PyObject *return_value = NULL; 1257db96d56Sopenharmony_ci int chr; 1267db96d56Sopenharmony_ci PyObject *default_value = NULL; 1277db96d56Sopenharmony_ci 1287db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("numeric", nargs, 1, 2)) { 1297db96d56Sopenharmony_ci goto exit; 1307db96d56Sopenharmony_ci } 1317db96d56Sopenharmony_ci if (!PyUnicode_Check(args[0])) { 1327db96d56Sopenharmony_ci _PyArg_BadArgument("numeric", "argument 1", "a unicode character", args[0]); 1337db96d56Sopenharmony_ci goto exit; 1347db96d56Sopenharmony_ci } 1357db96d56Sopenharmony_ci if (PyUnicode_READY(args[0])) { 1367db96d56Sopenharmony_ci goto exit; 1377db96d56Sopenharmony_ci } 1387db96d56Sopenharmony_ci if (PyUnicode_GET_LENGTH(args[0]) != 1) { 1397db96d56Sopenharmony_ci _PyArg_BadArgument("numeric", "argument 1", "a unicode character", args[0]); 1407db96d56Sopenharmony_ci goto exit; 1417db96d56Sopenharmony_ci } 1427db96d56Sopenharmony_ci chr = PyUnicode_READ_CHAR(args[0], 0); 1437db96d56Sopenharmony_ci if (nargs < 2) { 1447db96d56Sopenharmony_ci goto skip_optional; 1457db96d56Sopenharmony_ci } 1467db96d56Sopenharmony_ci default_value = args[1]; 1477db96d56Sopenharmony_ciskip_optional: 1487db96d56Sopenharmony_ci return_value = unicodedata_UCD_numeric_impl(self, chr, default_value); 1497db96d56Sopenharmony_ci 1507db96d56Sopenharmony_ciexit: 1517db96d56Sopenharmony_ci return return_value; 1527db96d56Sopenharmony_ci} 1537db96d56Sopenharmony_ci 1547db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_category__doc__, 1557db96d56Sopenharmony_ci"category($self, chr, /)\n" 1567db96d56Sopenharmony_ci"--\n" 1577db96d56Sopenharmony_ci"\n" 1587db96d56Sopenharmony_ci"Returns the general category assigned to the character chr as string."); 1597db96d56Sopenharmony_ci 1607db96d56Sopenharmony_ci#define UNICODEDATA_UCD_CATEGORY_METHODDEF \ 1617db96d56Sopenharmony_ci {"category", (PyCFunction)unicodedata_UCD_category, METH_O, unicodedata_UCD_category__doc__}, 1627db96d56Sopenharmony_ci 1637db96d56Sopenharmony_cistatic PyObject * 1647db96d56Sopenharmony_ciunicodedata_UCD_category_impl(PyObject *self, int chr); 1657db96d56Sopenharmony_ci 1667db96d56Sopenharmony_cistatic PyObject * 1677db96d56Sopenharmony_ciunicodedata_UCD_category(PyObject *self, PyObject *arg) 1687db96d56Sopenharmony_ci{ 1697db96d56Sopenharmony_ci PyObject *return_value = NULL; 1707db96d56Sopenharmony_ci int chr; 1717db96d56Sopenharmony_ci 1727db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 1737db96d56Sopenharmony_ci _PyArg_BadArgument("category", "argument", "a unicode character", arg); 1747db96d56Sopenharmony_ci goto exit; 1757db96d56Sopenharmony_ci } 1767db96d56Sopenharmony_ci if (PyUnicode_READY(arg)) { 1777db96d56Sopenharmony_ci goto exit; 1787db96d56Sopenharmony_ci } 1797db96d56Sopenharmony_ci if (PyUnicode_GET_LENGTH(arg) != 1) { 1807db96d56Sopenharmony_ci _PyArg_BadArgument("category", "argument", "a unicode character", arg); 1817db96d56Sopenharmony_ci goto exit; 1827db96d56Sopenharmony_ci } 1837db96d56Sopenharmony_ci chr = PyUnicode_READ_CHAR(arg, 0); 1847db96d56Sopenharmony_ci return_value = unicodedata_UCD_category_impl(self, chr); 1857db96d56Sopenharmony_ci 1867db96d56Sopenharmony_ciexit: 1877db96d56Sopenharmony_ci return return_value; 1887db96d56Sopenharmony_ci} 1897db96d56Sopenharmony_ci 1907db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_bidirectional__doc__, 1917db96d56Sopenharmony_ci"bidirectional($self, chr, /)\n" 1927db96d56Sopenharmony_ci"--\n" 1937db96d56Sopenharmony_ci"\n" 1947db96d56Sopenharmony_ci"Returns the bidirectional class assigned to the character chr as string.\n" 1957db96d56Sopenharmony_ci"\n" 1967db96d56Sopenharmony_ci"If no such value is defined, an empty string is returned."); 1977db96d56Sopenharmony_ci 1987db96d56Sopenharmony_ci#define UNICODEDATA_UCD_BIDIRECTIONAL_METHODDEF \ 1997db96d56Sopenharmony_ci {"bidirectional", (PyCFunction)unicodedata_UCD_bidirectional, METH_O, unicodedata_UCD_bidirectional__doc__}, 2007db96d56Sopenharmony_ci 2017db96d56Sopenharmony_cistatic PyObject * 2027db96d56Sopenharmony_ciunicodedata_UCD_bidirectional_impl(PyObject *self, int chr); 2037db96d56Sopenharmony_ci 2047db96d56Sopenharmony_cistatic PyObject * 2057db96d56Sopenharmony_ciunicodedata_UCD_bidirectional(PyObject *self, PyObject *arg) 2067db96d56Sopenharmony_ci{ 2077db96d56Sopenharmony_ci PyObject *return_value = NULL; 2087db96d56Sopenharmony_ci int chr; 2097db96d56Sopenharmony_ci 2107db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 2117db96d56Sopenharmony_ci _PyArg_BadArgument("bidirectional", "argument", "a unicode character", arg); 2127db96d56Sopenharmony_ci goto exit; 2137db96d56Sopenharmony_ci } 2147db96d56Sopenharmony_ci if (PyUnicode_READY(arg)) { 2157db96d56Sopenharmony_ci goto exit; 2167db96d56Sopenharmony_ci } 2177db96d56Sopenharmony_ci if (PyUnicode_GET_LENGTH(arg) != 1) { 2187db96d56Sopenharmony_ci _PyArg_BadArgument("bidirectional", "argument", "a unicode character", arg); 2197db96d56Sopenharmony_ci goto exit; 2207db96d56Sopenharmony_ci } 2217db96d56Sopenharmony_ci chr = PyUnicode_READ_CHAR(arg, 0); 2227db96d56Sopenharmony_ci return_value = unicodedata_UCD_bidirectional_impl(self, chr); 2237db96d56Sopenharmony_ci 2247db96d56Sopenharmony_ciexit: 2257db96d56Sopenharmony_ci return return_value; 2267db96d56Sopenharmony_ci} 2277db96d56Sopenharmony_ci 2287db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_combining__doc__, 2297db96d56Sopenharmony_ci"combining($self, chr, /)\n" 2307db96d56Sopenharmony_ci"--\n" 2317db96d56Sopenharmony_ci"\n" 2327db96d56Sopenharmony_ci"Returns the canonical combining class assigned to the character chr as integer.\n" 2337db96d56Sopenharmony_ci"\n" 2347db96d56Sopenharmony_ci"Returns 0 if no combining class is defined."); 2357db96d56Sopenharmony_ci 2367db96d56Sopenharmony_ci#define UNICODEDATA_UCD_COMBINING_METHODDEF \ 2377db96d56Sopenharmony_ci {"combining", (PyCFunction)unicodedata_UCD_combining, METH_O, unicodedata_UCD_combining__doc__}, 2387db96d56Sopenharmony_ci 2397db96d56Sopenharmony_cistatic int 2407db96d56Sopenharmony_ciunicodedata_UCD_combining_impl(PyObject *self, int chr); 2417db96d56Sopenharmony_ci 2427db96d56Sopenharmony_cistatic PyObject * 2437db96d56Sopenharmony_ciunicodedata_UCD_combining(PyObject *self, PyObject *arg) 2447db96d56Sopenharmony_ci{ 2457db96d56Sopenharmony_ci PyObject *return_value = NULL; 2467db96d56Sopenharmony_ci int chr; 2477db96d56Sopenharmony_ci int _return_value; 2487db96d56Sopenharmony_ci 2497db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 2507db96d56Sopenharmony_ci _PyArg_BadArgument("combining", "argument", "a unicode character", arg); 2517db96d56Sopenharmony_ci goto exit; 2527db96d56Sopenharmony_ci } 2537db96d56Sopenharmony_ci if (PyUnicode_READY(arg)) { 2547db96d56Sopenharmony_ci goto exit; 2557db96d56Sopenharmony_ci } 2567db96d56Sopenharmony_ci if (PyUnicode_GET_LENGTH(arg) != 1) { 2577db96d56Sopenharmony_ci _PyArg_BadArgument("combining", "argument", "a unicode character", arg); 2587db96d56Sopenharmony_ci goto exit; 2597db96d56Sopenharmony_ci } 2607db96d56Sopenharmony_ci chr = PyUnicode_READ_CHAR(arg, 0); 2617db96d56Sopenharmony_ci _return_value = unicodedata_UCD_combining_impl(self, chr); 2627db96d56Sopenharmony_ci if ((_return_value == -1) && PyErr_Occurred()) { 2637db96d56Sopenharmony_ci goto exit; 2647db96d56Sopenharmony_ci } 2657db96d56Sopenharmony_ci return_value = PyLong_FromLong((long)_return_value); 2667db96d56Sopenharmony_ci 2677db96d56Sopenharmony_ciexit: 2687db96d56Sopenharmony_ci return return_value; 2697db96d56Sopenharmony_ci} 2707db96d56Sopenharmony_ci 2717db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_mirrored__doc__, 2727db96d56Sopenharmony_ci"mirrored($self, chr, /)\n" 2737db96d56Sopenharmony_ci"--\n" 2747db96d56Sopenharmony_ci"\n" 2757db96d56Sopenharmony_ci"Returns the mirrored property assigned to the character chr as integer.\n" 2767db96d56Sopenharmony_ci"\n" 2777db96d56Sopenharmony_ci"Returns 1 if the character has been identified as a \"mirrored\"\n" 2787db96d56Sopenharmony_ci"character in bidirectional text, 0 otherwise."); 2797db96d56Sopenharmony_ci 2807db96d56Sopenharmony_ci#define UNICODEDATA_UCD_MIRRORED_METHODDEF \ 2817db96d56Sopenharmony_ci {"mirrored", (PyCFunction)unicodedata_UCD_mirrored, METH_O, unicodedata_UCD_mirrored__doc__}, 2827db96d56Sopenharmony_ci 2837db96d56Sopenharmony_cistatic int 2847db96d56Sopenharmony_ciunicodedata_UCD_mirrored_impl(PyObject *self, int chr); 2857db96d56Sopenharmony_ci 2867db96d56Sopenharmony_cistatic PyObject * 2877db96d56Sopenharmony_ciunicodedata_UCD_mirrored(PyObject *self, PyObject *arg) 2887db96d56Sopenharmony_ci{ 2897db96d56Sopenharmony_ci PyObject *return_value = NULL; 2907db96d56Sopenharmony_ci int chr; 2917db96d56Sopenharmony_ci int _return_value; 2927db96d56Sopenharmony_ci 2937db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 2947db96d56Sopenharmony_ci _PyArg_BadArgument("mirrored", "argument", "a unicode character", arg); 2957db96d56Sopenharmony_ci goto exit; 2967db96d56Sopenharmony_ci } 2977db96d56Sopenharmony_ci if (PyUnicode_READY(arg)) { 2987db96d56Sopenharmony_ci goto exit; 2997db96d56Sopenharmony_ci } 3007db96d56Sopenharmony_ci if (PyUnicode_GET_LENGTH(arg) != 1) { 3017db96d56Sopenharmony_ci _PyArg_BadArgument("mirrored", "argument", "a unicode character", arg); 3027db96d56Sopenharmony_ci goto exit; 3037db96d56Sopenharmony_ci } 3047db96d56Sopenharmony_ci chr = PyUnicode_READ_CHAR(arg, 0); 3057db96d56Sopenharmony_ci _return_value = unicodedata_UCD_mirrored_impl(self, chr); 3067db96d56Sopenharmony_ci if ((_return_value == -1) && PyErr_Occurred()) { 3077db96d56Sopenharmony_ci goto exit; 3087db96d56Sopenharmony_ci } 3097db96d56Sopenharmony_ci return_value = PyLong_FromLong((long)_return_value); 3107db96d56Sopenharmony_ci 3117db96d56Sopenharmony_ciexit: 3127db96d56Sopenharmony_ci return return_value; 3137db96d56Sopenharmony_ci} 3147db96d56Sopenharmony_ci 3157db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_east_asian_width__doc__, 3167db96d56Sopenharmony_ci"east_asian_width($self, chr, /)\n" 3177db96d56Sopenharmony_ci"--\n" 3187db96d56Sopenharmony_ci"\n" 3197db96d56Sopenharmony_ci"Returns the east asian width assigned to the character chr as string."); 3207db96d56Sopenharmony_ci 3217db96d56Sopenharmony_ci#define UNICODEDATA_UCD_EAST_ASIAN_WIDTH_METHODDEF \ 3227db96d56Sopenharmony_ci {"east_asian_width", (PyCFunction)unicodedata_UCD_east_asian_width, METH_O, unicodedata_UCD_east_asian_width__doc__}, 3237db96d56Sopenharmony_ci 3247db96d56Sopenharmony_cistatic PyObject * 3257db96d56Sopenharmony_ciunicodedata_UCD_east_asian_width_impl(PyObject *self, int chr); 3267db96d56Sopenharmony_ci 3277db96d56Sopenharmony_cistatic PyObject * 3287db96d56Sopenharmony_ciunicodedata_UCD_east_asian_width(PyObject *self, PyObject *arg) 3297db96d56Sopenharmony_ci{ 3307db96d56Sopenharmony_ci PyObject *return_value = NULL; 3317db96d56Sopenharmony_ci int chr; 3327db96d56Sopenharmony_ci 3337db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 3347db96d56Sopenharmony_ci _PyArg_BadArgument("east_asian_width", "argument", "a unicode character", arg); 3357db96d56Sopenharmony_ci goto exit; 3367db96d56Sopenharmony_ci } 3377db96d56Sopenharmony_ci if (PyUnicode_READY(arg)) { 3387db96d56Sopenharmony_ci goto exit; 3397db96d56Sopenharmony_ci } 3407db96d56Sopenharmony_ci if (PyUnicode_GET_LENGTH(arg) != 1) { 3417db96d56Sopenharmony_ci _PyArg_BadArgument("east_asian_width", "argument", "a unicode character", arg); 3427db96d56Sopenharmony_ci goto exit; 3437db96d56Sopenharmony_ci } 3447db96d56Sopenharmony_ci chr = PyUnicode_READ_CHAR(arg, 0); 3457db96d56Sopenharmony_ci return_value = unicodedata_UCD_east_asian_width_impl(self, chr); 3467db96d56Sopenharmony_ci 3477db96d56Sopenharmony_ciexit: 3487db96d56Sopenharmony_ci return return_value; 3497db96d56Sopenharmony_ci} 3507db96d56Sopenharmony_ci 3517db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_decomposition__doc__, 3527db96d56Sopenharmony_ci"decomposition($self, chr, /)\n" 3537db96d56Sopenharmony_ci"--\n" 3547db96d56Sopenharmony_ci"\n" 3557db96d56Sopenharmony_ci"Returns the character decomposition mapping assigned to the character chr as string.\n" 3567db96d56Sopenharmony_ci"\n" 3577db96d56Sopenharmony_ci"An empty string is returned in case no such mapping is defined."); 3587db96d56Sopenharmony_ci 3597db96d56Sopenharmony_ci#define UNICODEDATA_UCD_DECOMPOSITION_METHODDEF \ 3607db96d56Sopenharmony_ci {"decomposition", (PyCFunction)unicodedata_UCD_decomposition, METH_O, unicodedata_UCD_decomposition__doc__}, 3617db96d56Sopenharmony_ci 3627db96d56Sopenharmony_cistatic PyObject * 3637db96d56Sopenharmony_ciunicodedata_UCD_decomposition_impl(PyObject *self, int chr); 3647db96d56Sopenharmony_ci 3657db96d56Sopenharmony_cistatic PyObject * 3667db96d56Sopenharmony_ciunicodedata_UCD_decomposition(PyObject *self, PyObject *arg) 3677db96d56Sopenharmony_ci{ 3687db96d56Sopenharmony_ci PyObject *return_value = NULL; 3697db96d56Sopenharmony_ci int chr; 3707db96d56Sopenharmony_ci 3717db96d56Sopenharmony_ci if (!PyUnicode_Check(arg)) { 3727db96d56Sopenharmony_ci _PyArg_BadArgument("decomposition", "argument", "a unicode character", arg); 3737db96d56Sopenharmony_ci goto exit; 3747db96d56Sopenharmony_ci } 3757db96d56Sopenharmony_ci if (PyUnicode_READY(arg)) { 3767db96d56Sopenharmony_ci goto exit; 3777db96d56Sopenharmony_ci } 3787db96d56Sopenharmony_ci if (PyUnicode_GET_LENGTH(arg) != 1) { 3797db96d56Sopenharmony_ci _PyArg_BadArgument("decomposition", "argument", "a unicode character", arg); 3807db96d56Sopenharmony_ci goto exit; 3817db96d56Sopenharmony_ci } 3827db96d56Sopenharmony_ci chr = PyUnicode_READ_CHAR(arg, 0); 3837db96d56Sopenharmony_ci return_value = unicodedata_UCD_decomposition_impl(self, chr); 3847db96d56Sopenharmony_ci 3857db96d56Sopenharmony_ciexit: 3867db96d56Sopenharmony_ci return return_value; 3877db96d56Sopenharmony_ci} 3887db96d56Sopenharmony_ci 3897db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_is_normalized__doc__, 3907db96d56Sopenharmony_ci"is_normalized($self, form, unistr, /)\n" 3917db96d56Sopenharmony_ci"--\n" 3927db96d56Sopenharmony_ci"\n" 3937db96d56Sopenharmony_ci"Return whether the Unicode string unistr is in the normal form \'form\'.\n" 3947db96d56Sopenharmony_ci"\n" 3957db96d56Sopenharmony_ci"Valid values for form are \'NFC\', \'NFKC\', \'NFD\', and \'NFKD\'."); 3967db96d56Sopenharmony_ci 3977db96d56Sopenharmony_ci#define UNICODEDATA_UCD_IS_NORMALIZED_METHODDEF \ 3987db96d56Sopenharmony_ci {"is_normalized", _PyCFunction_CAST(unicodedata_UCD_is_normalized), METH_FASTCALL, unicodedata_UCD_is_normalized__doc__}, 3997db96d56Sopenharmony_ci 4007db96d56Sopenharmony_cistatic PyObject * 4017db96d56Sopenharmony_ciunicodedata_UCD_is_normalized_impl(PyObject *self, PyObject *form, 4027db96d56Sopenharmony_ci PyObject *input); 4037db96d56Sopenharmony_ci 4047db96d56Sopenharmony_cistatic PyObject * 4057db96d56Sopenharmony_ciunicodedata_UCD_is_normalized(PyObject *self, PyObject *const *args, Py_ssize_t nargs) 4067db96d56Sopenharmony_ci{ 4077db96d56Sopenharmony_ci PyObject *return_value = NULL; 4087db96d56Sopenharmony_ci PyObject *form; 4097db96d56Sopenharmony_ci PyObject *input; 4107db96d56Sopenharmony_ci 4117db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("is_normalized", nargs, 2, 2)) { 4127db96d56Sopenharmony_ci goto exit; 4137db96d56Sopenharmony_ci } 4147db96d56Sopenharmony_ci if (!PyUnicode_Check(args[0])) { 4157db96d56Sopenharmony_ci _PyArg_BadArgument("is_normalized", "argument 1", "str", args[0]); 4167db96d56Sopenharmony_ci goto exit; 4177db96d56Sopenharmony_ci } 4187db96d56Sopenharmony_ci if (PyUnicode_READY(args[0]) == -1) { 4197db96d56Sopenharmony_ci goto exit; 4207db96d56Sopenharmony_ci } 4217db96d56Sopenharmony_ci form = args[0]; 4227db96d56Sopenharmony_ci if (!PyUnicode_Check(args[1])) { 4237db96d56Sopenharmony_ci _PyArg_BadArgument("is_normalized", "argument 2", "str", args[1]); 4247db96d56Sopenharmony_ci goto exit; 4257db96d56Sopenharmony_ci } 4267db96d56Sopenharmony_ci if (PyUnicode_READY(args[1]) == -1) { 4277db96d56Sopenharmony_ci goto exit; 4287db96d56Sopenharmony_ci } 4297db96d56Sopenharmony_ci input = args[1]; 4307db96d56Sopenharmony_ci return_value = unicodedata_UCD_is_normalized_impl(self, form, input); 4317db96d56Sopenharmony_ci 4327db96d56Sopenharmony_ciexit: 4337db96d56Sopenharmony_ci return return_value; 4347db96d56Sopenharmony_ci} 4357db96d56Sopenharmony_ci 4367db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_normalize__doc__, 4377db96d56Sopenharmony_ci"normalize($self, form, unistr, /)\n" 4387db96d56Sopenharmony_ci"--\n" 4397db96d56Sopenharmony_ci"\n" 4407db96d56Sopenharmony_ci"Return the normal form \'form\' for the Unicode string unistr.\n" 4417db96d56Sopenharmony_ci"\n" 4427db96d56Sopenharmony_ci"Valid values for form are \'NFC\', \'NFKC\', \'NFD\', and \'NFKD\'."); 4437db96d56Sopenharmony_ci 4447db96d56Sopenharmony_ci#define UNICODEDATA_UCD_NORMALIZE_METHODDEF \ 4457db96d56Sopenharmony_ci {"normalize", _PyCFunction_CAST(unicodedata_UCD_normalize), METH_FASTCALL, unicodedata_UCD_normalize__doc__}, 4467db96d56Sopenharmony_ci 4477db96d56Sopenharmony_cistatic PyObject * 4487db96d56Sopenharmony_ciunicodedata_UCD_normalize_impl(PyObject *self, PyObject *form, 4497db96d56Sopenharmony_ci PyObject *input); 4507db96d56Sopenharmony_ci 4517db96d56Sopenharmony_cistatic PyObject * 4527db96d56Sopenharmony_ciunicodedata_UCD_normalize(PyObject *self, PyObject *const *args, Py_ssize_t nargs) 4537db96d56Sopenharmony_ci{ 4547db96d56Sopenharmony_ci PyObject *return_value = NULL; 4557db96d56Sopenharmony_ci PyObject *form; 4567db96d56Sopenharmony_ci PyObject *input; 4577db96d56Sopenharmony_ci 4587db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("normalize", nargs, 2, 2)) { 4597db96d56Sopenharmony_ci goto exit; 4607db96d56Sopenharmony_ci } 4617db96d56Sopenharmony_ci if (!PyUnicode_Check(args[0])) { 4627db96d56Sopenharmony_ci _PyArg_BadArgument("normalize", "argument 1", "str", args[0]); 4637db96d56Sopenharmony_ci goto exit; 4647db96d56Sopenharmony_ci } 4657db96d56Sopenharmony_ci if (PyUnicode_READY(args[0]) == -1) { 4667db96d56Sopenharmony_ci goto exit; 4677db96d56Sopenharmony_ci } 4687db96d56Sopenharmony_ci form = args[0]; 4697db96d56Sopenharmony_ci if (!PyUnicode_Check(args[1])) { 4707db96d56Sopenharmony_ci _PyArg_BadArgument("normalize", "argument 2", "str", args[1]); 4717db96d56Sopenharmony_ci goto exit; 4727db96d56Sopenharmony_ci } 4737db96d56Sopenharmony_ci if (PyUnicode_READY(args[1]) == -1) { 4747db96d56Sopenharmony_ci goto exit; 4757db96d56Sopenharmony_ci } 4767db96d56Sopenharmony_ci input = args[1]; 4777db96d56Sopenharmony_ci return_value = unicodedata_UCD_normalize_impl(self, form, input); 4787db96d56Sopenharmony_ci 4797db96d56Sopenharmony_ciexit: 4807db96d56Sopenharmony_ci return return_value; 4817db96d56Sopenharmony_ci} 4827db96d56Sopenharmony_ci 4837db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_name__doc__, 4847db96d56Sopenharmony_ci"name($self, chr, default=<unrepresentable>, /)\n" 4857db96d56Sopenharmony_ci"--\n" 4867db96d56Sopenharmony_ci"\n" 4877db96d56Sopenharmony_ci"Returns the name assigned to the character chr as a string.\n" 4887db96d56Sopenharmony_ci"\n" 4897db96d56Sopenharmony_ci"If no name is defined, default is returned, or, if not given,\n" 4907db96d56Sopenharmony_ci"ValueError is raised."); 4917db96d56Sopenharmony_ci 4927db96d56Sopenharmony_ci#define UNICODEDATA_UCD_NAME_METHODDEF \ 4937db96d56Sopenharmony_ci {"name", _PyCFunction_CAST(unicodedata_UCD_name), METH_FASTCALL, unicodedata_UCD_name__doc__}, 4947db96d56Sopenharmony_ci 4957db96d56Sopenharmony_cistatic PyObject * 4967db96d56Sopenharmony_ciunicodedata_UCD_name_impl(PyObject *self, int chr, PyObject *default_value); 4977db96d56Sopenharmony_ci 4987db96d56Sopenharmony_cistatic PyObject * 4997db96d56Sopenharmony_ciunicodedata_UCD_name(PyObject *self, PyObject *const *args, Py_ssize_t nargs) 5007db96d56Sopenharmony_ci{ 5017db96d56Sopenharmony_ci PyObject *return_value = NULL; 5027db96d56Sopenharmony_ci int chr; 5037db96d56Sopenharmony_ci PyObject *default_value = NULL; 5047db96d56Sopenharmony_ci 5057db96d56Sopenharmony_ci if (!_PyArg_CheckPositional("name", nargs, 1, 2)) { 5067db96d56Sopenharmony_ci goto exit; 5077db96d56Sopenharmony_ci } 5087db96d56Sopenharmony_ci if (!PyUnicode_Check(args[0])) { 5097db96d56Sopenharmony_ci _PyArg_BadArgument("name", "argument 1", "a unicode character", args[0]); 5107db96d56Sopenharmony_ci goto exit; 5117db96d56Sopenharmony_ci } 5127db96d56Sopenharmony_ci if (PyUnicode_READY(args[0])) { 5137db96d56Sopenharmony_ci goto exit; 5147db96d56Sopenharmony_ci } 5157db96d56Sopenharmony_ci if (PyUnicode_GET_LENGTH(args[0]) != 1) { 5167db96d56Sopenharmony_ci _PyArg_BadArgument("name", "argument 1", "a unicode character", args[0]); 5177db96d56Sopenharmony_ci goto exit; 5187db96d56Sopenharmony_ci } 5197db96d56Sopenharmony_ci chr = PyUnicode_READ_CHAR(args[0], 0); 5207db96d56Sopenharmony_ci if (nargs < 2) { 5217db96d56Sopenharmony_ci goto skip_optional; 5227db96d56Sopenharmony_ci } 5237db96d56Sopenharmony_ci default_value = args[1]; 5247db96d56Sopenharmony_ciskip_optional: 5257db96d56Sopenharmony_ci return_value = unicodedata_UCD_name_impl(self, chr, default_value); 5267db96d56Sopenharmony_ci 5277db96d56Sopenharmony_ciexit: 5287db96d56Sopenharmony_ci return return_value; 5297db96d56Sopenharmony_ci} 5307db96d56Sopenharmony_ci 5317db96d56Sopenharmony_ciPyDoc_STRVAR(unicodedata_UCD_lookup__doc__, 5327db96d56Sopenharmony_ci"lookup($self, name, /)\n" 5337db96d56Sopenharmony_ci"--\n" 5347db96d56Sopenharmony_ci"\n" 5357db96d56Sopenharmony_ci"Look up character by name.\n" 5367db96d56Sopenharmony_ci"\n" 5377db96d56Sopenharmony_ci"If a character with the given name is found, return the\n" 5387db96d56Sopenharmony_ci"corresponding character. If not found, KeyError is raised."); 5397db96d56Sopenharmony_ci 5407db96d56Sopenharmony_ci#define UNICODEDATA_UCD_LOOKUP_METHODDEF \ 5417db96d56Sopenharmony_ci {"lookup", (PyCFunction)unicodedata_UCD_lookup, METH_O, unicodedata_UCD_lookup__doc__}, 5427db96d56Sopenharmony_ci 5437db96d56Sopenharmony_cistatic PyObject * 5447db96d56Sopenharmony_ciunicodedata_UCD_lookup_impl(PyObject *self, const char *name, 5457db96d56Sopenharmony_ci Py_ssize_t name_length); 5467db96d56Sopenharmony_ci 5477db96d56Sopenharmony_cistatic PyObject * 5487db96d56Sopenharmony_ciunicodedata_UCD_lookup(PyObject *self, PyObject *arg) 5497db96d56Sopenharmony_ci{ 5507db96d56Sopenharmony_ci PyObject *return_value = NULL; 5517db96d56Sopenharmony_ci const char *name; 5527db96d56Sopenharmony_ci Py_ssize_t name_length; 5537db96d56Sopenharmony_ci 5547db96d56Sopenharmony_ci if (!PyArg_Parse(arg, "s#:lookup", &name, &name_length)) { 5557db96d56Sopenharmony_ci goto exit; 5567db96d56Sopenharmony_ci } 5577db96d56Sopenharmony_ci return_value = unicodedata_UCD_lookup_impl(self, name, name_length); 5587db96d56Sopenharmony_ci 5597db96d56Sopenharmony_ciexit: 5607db96d56Sopenharmony_ci return return_value; 5617db96d56Sopenharmony_ci} 5627db96d56Sopenharmony_ci/*[clinic end generated code: output=78d7a7ae57014502 input=a9049054013a1b77]*/ 563