1/*[clinic input] 2preserve 3[clinic start generated code]*/ 4 5PyDoc_STRVAR(_sre_getcodesize__doc__, 6"getcodesize($module, /)\n" 7"--\n" 8"\n"); 9 10#define _SRE_GETCODESIZE_METHODDEF \ 11 {"getcodesize", (PyCFunction)_sre_getcodesize, METH_NOARGS, _sre_getcodesize__doc__}, 12 13static int 14_sre_getcodesize_impl(PyObject *module); 15 16static PyObject * 17_sre_getcodesize(PyObject *module, PyObject *Py_UNUSED(ignored)) 18{ 19 PyObject *return_value = NULL; 20 int _return_value; 21 22 _return_value = _sre_getcodesize_impl(module); 23 if ((_return_value == -1) && PyErr_Occurred()) { 24 goto exit; 25 } 26 return_value = PyLong_FromLong((long)_return_value); 27 28exit: 29 return return_value; 30} 31 32PyDoc_STRVAR(_sre_ascii_iscased__doc__, 33"ascii_iscased($module, character, /)\n" 34"--\n" 35"\n"); 36 37#define _SRE_ASCII_ISCASED_METHODDEF \ 38 {"ascii_iscased", (PyCFunction)_sre_ascii_iscased, METH_O, _sre_ascii_iscased__doc__}, 39 40static int 41_sre_ascii_iscased_impl(PyObject *module, int character); 42 43static PyObject * 44_sre_ascii_iscased(PyObject *module, PyObject *arg) 45{ 46 PyObject *return_value = NULL; 47 int character; 48 int _return_value; 49 50 character = _PyLong_AsInt(arg); 51 if (character == -1 && PyErr_Occurred()) { 52 goto exit; 53 } 54 _return_value = _sre_ascii_iscased_impl(module, character); 55 if ((_return_value == -1) && PyErr_Occurred()) { 56 goto exit; 57 } 58 return_value = PyBool_FromLong((long)_return_value); 59 60exit: 61 return return_value; 62} 63 64PyDoc_STRVAR(_sre_unicode_iscased__doc__, 65"unicode_iscased($module, character, /)\n" 66"--\n" 67"\n"); 68 69#define _SRE_UNICODE_ISCASED_METHODDEF \ 70 {"unicode_iscased", (PyCFunction)_sre_unicode_iscased, METH_O, _sre_unicode_iscased__doc__}, 71 72static int 73_sre_unicode_iscased_impl(PyObject *module, int character); 74 75static PyObject * 76_sre_unicode_iscased(PyObject *module, PyObject *arg) 77{ 78 PyObject *return_value = NULL; 79 int character; 80 int _return_value; 81 82 character = _PyLong_AsInt(arg); 83 if (character == -1 && PyErr_Occurred()) { 84 goto exit; 85 } 86 _return_value = _sre_unicode_iscased_impl(module, character); 87 if ((_return_value == -1) && PyErr_Occurred()) { 88 goto exit; 89 } 90 return_value = PyBool_FromLong((long)_return_value); 91 92exit: 93 return return_value; 94} 95 96PyDoc_STRVAR(_sre_ascii_tolower__doc__, 97"ascii_tolower($module, character, /)\n" 98"--\n" 99"\n"); 100 101#define _SRE_ASCII_TOLOWER_METHODDEF \ 102 {"ascii_tolower", (PyCFunction)_sre_ascii_tolower, METH_O, _sre_ascii_tolower__doc__}, 103 104static int 105_sre_ascii_tolower_impl(PyObject *module, int character); 106 107static PyObject * 108_sre_ascii_tolower(PyObject *module, PyObject *arg) 109{ 110 PyObject *return_value = NULL; 111 int character; 112 int _return_value; 113 114 character = _PyLong_AsInt(arg); 115 if (character == -1 && PyErr_Occurred()) { 116 goto exit; 117 } 118 _return_value = _sre_ascii_tolower_impl(module, character); 119 if ((_return_value == -1) && PyErr_Occurred()) { 120 goto exit; 121 } 122 return_value = PyLong_FromLong((long)_return_value); 123 124exit: 125 return return_value; 126} 127 128PyDoc_STRVAR(_sre_unicode_tolower__doc__, 129"unicode_tolower($module, character, /)\n" 130"--\n" 131"\n"); 132 133#define _SRE_UNICODE_TOLOWER_METHODDEF \ 134 {"unicode_tolower", (PyCFunction)_sre_unicode_tolower, METH_O, _sre_unicode_tolower__doc__}, 135 136static int 137_sre_unicode_tolower_impl(PyObject *module, int character); 138 139static PyObject * 140_sre_unicode_tolower(PyObject *module, PyObject *arg) 141{ 142 PyObject *return_value = NULL; 143 int character; 144 int _return_value; 145 146 character = _PyLong_AsInt(arg); 147 if (character == -1 && PyErr_Occurred()) { 148 goto exit; 149 } 150 _return_value = _sre_unicode_tolower_impl(module, character); 151 if ((_return_value == -1) && PyErr_Occurred()) { 152 goto exit; 153 } 154 return_value = PyLong_FromLong((long)_return_value); 155 156exit: 157 return return_value; 158} 159 160PyDoc_STRVAR(_sre_SRE_Pattern_match__doc__, 161"match($self, /, string, pos=0, endpos=sys.maxsize)\n" 162"--\n" 163"\n" 164"Matches zero or more characters at the beginning of the string."); 165 166#define _SRE_SRE_PATTERN_MATCH_METHODDEF \ 167 {"match", _PyCFunction_CAST(_sre_SRE_Pattern_match), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_match__doc__}, 168 169static PyObject * 170_sre_SRE_Pattern_match_impl(PatternObject *self, PyTypeObject *cls, 171 PyObject *string, Py_ssize_t pos, 172 Py_ssize_t endpos); 173 174static PyObject * 175_sre_SRE_Pattern_match(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 176{ 177 PyObject *return_value = NULL; 178 static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; 179 static _PyArg_Parser _parser = {NULL, _keywords, "match", 0}; 180 PyObject *argsbuf[3]; 181 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; 182 PyObject *string; 183 Py_ssize_t pos = 0; 184 Py_ssize_t endpos = PY_SSIZE_T_MAX; 185 186 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf); 187 if (!args) { 188 goto exit; 189 } 190 string = args[0]; 191 if (!noptargs) { 192 goto skip_optional_pos; 193 } 194 if (args[1]) { 195 { 196 Py_ssize_t ival = -1; 197 PyObject *iobj = _PyNumber_Index(args[1]); 198 if (iobj != NULL) { 199 ival = PyLong_AsSsize_t(iobj); 200 Py_DECREF(iobj); 201 } 202 if (ival == -1 && PyErr_Occurred()) { 203 goto exit; 204 } 205 pos = ival; 206 } 207 if (!--noptargs) { 208 goto skip_optional_pos; 209 } 210 } 211 { 212 Py_ssize_t ival = -1; 213 PyObject *iobj = _PyNumber_Index(args[2]); 214 if (iobj != NULL) { 215 ival = PyLong_AsSsize_t(iobj); 216 Py_DECREF(iobj); 217 } 218 if (ival == -1 && PyErr_Occurred()) { 219 goto exit; 220 } 221 endpos = ival; 222 } 223skip_optional_pos: 224 return_value = _sre_SRE_Pattern_match_impl(self, cls, string, pos, endpos); 225 226exit: 227 return return_value; 228} 229 230PyDoc_STRVAR(_sre_SRE_Pattern_fullmatch__doc__, 231"fullmatch($self, /, string, pos=0, endpos=sys.maxsize)\n" 232"--\n" 233"\n" 234"Matches against all of the string."); 235 236#define _SRE_SRE_PATTERN_FULLMATCH_METHODDEF \ 237 {"fullmatch", _PyCFunction_CAST(_sre_SRE_Pattern_fullmatch), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_fullmatch__doc__}, 238 239static PyObject * 240_sre_SRE_Pattern_fullmatch_impl(PatternObject *self, PyTypeObject *cls, 241 PyObject *string, Py_ssize_t pos, 242 Py_ssize_t endpos); 243 244static PyObject * 245_sre_SRE_Pattern_fullmatch(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 246{ 247 PyObject *return_value = NULL; 248 static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; 249 static _PyArg_Parser _parser = {NULL, _keywords, "fullmatch", 0}; 250 PyObject *argsbuf[3]; 251 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; 252 PyObject *string; 253 Py_ssize_t pos = 0; 254 Py_ssize_t endpos = PY_SSIZE_T_MAX; 255 256 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf); 257 if (!args) { 258 goto exit; 259 } 260 string = args[0]; 261 if (!noptargs) { 262 goto skip_optional_pos; 263 } 264 if (args[1]) { 265 { 266 Py_ssize_t ival = -1; 267 PyObject *iobj = _PyNumber_Index(args[1]); 268 if (iobj != NULL) { 269 ival = PyLong_AsSsize_t(iobj); 270 Py_DECREF(iobj); 271 } 272 if (ival == -1 && PyErr_Occurred()) { 273 goto exit; 274 } 275 pos = ival; 276 } 277 if (!--noptargs) { 278 goto skip_optional_pos; 279 } 280 } 281 { 282 Py_ssize_t ival = -1; 283 PyObject *iobj = _PyNumber_Index(args[2]); 284 if (iobj != NULL) { 285 ival = PyLong_AsSsize_t(iobj); 286 Py_DECREF(iobj); 287 } 288 if (ival == -1 && PyErr_Occurred()) { 289 goto exit; 290 } 291 endpos = ival; 292 } 293skip_optional_pos: 294 return_value = _sre_SRE_Pattern_fullmatch_impl(self, cls, string, pos, endpos); 295 296exit: 297 return return_value; 298} 299 300PyDoc_STRVAR(_sre_SRE_Pattern_search__doc__, 301"search($self, /, string, pos=0, endpos=sys.maxsize)\n" 302"--\n" 303"\n" 304"Scan through string looking for a match, and return a corresponding match object instance.\n" 305"\n" 306"Return None if no position in the string matches."); 307 308#define _SRE_SRE_PATTERN_SEARCH_METHODDEF \ 309 {"search", _PyCFunction_CAST(_sre_SRE_Pattern_search), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_search__doc__}, 310 311static PyObject * 312_sre_SRE_Pattern_search_impl(PatternObject *self, PyTypeObject *cls, 313 PyObject *string, Py_ssize_t pos, 314 Py_ssize_t endpos); 315 316static PyObject * 317_sre_SRE_Pattern_search(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 318{ 319 PyObject *return_value = NULL; 320 static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; 321 static _PyArg_Parser _parser = {NULL, _keywords, "search", 0}; 322 PyObject *argsbuf[3]; 323 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; 324 PyObject *string; 325 Py_ssize_t pos = 0; 326 Py_ssize_t endpos = PY_SSIZE_T_MAX; 327 328 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf); 329 if (!args) { 330 goto exit; 331 } 332 string = args[0]; 333 if (!noptargs) { 334 goto skip_optional_pos; 335 } 336 if (args[1]) { 337 { 338 Py_ssize_t ival = -1; 339 PyObject *iobj = _PyNumber_Index(args[1]); 340 if (iobj != NULL) { 341 ival = PyLong_AsSsize_t(iobj); 342 Py_DECREF(iobj); 343 } 344 if (ival == -1 && PyErr_Occurred()) { 345 goto exit; 346 } 347 pos = ival; 348 } 349 if (!--noptargs) { 350 goto skip_optional_pos; 351 } 352 } 353 { 354 Py_ssize_t ival = -1; 355 PyObject *iobj = _PyNumber_Index(args[2]); 356 if (iobj != NULL) { 357 ival = PyLong_AsSsize_t(iobj); 358 Py_DECREF(iobj); 359 } 360 if (ival == -1 && PyErr_Occurred()) { 361 goto exit; 362 } 363 endpos = ival; 364 } 365skip_optional_pos: 366 return_value = _sre_SRE_Pattern_search_impl(self, cls, string, pos, endpos); 367 368exit: 369 return return_value; 370} 371 372PyDoc_STRVAR(_sre_SRE_Pattern_findall__doc__, 373"findall($self, /, string, pos=0, endpos=sys.maxsize)\n" 374"--\n" 375"\n" 376"Return a list of all non-overlapping matches of pattern in string."); 377 378#define _SRE_SRE_PATTERN_FINDALL_METHODDEF \ 379 {"findall", _PyCFunction_CAST(_sre_SRE_Pattern_findall), METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_findall__doc__}, 380 381static PyObject * 382_sre_SRE_Pattern_findall_impl(PatternObject *self, PyObject *string, 383 Py_ssize_t pos, Py_ssize_t endpos); 384 385static PyObject * 386_sre_SRE_Pattern_findall(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 387{ 388 PyObject *return_value = NULL; 389 static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; 390 static _PyArg_Parser _parser = {NULL, _keywords, "findall", 0}; 391 PyObject *argsbuf[3]; 392 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; 393 PyObject *string; 394 Py_ssize_t pos = 0; 395 Py_ssize_t endpos = PY_SSIZE_T_MAX; 396 397 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf); 398 if (!args) { 399 goto exit; 400 } 401 string = args[0]; 402 if (!noptargs) { 403 goto skip_optional_pos; 404 } 405 if (args[1]) { 406 { 407 Py_ssize_t ival = -1; 408 PyObject *iobj = _PyNumber_Index(args[1]); 409 if (iobj != NULL) { 410 ival = PyLong_AsSsize_t(iobj); 411 Py_DECREF(iobj); 412 } 413 if (ival == -1 && PyErr_Occurred()) { 414 goto exit; 415 } 416 pos = ival; 417 } 418 if (!--noptargs) { 419 goto skip_optional_pos; 420 } 421 } 422 { 423 Py_ssize_t ival = -1; 424 PyObject *iobj = _PyNumber_Index(args[2]); 425 if (iobj != NULL) { 426 ival = PyLong_AsSsize_t(iobj); 427 Py_DECREF(iobj); 428 } 429 if (ival == -1 && PyErr_Occurred()) { 430 goto exit; 431 } 432 endpos = ival; 433 } 434skip_optional_pos: 435 return_value = _sre_SRE_Pattern_findall_impl(self, string, pos, endpos); 436 437exit: 438 return return_value; 439} 440 441PyDoc_STRVAR(_sre_SRE_Pattern_finditer__doc__, 442"finditer($self, /, string, pos=0, endpos=sys.maxsize)\n" 443"--\n" 444"\n" 445"Return an iterator over all non-overlapping matches for the RE pattern in string.\n" 446"\n" 447"For each match, the iterator returns a match object."); 448 449#define _SRE_SRE_PATTERN_FINDITER_METHODDEF \ 450 {"finditer", _PyCFunction_CAST(_sre_SRE_Pattern_finditer), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_finditer__doc__}, 451 452static PyObject * 453_sre_SRE_Pattern_finditer_impl(PatternObject *self, PyTypeObject *cls, 454 PyObject *string, Py_ssize_t pos, 455 Py_ssize_t endpos); 456 457static PyObject * 458_sre_SRE_Pattern_finditer(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 459{ 460 PyObject *return_value = NULL; 461 static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; 462 static _PyArg_Parser _parser = {NULL, _keywords, "finditer", 0}; 463 PyObject *argsbuf[3]; 464 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; 465 PyObject *string; 466 Py_ssize_t pos = 0; 467 Py_ssize_t endpos = PY_SSIZE_T_MAX; 468 469 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf); 470 if (!args) { 471 goto exit; 472 } 473 string = args[0]; 474 if (!noptargs) { 475 goto skip_optional_pos; 476 } 477 if (args[1]) { 478 { 479 Py_ssize_t ival = -1; 480 PyObject *iobj = _PyNumber_Index(args[1]); 481 if (iobj != NULL) { 482 ival = PyLong_AsSsize_t(iobj); 483 Py_DECREF(iobj); 484 } 485 if (ival == -1 && PyErr_Occurred()) { 486 goto exit; 487 } 488 pos = ival; 489 } 490 if (!--noptargs) { 491 goto skip_optional_pos; 492 } 493 } 494 { 495 Py_ssize_t ival = -1; 496 PyObject *iobj = _PyNumber_Index(args[2]); 497 if (iobj != NULL) { 498 ival = PyLong_AsSsize_t(iobj); 499 Py_DECREF(iobj); 500 } 501 if (ival == -1 && PyErr_Occurred()) { 502 goto exit; 503 } 504 endpos = ival; 505 } 506skip_optional_pos: 507 return_value = _sre_SRE_Pattern_finditer_impl(self, cls, string, pos, endpos); 508 509exit: 510 return return_value; 511} 512 513PyDoc_STRVAR(_sre_SRE_Pattern_scanner__doc__, 514"scanner($self, /, string, pos=0, endpos=sys.maxsize)\n" 515"--\n" 516"\n"); 517 518#define _SRE_SRE_PATTERN_SCANNER_METHODDEF \ 519 {"scanner", _PyCFunction_CAST(_sre_SRE_Pattern_scanner), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_scanner__doc__}, 520 521static PyObject * 522_sre_SRE_Pattern_scanner_impl(PatternObject *self, PyTypeObject *cls, 523 PyObject *string, Py_ssize_t pos, 524 Py_ssize_t endpos); 525 526static PyObject * 527_sre_SRE_Pattern_scanner(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 528{ 529 PyObject *return_value = NULL; 530 static const char * const _keywords[] = {"string", "pos", "endpos", NULL}; 531 static _PyArg_Parser _parser = {NULL, _keywords, "scanner", 0}; 532 PyObject *argsbuf[3]; 533 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; 534 PyObject *string; 535 Py_ssize_t pos = 0; 536 Py_ssize_t endpos = PY_SSIZE_T_MAX; 537 538 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 3, 0, argsbuf); 539 if (!args) { 540 goto exit; 541 } 542 string = args[0]; 543 if (!noptargs) { 544 goto skip_optional_pos; 545 } 546 if (args[1]) { 547 { 548 Py_ssize_t ival = -1; 549 PyObject *iobj = _PyNumber_Index(args[1]); 550 if (iobj != NULL) { 551 ival = PyLong_AsSsize_t(iobj); 552 Py_DECREF(iobj); 553 } 554 if (ival == -1 && PyErr_Occurred()) { 555 goto exit; 556 } 557 pos = ival; 558 } 559 if (!--noptargs) { 560 goto skip_optional_pos; 561 } 562 } 563 { 564 Py_ssize_t ival = -1; 565 PyObject *iobj = _PyNumber_Index(args[2]); 566 if (iobj != NULL) { 567 ival = PyLong_AsSsize_t(iobj); 568 Py_DECREF(iobj); 569 } 570 if (ival == -1 && PyErr_Occurred()) { 571 goto exit; 572 } 573 endpos = ival; 574 } 575skip_optional_pos: 576 return_value = _sre_SRE_Pattern_scanner_impl(self, cls, string, pos, endpos); 577 578exit: 579 return return_value; 580} 581 582PyDoc_STRVAR(_sre_SRE_Pattern_split__doc__, 583"split($self, /, string, maxsplit=0)\n" 584"--\n" 585"\n" 586"Split string by the occurrences of pattern."); 587 588#define _SRE_SRE_PATTERN_SPLIT_METHODDEF \ 589 {"split", _PyCFunction_CAST(_sre_SRE_Pattern_split), METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_split__doc__}, 590 591static PyObject * 592_sre_SRE_Pattern_split_impl(PatternObject *self, PyObject *string, 593 Py_ssize_t maxsplit); 594 595static PyObject * 596_sre_SRE_Pattern_split(PatternObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 597{ 598 PyObject *return_value = NULL; 599 static const char * const _keywords[] = {"string", "maxsplit", NULL}; 600 static _PyArg_Parser _parser = {NULL, _keywords, "split", 0}; 601 PyObject *argsbuf[2]; 602 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; 603 PyObject *string; 604 Py_ssize_t maxsplit = 0; 605 606 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf); 607 if (!args) { 608 goto exit; 609 } 610 string = args[0]; 611 if (!noptargs) { 612 goto skip_optional_pos; 613 } 614 { 615 Py_ssize_t ival = -1; 616 PyObject *iobj = _PyNumber_Index(args[1]); 617 if (iobj != NULL) { 618 ival = PyLong_AsSsize_t(iobj); 619 Py_DECREF(iobj); 620 } 621 if (ival == -1 && PyErr_Occurred()) { 622 goto exit; 623 } 624 maxsplit = ival; 625 } 626skip_optional_pos: 627 return_value = _sre_SRE_Pattern_split_impl(self, string, maxsplit); 628 629exit: 630 return return_value; 631} 632 633PyDoc_STRVAR(_sre_SRE_Pattern_sub__doc__, 634"sub($self, /, repl, string, count=0)\n" 635"--\n" 636"\n" 637"Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl."); 638 639#define _SRE_SRE_PATTERN_SUB_METHODDEF \ 640 {"sub", _PyCFunction_CAST(_sre_SRE_Pattern_sub), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_sub__doc__}, 641 642static PyObject * 643_sre_SRE_Pattern_sub_impl(PatternObject *self, PyTypeObject *cls, 644 PyObject *repl, PyObject *string, Py_ssize_t count); 645 646static PyObject * 647_sre_SRE_Pattern_sub(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 648{ 649 PyObject *return_value = NULL; 650 static const char * const _keywords[] = {"repl", "string", "count", NULL}; 651 static _PyArg_Parser _parser = {NULL, _keywords, "sub", 0}; 652 PyObject *argsbuf[3]; 653 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; 654 PyObject *repl; 655 PyObject *string; 656 Py_ssize_t count = 0; 657 658 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf); 659 if (!args) { 660 goto exit; 661 } 662 repl = args[0]; 663 string = args[1]; 664 if (!noptargs) { 665 goto skip_optional_pos; 666 } 667 { 668 Py_ssize_t ival = -1; 669 PyObject *iobj = _PyNumber_Index(args[2]); 670 if (iobj != NULL) { 671 ival = PyLong_AsSsize_t(iobj); 672 Py_DECREF(iobj); 673 } 674 if (ival == -1 && PyErr_Occurred()) { 675 goto exit; 676 } 677 count = ival; 678 } 679skip_optional_pos: 680 return_value = _sre_SRE_Pattern_sub_impl(self, cls, repl, string, count); 681 682exit: 683 return return_value; 684} 685 686PyDoc_STRVAR(_sre_SRE_Pattern_subn__doc__, 687"subn($self, /, repl, string, count=0)\n" 688"--\n" 689"\n" 690"Return the tuple (new_string, number_of_subs_made) found by replacing the leftmost non-overlapping occurrences of pattern with the replacement repl."); 691 692#define _SRE_SRE_PATTERN_SUBN_METHODDEF \ 693 {"subn", _PyCFunction_CAST(_sre_SRE_Pattern_subn), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_subn__doc__}, 694 695static PyObject * 696_sre_SRE_Pattern_subn_impl(PatternObject *self, PyTypeObject *cls, 697 PyObject *repl, PyObject *string, 698 Py_ssize_t count); 699 700static PyObject * 701_sre_SRE_Pattern_subn(PatternObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 702{ 703 PyObject *return_value = NULL; 704 static const char * const _keywords[] = {"repl", "string", "count", NULL}; 705 static _PyArg_Parser _parser = {NULL, _keywords, "subn", 0}; 706 PyObject *argsbuf[3]; 707 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; 708 PyObject *repl; 709 PyObject *string; 710 Py_ssize_t count = 0; 711 712 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf); 713 if (!args) { 714 goto exit; 715 } 716 repl = args[0]; 717 string = args[1]; 718 if (!noptargs) { 719 goto skip_optional_pos; 720 } 721 { 722 Py_ssize_t ival = -1; 723 PyObject *iobj = _PyNumber_Index(args[2]); 724 if (iobj != NULL) { 725 ival = PyLong_AsSsize_t(iobj); 726 Py_DECREF(iobj); 727 } 728 if (ival == -1 && PyErr_Occurred()) { 729 goto exit; 730 } 731 count = ival; 732 } 733skip_optional_pos: 734 return_value = _sre_SRE_Pattern_subn_impl(self, cls, repl, string, count); 735 736exit: 737 return return_value; 738} 739 740PyDoc_STRVAR(_sre_SRE_Pattern___copy____doc__, 741"__copy__($self, /)\n" 742"--\n" 743"\n"); 744 745#define _SRE_SRE_PATTERN___COPY___METHODDEF \ 746 {"__copy__", (PyCFunction)_sre_SRE_Pattern___copy__, METH_NOARGS, _sre_SRE_Pattern___copy____doc__}, 747 748static PyObject * 749_sre_SRE_Pattern___copy___impl(PatternObject *self); 750 751static PyObject * 752_sre_SRE_Pattern___copy__(PatternObject *self, PyObject *Py_UNUSED(ignored)) 753{ 754 return _sre_SRE_Pattern___copy___impl(self); 755} 756 757PyDoc_STRVAR(_sre_SRE_Pattern___deepcopy____doc__, 758"__deepcopy__($self, memo, /)\n" 759"--\n" 760"\n"); 761 762#define _SRE_SRE_PATTERN___DEEPCOPY___METHODDEF \ 763 {"__deepcopy__", (PyCFunction)_sre_SRE_Pattern___deepcopy__, METH_O, _sre_SRE_Pattern___deepcopy____doc__}, 764 765PyDoc_STRVAR(_sre_compile__doc__, 766"compile($module, /, pattern, flags, code, groups, groupindex,\n" 767" indexgroup)\n" 768"--\n" 769"\n"); 770 771#define _SRE_COMPILE_METHODDEF \ 772 {"compile", _PyCFunction_CAST(_sre_compile), METH_FASTCALL|METH_KEYWORDS, _sre_compile__doc__}, 773 774static PyObject * 775_sre_compile_impl(PyObject *module, PyObject *pattern, int flags, 776 PyObject *code, Py_ssize_t groups, PyObject *groupindex, 777 PyObject *indexgroup); 778 779static PyObject * 780_sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 781{ 782 PyObject *return_value = NULL; 783 static const char * const _keywords[] = {"pattern", "flags", "code", "groups", "groupindex", "indexgroup", NULL}; 784 static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0}; 785 PyObject *argsbuf[6]; 786 PyObject *pattern; 787 int flags; 788 PyObject *code; 789 Py_ssize_t groups; 790 PyObject *groupindex; 791 PyObject *indexgroup; 792 793 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 6, 6, 0, argsbuf); 794 if (!args) { 795 goto exit; 796 } 797 pattern = args[0]; 798 flags = _PyLong_AsInt(args[1]); 799 if (flags == -1 && PyErr_Occurred()) { 800 goto exit; 801 } 802 if (!PyList_Check(args[2])) { 803 _PyArg_BadArgument("compile", "argument 'code'", "list", args[2]); 804 goto exit; 805 } 806 code = args[2]; 807 { 808 Py_ssize_t ival = -1; 809 PyObject *iobj = _PyNumber_Index(args[3]); 810 if (iobj != NULL) { 811 ival = PyLong_AsSsize_t(iobj); 812 Py_DECREF(iobj); 813 } 814 if (ival == -1 && PyErr_Occurred()) { 815 goto exit; 816 } 817 groups = ival; 818 } 819 if (!PyDict_Check(args[4])) { 820 _PyArg_BadArgument("compile", "argument 'groupindex'", "dict", args[4]); 821 goto exit; 822 } 823 groupindex = args[4]; 824 if (!PyTuple_Check(args[5])) { 825 _PyArg_BadArgument("compile", "argument 'indexgroup'", "tuple", args[5]); 826 goto exit; 827 } 828 indexgroup = args[5]; 829 return_value = _sre_compile_impl(module, pattern, flags, code, groups, groupindex, indexgroup); 830 831exit: 832 return return_value; 833} 834 835PyDoc_STRVAR(_sre_SRE_Match_expand__doc__, 836"expand($self, /, template)\n" 837"--\n" 838"\n" 839"Return the string obtained by doing backslash substitution on the string template, as done by the sub() method."); 840 841#define _SRE_SRE_MATCH_EXPAND_METHODDEF \ 842 {"expand", _PyCFunction_CAST(_sre_SRE_Match_expand), METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_expand__doc__}, 843 844static PyObject * 845_sre_SRE_Match_expand_impl(MatchObject *self, PyObject *template); 846 847static PyObject * 848_sre_SRE_Match_expand(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 849{ 850 PyObject *return_value = NULL; 851 static const char * const _keywords[] = {"template", NULL}; 852 static _PyArg_Parser _parser = {NULL, _keywords, "expand", 0}; 853 PyObject *argsbuf[1]; 854 PyObject *template; 855 856 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 1, 0, argsbuf); 857 if (!args) { 858 goto exit; 859 } 860 template = args[0]; 861 return_value = _sre_SRE_Match_expand_impl(self, template); 862 863exit: 864 return return_value; 865} 866 867PyDoc_STRVAR(_sre_SRE_Match_groups__doc__, 868"groups($self, /, default=None)\n" 869"--\n" 870"\n" 871"Return a tuple containing all the subgroups of the match, from 1.\n" 872"\n" 873" default\n" 874" Is used for groups that did not participate in the match."); 875 876#define _SRE_SRE_MATCH_GROUPS_METHODDEF \ 877 {"groups", _PyCFunction_CAST(_sre_SRE_Match_groups), METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groups__doc__}, 878 879static PyObject * 880_sre_SRE_Match_groups_impl(MatchObject *self, PyObject *default_value); 881 882static PyObject * 883_sre_SRE_Match_groups(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 884{ 885 PyObject *return_value = NULL; 886 static const char * const _keywords[] = {"default", NULL}; 887 static _PyArg_Parser _parser = {NULL, _keywords, "groups", 0}; 888 PyObject *argsbuf[1]; 889 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; 890 PyObject *default_value = Py_None; 891 892 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf); 893 if (!args) { 894 goto exit; 895 } 896 if (!noptargs) { 897 goto skip_optional_pos; 898 } 899 default_value = args[0]; 900skip_optional_pos: 901 return_value = _sre_SRE_Match_groups_impl(self, default_value); 902 903exit: 904 return return_value; 905} 906 907PyDoc_STRVAR(_sre_SRE_Match_groupdict__doc__, 908"groupdict($self, /, default=None)\n" 909"--\n" 910"\n" 911"Return a dictionary containing all the named subgroups of the match, keyed by the subgroup name.\n" 912"\n" 913" default\n" 914" Is used for groups that did not participate in the match."); 915 916#define _SRE_SRE_MATCH_GROUPDICT_METHODDEF \ 917 {"groupdict", _PyCFunction_CAST(_sre_SRE_Match_groupdict), METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groupdict__doc__}, 918 919static PyObject * 920_sre_SRE_Match_groupdict_impl(MatchObject *self, PyObject *default_value); 921 922static PyObject * 923_sre_SRE_Match_groupdict(MatchObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 924{ 925 PyObject *return_value = NULL; 926 static const char * const _keywords[] = {"default", NULL}; 927 static _PyArg_Parser _parser = {NULL, _keywords, "groupdict", 0}; 928 PyObject *argsbuf[1]; 929 Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 0; 930 PyObject *default_value = Py_None; 931 932 args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 0, 1, 0, argsbuf); 933 if (!args) { 934 goto exit; 935 } 936 if (!noptargs) { 937 goto skip_optional_pos; 938 } 939 default_value = args[0]; 940skip_optional_pos: 941 return_value = _sre_SRE_Match_groupdict_impl(self, default_value); 942 943exit: 944 return return_value; 945} 946 947PyDoc_STRVAR(_sre_SRE_Match_start__doc__, 948"start($self, group=0, /)\n" 949"--\n" 950"\n" 951"Return index of the start of the substring matched by group."); 952 953#define _SRE_SRE_MATCH_START_METHODDEF \ 954 {"start", _PyCFunction_CAST(_sre_SRE_Match_start), METH_FASTCALL, _sre_SRE_Match_start__doc__}, 955 956static Py_ssize_t 957_sre_SRE_Match_start_impl(MatchObject *self, PyObject *group); 958 959static PyObject * 960_sre_SRE_Match_start(MatchObject *self, PyObject *const *args, Py_ssize_t nargs) 961{ 962 PyObject *return_value = NULL; 963 PyObject *group = NULL; 964 Py_ssize_t _return_value; 965 966 if (!_PyArg_CheckPositional("start", nargs, 0, 1)) { 967 goto exit; 968 } 969 if (nargs < 1) { 970 goto skip_optional; 971 } 972 group = args[0]; 973skip_optional: 974 _return_value = _sre_SRE_Match_start_impl(self, group); 975 if ((_return_value == -1) && PyErr_Occurred()) { 976 goto exit; 977 } 978 return_value = PyLong_FromSsize_t(_return_value); 979 980exit: 981 return return_value; 982} 983 984PyDoc_STRVAR(_sre_SRE_Match_end__doc__, 985"end($self, group=0, /)\n" 986"--\n" 987"\n" 988"Return index of the end of the substring matched by group."); 989 990#define _SRE_SRE_MATCH_END_METHODDEF \ 991 {"end", _PyCFunction_CAST(_sre_SRE_Match_end), METH_FASTCALL, _sre_SRE_Match_end__doc__}, 992 993static Py_ssize_t 994_sre_SRE_Match_end_impl(MatchObject *self, PyObject *group); 995 996static PyObject * 997_sre_SRE_Match_end(MatchObject *self, PyObject *const *args, Py_ssize_t nargs) 998{ 999 PyObject *return_value = NULL; 1000 PyObject *group = NULL; 1001 Py_ssize_t _return_value; 1002 1003 if (!_PyArg_CheckPositional("end", nargs, 0, 1)) { 1004 goto exit; 1005 } 1006 if (nargs < 1) { 1007 goto skip_optional; 1008 } 1009 group = args[0]; 1010skip_optional: 1011 _return_value = _sre_SRE_Match_end_impl(self, group); 1012 if ((_return_value == -1) && PyErr_Occurred()) { 1013 goto exit; 1014 } 1015 return_value = PyLong_FromSsize_t(_return_value); 1016 1017exit: 1018 return return_value; 1019} 1020 1021PyDoc_STRVAR(_sre_SRE_Match_span__doc__, 1022"span($self, group=0, /)\n" 1023"--\n" 1024"\n" 1025"For match object m, return the 2-tuple (m.start(group), m.end(group))."); 1026 1027#define _SRE_SRE_MATCH_SPAN_METHODDEF \ 1028 {"span", _PyCFunction_CAST(_sre_SRE_Match_span), METH_FASTCALL, _sre_SRE_Match_span__doc__}, 1029 1030static PyObject * 1031_sre_SRE_Match_span_impl(MatchObject *self, PyObject *group); 1032 1033static PyObject * 1034_sre_SRE_Match_span(MatchObject *self, PyObject *const *args, Py_ssize_t nargs) 1035{ 1036 PyObject *return_value = NULL; 1037 PyObject *group = NULL; 1038 1039 if (!_PyArg_CheckPositional("span", nargs, 0, 1)) { 1040 goto exit; 1041 } 1042 if (nargs < 1) { 1043 goto skip_optional; 1044 } 1045 group = args[0]; 1046skip_optional: 1047 return_value = _sre_SRE_Match_span_impl(self, group); 1048 1049exit: 1050 return return_value; 1051} 1052 1053PyDoc_STRVAR(_sre_SRE_Match___copy____doc__, 1054"__copy__($self, /)\n" 1055"--\n" 1056"\n"); 1057 1058#define _SRE_SRE_MATCH___COPY___METHODDEF \ 1059 {"__copy__", (PyCFunction)_sre_SRE_Match___copy__, METH_NOARGS, _sre_SRE_Match___copy____doc__}, 1060 1061static PyObject * 1062_sre_SRE_Match___copy___impl(MatchObject *self); 1063 1064static PyObject * 1065_sre_SRE_Match___copy__(MatchObject *self, PyObject *Py_UNUSED(ignored)) 1066{ 1067 return _sre_SRE_Match___copy___impl(self); 1068} 1069 1070PyDoc_STRVAR(_sre_SRE_Match___deepcopy____doc__, 1071"__deepcopy__($self, memo, /)\n" 1072"--\n" 1073"\n"); 1074 1075#define _SRE_SRE_MATCH___DEEPCOPY___METHODDEF \ 1076 {"__deepcopy__", (PyCFunction)_sre_SRE_Match___deepcopy__, METH_O, _sre_SRE_Match___deepcopy____doc__}, 1077 1078PyDoc_STRVAR(_sre_SRE_Scanner_match__doc__, 1079"match($self, /)\n" 1080"--\n" 1081"\n"); 1082 1083#define _SRE_SRE_SCANNER_MATCH_METHODDEF \ 1084 {"match", _PyCFunction_CAST(_sre_SRE_Scanner_match), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Scanner_match__doc__}, 1085 1086static PyObject * 1087_sre_SRE_Scanner_match_impl(ScannerObject *self, PyTypeObject *cls); 1088 1089static PyObject * 1090_sre_SRE_Scanner_match(ScannerObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 1091{ 1092 if (nargs) { 1093 PyErr_SetString(PyExc_TypeError, "match() takes no arguments"); 1094 return NULL; 1095 } 1096 return _sre_SRE_Scanner_match_impl(self, cls); 1097} 1098 1099PyDoc_STRVAR(_sre_SRE_Scanner_search__doc__, 1100"search($self, /)\n" 1101"--\n" 1102"\n"); 1103 1104#define _SRE_SRE_SCANNER_SEARCH_METHODDEF \ 1105 {"search", _PyCFunction_CAST(_sre_SRE_Scanner_search), METH_METHOD|METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Scanner_search__doc__}, 1106 1107static PyObject * 1108_sre_SRE_Scanner_search_impl(ScannerObject *self, PyTypeObject *cls); 1109 1110static PyObject * 1111_sre_SRE_Scanner_search(ScannerObject *self, PyTypeObject *cls, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) 1112{ 1113 if (nargs) { 1114 PyErr_SetString(PyExc_TypeError, "search() takes no arguments"); 1115 return NULL; 1116 } 1117 return _sre_SRE_Scanner_search_impl(self, cls); 1118} 1119/*[clinic end generated code: output=fd2f45c941620e6e input=a9049054013a1b77]*/ 1120