2015-05-03 09:54:23 -03:00
/*[clinic input]
preserve
[ clinic start generated code ] */
2022-08-11 18:25:49 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2023-08-31 18:42:34 -03:00
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
2022-08-11 18:25:49 -03:00
# endif
2023-08-31 18:42:34 -03:00
# include "pycore_abstract.h" // _PyNumber_Index()
2022-08-11 18:25:49 -03:00
2015-05-03 09:54:23 -03:00
PyDoc_STRVAR ( _sre_getcodesize__doc__ ,
" getcodesize($module, /) \n "
" -- \n "
" \n " ) ;
# define _SRE_GETCODESIZE_METHODDEF \
{ " getcodesize " , ( PyCFunction ) _sre_getcodesize , METH_NOARGS , _sre_getcodesize__doc__ } ,
static int
2016-07-07 11:35:15 -03:00
_sre_getcodesize_impl ( PyObject * module ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2016-07-07 11:35:15 -03:00
_sre_getcodesize ( PyObject * module , PyObject * Py_UNUSED ( ignored ) )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
int _return_value ;
_return_value = _sre_getcodesize_impl ( module ) ;
2016-06-09 10:16:06 -03:00
if ( ( _return_value = = - 1 ) & & PyErr_Occurred ( ) ) {
2015-05-03 09:54:23 -03:00
goto exit ;
2016-06-09 10:16:06 -03:00
}
2015-05-03 09:54:23 -03:00
return_value = PyLong_FromLong ( ( long ) _return_value ) ;
exit :
return return_value ;
}
2017-05-09 17:37:14 -03:00
PyDoc_STRVAR ( _sre_ascii_iscased__doc__ ,
" ascii_iscased($module, character, /) \n "
" -- \n "
" \n " ) ;
# define _SRE_ASCII_ISCASED_METHODDEF \
{ " ascii_iscased " , ( PyCFunction ) _sre_ascii_iscased , METH_O , _sre_ascii_iscased__doc__ } ,
static int
_sre_ascii_iscased_impl ( PyObject * module , int character ) ;
static PyObject *
_sre_ascii_iscased ( PyObject * module , PyObject * arg )
{
PyObject * return_value = NULL ;
int character ;
int _return_value ;
2023-08-24 19:51:22 -03:00
character = PyLong_AsInt ( arg ) ;
2018-12-25 07:23:47 -04:00
if ( character = = - 1 & & PyErr_Occurred ( ) ) {
2017-05-09 17:37:14 -03:00
goto exit ;
}
_return_value = _sre_ascii_iscased_impl ( module , character ) ;
if ( ( _return_value = = - 1 ) & & PyErr_Occurred ( ) ) {
goto exit ;
}
return_value = PyBool_FromLong ( ( long ) _return_value ) ;
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_unicode_iscased__doc__ ,
" unicode_iscased($module, character, /) \n "
" -- \n "
" \n " ) ;
# define _SRE_UNICODE_ISCASED_METHODDEF \
{ " unicode_iscased " , ( PyCFunction ) _sre_unicode_iscased , METH_O , _sre_unicode_iscased__doc__ } ,
static int
_sre_unicode_iscased_impl ( PyObject * module , int character ) ;
static PyObject *
_sre_unicode_iscased ( PyObject * module , PyObject * arg )
{
PyObject * return_value = NULL ;
int character ;
int _return_value ;
2023-08-24 19:51:22 -03:00
character = PyLong_AsInt ( arg ) ;
2018-12-25 07:23:47 -04:00
if ( character = = - 1 & & PyErr_Occurred ( ) ) {
2017-05-09 17:37:14 -03:00
goto exit ;
}
_return_value = _sre_unicode_iscased_impl ( module , character ) ;
if ( ( _return_value = = - 1 ) & & PyErr_Occurred ( ) ) {
goto exit ;
}
return_value = PyBool_FromLong ( ( long ) _return_value ) ;
exit :
return return_value ;
}
2017-05-05 04:42:46 -03:00
PyDoc_STRVAR ( _sre_ascii_tolower__doc__ ,
" ascii_tolower($module, character, /) \n "
2015-05-03 09:54:23 -03:00
" -- \n "
" \n " ) ;
2017-05-05 04:42:46 -03:00
# define _SRE_ASCII_TOLOWER_METHODDEF \
{ " ascii_tolower " , ( PyCFunction ) _sre_ascii_tolower , METH_O , _sre_ascii_tolower__doc__ } ,
2015-05-03 09:54:23 -03:00
static int
2017-05-05 04:42:46 -03:00
_sre_ascii_tolower_impl ( PyObject * module , int character ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2017-05-05 04:42:46 -03:00
_sre_ascii_tolower ( PyObject * module , PyObject * arg )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
int character ;
int _return_value ;
2023-08-24 19:51:22 -03:00
character = PyLong_AsInt ( arg ) ;
2018-12-25 07:23:47 -04:00
if ( character = = - 1 & & PyErr_Occurred ( ) ) {
2017-05-05 04:42:46 -03:00
goto exit ;
}
_return_value = _sre_ascii_tolower_impl ( module , character ) ;
if ( ( _return_value = = - 1 ) & & PyErr_Occurred ( ) ) {
2015-05-03 09:54:23 -03:00
goto exit ;
2016-06-09 10:16:06 -03:00
}
2017-05-05 04:42:46 -03:00
return_value = PyLong_FromLong ( ( long ) _return_value ) ;
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_unicode_tolower__doc__ ,
" unicode_tolower($module, character, /) \n "
" -- \n "
" \n " ) ;
# define _SRE_UNICODE_TOLOWER_METHODDEF \
{ " unicode_tolower " , ( PyCFunction ) _sre_unicode_tolower , METH_O , _sre_unicode_tolower__doc__ } ,
static int
_sre_unicode_tolower_impl ( PyObject * module , int character ) ;
static PyObject *
_sre_unicode_tolower ( PyObject * module , PyObject * arg )
{
PyObject * return_value = NULL ;
int character ;
int _return_value ;
2017-01-16 20:35:17 -04:00
2023-08-24 19:51:22 -03:00
character = PyLong_AsInt ( arg ) ;
2018-12-25 07:23:47 -04:00
if ( character = = - 1 & & PyErr_Occurred ( ) ) {
2017-01-16 20:35:17 -04:00
goto exit ;
}
2017-05-05 04:42:46 -03:00
_return_value = _sre_unicode_tolower_impl ( module , character ) ;
2016-06-09 10:16:06 -03:00
if ( ( _return_value = = - 1 ) & & PyErr_Occurred ( ) ) {
2015-05-03 09:54:23 -03:00
goto exit ;
2016-06-09 10:16:06 -03:00
}
2015-05-03 09:54:23 -03:00
return_value = PyLong_FromLong ( ( long ) _return_value ) ;
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Pattern_match__doc__ ,
2017-01-13 02:53:58 -04:00
" match($self, /, string, pos=0, endpos=sys.maxsize) \n "
2015-05-03 09:54:23 -03:00
" -- \n "
" \n "
" Matches zero or more characters at the beginning of the string. " ) ;
# define _SRE_SRE_PATTERN_MATCH_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " match " , _PyCFunction_CAST ( _sre_SRE_Pattern_match ) , METH_METHOD | METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Pattern_match__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_match_impl ( PatternObject * self , PyTypeObject * cls ,
PyObject * string , Py_ssize_t pos ,
Py_ssize_t endpos ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_match ( PatternObject * self , PyTypeObject * cls , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 3
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( string ) , & _Py_ID ( pos ) , & _Py_ID ( endpos ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2017-01-13 02:53:58 -04:00
static const char * const _keywords [ ] = { " string " , " pos " , " endpos " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " match " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2022-04-30 07:15:02 -03:00
PyObject * argsbuf [ 3 ] ;
Py_ssize_t noptargs = nargs + ( kwnames ? PyTuple_GET_SIZE ( kwnames ) : 0 ) - 1 ;
2017-01-13 02:53:58 -04:00
PyObject * string ;
2015-05-03 09:54:23 -03:00
Py_ssize_t pos = 0 ;
Py_ssize_t endpos = PY_SSIZE_T_MAX ;
2022-04-30 07:15:02 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 1 , 3 , 0 , argsbuf ) ;
if ( ! args ) {
2015-05-03 09:54:23 -03:00
goto exit ;
2016-06-09 10:16:06 -03:00
}
2022-04-30 07:15:02 -03:00
string = args [ 0 ] ;
if ( ! noptargs ) {
goto skip_optional_pos ;
}
if ( args [ 1 ] ) {
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 1 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
pos = ival ;
}
if ( ! - - noptargs ) {
goto skip_optional_pos ;
}
}
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 2 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
endpos = ival ;
}
skip_optional_pos :
2020-11-20 08:36:23 -04:00
return_value = _sre_SRE_Pattern_match_impl ( self , cls , string , pos , endpos ) ;
2015-05-03 09:54:23 -03:00
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Pattern_fullmatch__doc__ ,
2017-01-13 02:53:58 -04:00
" fullmatch($self, /, string, pos=0, endpos=sys.maxsize) \n "
2015-05-03 09:54:23 -03:00
" -- \n "
" \n "
2017-10-04 14:09:49 -03:00
" Matches against all of the string. " ) ;
2015-05-03 09:54:23 -03:00
# define _SRE_SRE_PATTERN_FULLMATCH_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " fullmatch " , _PyCFunction_CAST ( _sre_SRE_Pattern_fullmatch ) , METH_METHOD | METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Pattern_fullmatch__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_fullmatch_impl ( PatternObject * self , PyTypeObject * cls ,
PyObject * string , Py_ssize_t pos ,
Py_ssize_t endpos ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_fullmatch ( PatternObject * self , PyTypeObject * cls , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 3
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( string ) , & _Py_ID ( pos ) , & _Py_ID ( endpos ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2017-01-13 02:53:58 -04:00
static const char * const _keywords [ ] = { " string " , " pos " , " endpos " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " fullmatch " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2022-04-30 07:15:02 -03:00
PyObject * argsbuf [ 3 ] ;
Py_ssize_t noptargs = nargs + ( kwnames ? PyTuple_GET_SIZE ( kwnames ) : 0 ) - 1 ;
2017-01-13 02:53:58 -04:00
PyObject * string ;
2015-05-03 09:54:23 -03:00
Py_ssize_t pos = 0 ;
Py_ssize_t endpos = PY_SSIZE_T_MAX ;
2022-04-30 07:15:02 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 1 , 3 , 0 , argsbuf ) ;
if ( ! args ) {
2019-03-14 05:32:22 -03:00
goto exit ;
}
2022-04-30 07:15:02 -03:00
string = args [ 0 ] ;
if ( ! noptargs ) {
goto skip_optional_pos ;
}
if ( args [ 1 ] ) {
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 1 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
pos = ival ;
}
if ( ! - - noptargs ) {
goto skip_optional_pos ;
}
}
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 2 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
endpos = ival ;
}
skip_optional_pos :
2020-11-20 08:36:23 -04:00
return_value = _sre_SRE_Pattern_fullmatch_impl ( self , cls , string , pos , endpos ) ;
2015-05-03 09:54:23 -03:00
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Pattern_search__doc__ ,
2017-01-13 02:53:58 -04:00
" search($self, /, string, pos=0, endpos=sys.maxsize) \n "
2015-05-03 09:54:23 -03:00
" -- \n "
" \n "
" Scan through string looking for a match, and return a corresponding match object instance. \n "
" \n "
" Return None if no position in the string matches. " ) ;
# define _SRE_SRE_PATTERN_SEARCH_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " search " , _PyCFunction_CAST ( _sre_SRE_Pattern_search ) , METH_METHOD | METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Pattern_search__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_search_impl ( PatternObject * self , PyTypeObject * cls ,
PyObject * string , Py_ssize_t pos ,
Py_ssize_t endpos ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_search ( PatternObject * self , PyTypeObject * cls , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 3
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( string ) , & _Py_ID ( pos ) , & _Py_ID ( endpos ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2017-01-13 02:53:58 -04:00
static const char * const _keywords [ ] = { " string " , " pos " , " endpos " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " search " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2022-04-30 07:15:02 -03:00
PyObject * argsbuf [ 3 ] ;
Py_ssize_t noptargs = nargs + ( kwnames ? PyTuple_GET_SIZE ( kwnames ) : 0 ) - 1 ;
2017-01-13 02:53:58 -04:00
PyObject * string ;
2015-05-03 09:54:23 -03:00
Py_ssize_t pos = 0 ;
Py_ssize_t endpos = PY_SSIZE_T_MAX ;
2022-04-30 07:15:02 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 1 , 3 , 0 , argsbuf ) ;
if ( ! args ) {
2019-03-14 05:32:22 -03:00
goto exit ;
}
2022-04-30 07:15:02 -03:00
string = args [ 0 ] ;
if ( ! noptargs ) {
goto skip_optional_pos ;
}
if ( args [ 1 ] ) {
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 1 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
pos = ival ;
}
if ( ! - - noptargs ) {
goto skip_optional_pos ;
}
}
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 2 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
endpos = ival ;
}
skip_optional_pos :
2020-11-20 08:36:23 -04:00
return_value = _sre_SRE_Pattern_search_impl ( self , cls , string , pos , endpos ) ;
2015-05-03 09:54:23 -03:00
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Pattern_findall__doc__ ,
2017-01-13 02:53:58 -04:00
" findall($self, /, string, pos=0, endpos=sys.maxsize) \n "
2015-05-03 09:54:23 -03:00
" -- \n "
" \n "
" Return a list of all non-overlapping matches of pattern in string. " ) ;
# define _SRE_SRE_PATTERN_FINDALL_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " findall " , _PyCFunction_CAST ( _sre_SRE_Pattern_findall ) , METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Pattern_findall__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
_sre_SRE_Pattern_findall_impl ( PatternObject * self , PyObject * string ,
2017-01-13 02:53:58 -04:00
Py_ssize_t pos , Py_ssize_t endpos ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2017-12-15 07:11:11 -04:00
_sre_SRE_Pattern_findall ( PatternObject * self , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 3
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( string ) , & _Py_ID ( pos ) , & _Py_ID ( endpos ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2017-01-13 02:53:58 -04:00
static const char * const _keywords [ ] = { " string " , " pos " , " endpos " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " findall " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2019-03-14 05:32:22 -03:00
PyObject * argsbuf [ 3 ] ;
Py_ssize_t noptargs = nargs + ( kwnames ? PyTuple_GET_SIZE ( kwnames ) : 0 ) - 1 ;
2017-01-13 02:53:58 -04:00
PyObject * string ;
2015-05-03 09:54:23 -03:00
Py_ssize_t pos = 0 ;
Py_ssize_t endpos = PY_SSIZE_T_MAX ;
2019-03-14 05:32:22 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 1 , 3 , 0 , argsbuf ) ;
if ( ! args ) {
goto exit ;
}
string = args [ 0 ] ;
if ( ! noptargs ) {
goto skip_optional_pos ;
}
if ( args [ 1 ] ) {
{
Py_ssize_t ival = - 1 ;
2020-05-28 04:33:45 -03:00
PyObject * iobj = _PyNumber_Index ( args [ 1 ] ) ;
2019-03-14 05:32:22 -03:00
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
pos = ival ;
}
if ( ! - - noptargs ) {
goto skip_optional_pos ;
}
}
{
Py_ssize_t ival = - 1 ;
2020-05-28 04:33:45 -03:00
PyObject * iobj = _PyNumber_Index ( args [ 2 ] ) ;
2019-03-14 05:32:22 -03:00
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
endpos = ival ;
}
skip_optional_pos :
2017-01-13 02:53:58 -04:00
return_value = _sre_SRE_Pattern_findall_impl ( self , string , pos , endpos ) ;
2015-05-03 09:54:23 -03:00
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Pattern_finditer__doc__ ,
" finditer($self, /, string, pos=0, endpos=sys.maxsize) \n "
" -- \n "
" \n "
" Return an iterator over all non-overlapping matches for the RE pattern in string. \n "
" \n "
" For each match, the iterator returns a match object. " ) ;
# define _SRE_SRE_PATTERN_FINDITER_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " finditer " , _PyCFunction_CAST ( _sre_SRE_Pattern_finditer ) , METH_METHOD | METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Pattern_finditer__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_finditer_impl ( PatternObject * self , PyTypeObject * cls ,
PyObject * string , Py_ssize_t pos ,
Py_ssize_t endpos ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_finditer ( PatternObject * self , PyTypeObject * cls , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 3
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( string ) , & _Py_ID ( pos ) , & _Py_ID ( endpos ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2016-08-14 04:52:18 -03:00
static const char * const _keywords [ ] = { " string " , " pos " , " endpos " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " finditer " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2022-04-30 07:15:02 -03:00
PyObject * argsbuf [ 3 ] ;
Py_ssize_t noptargs = nargs + ( kwnames ? PyTuple_GET_SIZE ( kwnames ) : 0 ) - 1 ;
2015-05-03 09:54:23 -03:00
PyObject * string ;
Py_ssize_t pos = 0 ;
Py_ssize_t endpos = PY_SSIZE_T_MAX ;
2022-04-30 07:15:02 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 1 , 3 , 0 , argsbuf ) ;
if ( ! args ) {
2019-03-14 05:32:22 -03:00
goto exit ;
}
2022-04-30 07:15:02 -03:00
string = args [ 0 ] ;
if ( ! noptargs ) {
goto skip_optional_pos ;
}
if ( args [ 1 ] ) {
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 1 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
pos = ival ;
}
if ( ! - - noptargs ) {
goto skip_optional_pos ;
}
}
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 2 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
endpos = ival ;
}
skip_optional_pos :
2020-11-20 08:36:23 -04:00
return_value = _sre_SRE_Pattern_finditer_impl ( self , cls , string , pos , endpos ) ;
2015-05-03 09:54:23 -03:00
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Pattern_scanner__doc__ ,
" scanner($self, /, string, pos=0, endpos=sys.maxsize) \n "
" -- \n "
" \n " ) ;
# define _SRE_SRE_PATTERN_SCANNER_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " scanner " , _PyCFunction_CAST ( _sre_SRE_Pattern_scanner ) , METH_METHOD | METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Pattern_scanner__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_scanner_impl ( PatternObject * self , PyTypeObject * cls ,
PyObject * string , Py_ssize_t pos ,
Py_ssize_t endpos ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_scanner ( PatternObject * self , PyTypeObject * cls , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 3
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( string ) , & _Py_ID ( pos ) , & _Py_ID ( endpos ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2016-08-14 04:52:18 -03:00
static const char * const _keywords [ ] = { " string " , " pos " , " endpos " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " scanner " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2022-04-30 07:15:02 -03:00
PyObject * argsbuf [ 3 ] ;
Py_ssize_t noptargs = nargs + ( kwnames ? PyTuple_GET_SIZE ( kwnames ) : 0 ) - 1 ;
2015-05-03 09:54:23 -03:00
PyObject * string ;
Py_ssize_t pos = 0 ;
Py_ssize_t endpos = PY_SSIZE_T_MAX ;
2022-04-30 07:15:02 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 1 , 3 , 0 , argsbuf ) ;
if ( ! args ) {
2015-05-03 09:54:23 -03:00
goto exit ;
2016-06-09 10:16:06 -03:00
}
2022-04-30 07:15:02 -03:00
string = args [ 0 ] ;
if ( ! noptargs ) {
goto skip_optional_pos ;
}
if ( args [ 1 ] ) {
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 1 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
pos = ival ;
}
if ( ! - - noptargs ) {
goto skip_optional_pos ;
}
}
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 2 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
endpos = ival ;
}
skip_optional_pos :
2020-11-20 08:36:23 -04:00
return_value = _sre_SRE_Pattern_scanner_impl ( self , cls , string , pos , endpos ) ;
2015-05-03 09:54:23 -03:00
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Pattern_split__doc__ ,
2017-01-13 02:53:58 -04:00
" split($self, /, string, maxsplit=0) \n "
2015-05-03 09:54:23 -03:00
" -- \n "
" \n "
" Split string by the occurrences of pattern. " ) ;
# define _SRE_SRE_PATTERN_SPLIT_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " split " , _PyCFunction_CAST ( _sre_SRE_Pattern_split ) , METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Pattern_split__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
_sre_SRE_Pattern_split_impl ( PatternObject * self , PyObject * string ,
2017-01-13 02:53:58 -04:00
Py_ssize_t maxsplit ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2017-12-15 07:11:11 -04:00
_sre_SRE_Pattern_split ( PatternObject * self , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 2
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( string ) , & _Py_ID ( maxsplit ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2017-01-13 02:53:58 -04:00
static const char * const _keywords [ ] = { " string " , " maxsplit " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " split " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2019-03-14 05:32:22 -03:00
PyObject * argsbuf [ 2 ] ;
Py_ssize_t noptargs = nargs + ( kwnames ? PyTuple_GET_SIZE ( kwnames ) : 0 ) - 1 ;
2017-01-13 02:53:58 -04:00
PyObject * string ;
2015-05-03 09:54:23 -03:00
Py_ssize_t maxsplit = 0 ;
2019-03-14 05:32:22 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 1 , 2 , 0 , argsbuf ) ;
if ( ! args ) {
goto exit ;
}
string = args [ 0 ] ;
if ( ! noptargs ) {
goto skip_optional_pos ;
}
{
Py_ssize_t ival = - 1 ;
2020-05-28 04:33:45 -03:00
PyObject * iobj = _PyNumber_Index ( args [ 1 ] ) ;
2019-03-14 05:32:22 -03:00
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
maxsplit = ival ;
}
skip_optional_pos :
2017-01-13 02:53:58 -04:00
return_value = _sre_SRE_Pattern_split_impl ( self , string , maxsplit ) ;
2015-05-03 09:54:23 -03:00
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Pattern_sub__doc__ ,
" sub($self, /, repl, string, count=0) \n "
" -- \n "
" \n "
" Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl. " ) ;
# define _SRE_SRE_PATTERN_SUB_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " sub " , _PyCFunction_CAST ( _sre_SRE_Pattern_sub ) , METH_METHOD | METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Pattern_sub__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_sub_impl ( PatternObject * self , PyTypeObject * cls ,
PyObject * repl , PyObject * string , Py_ssize_t count ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_sub ( PatternObject * self , PyTypeObject * cls , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 3
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( repl ) , & _Py_ID ( string ) , & _Py_ID ( count ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2016-08-14 04:52:18 -03:00
static const char * const _keywords [ ] = { " repl " , " string " , " count " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " sub " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2022-04-30 07:15:02 -03:00
PyObject * argsbuf [ 3 ] ;
Py_ssize_t noptargs = nargs + ( kwnames ? PyTuple_GET_SIZE ( kwnames ) : 0 ) - 2 ;
2015-05-03 09:54:23 -03:00
PyObject * repl ;
PyObject * string ;
Py_ssize_t count = 0 ;
2022-04-30 07:15:02 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 2 , 3 , 0 , argsbuf ) ;
if ( ! args ) {
2019-03-14 05:32:22 -03:00
goto exit ;
}
2022-04-30 07:15:02 -03:00
repl = args [ 0 ] ;
string = args [ 1 ] ;
if ( ! noptargs ) {
goto skip_optional_pos ;
}
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 2 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
count = ival ;
}
skip_optional_pos :
2020-11-20 08:36:23 -04:00
return_value = _sre_SRE_Pattern_sub_impl ( self , cls , repl , string , count ) ;
2015-05-03 09:54:23 -03:00
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Pattern_subn__doc__ ,
" subn($self, /, repl, string, count=0) \n "
" -- \n "
" \n "
" Return the tuple (new_string, number_of_subs_made) found by replacing the leftmost non-overlapping occurrences of pattern with the replacement repl. " ) ;
# define _SRE_SRE_PATTERN_SUBN_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " subn " , _PyCFunction_CAST ( _sre_SRE_Pattern_subn ) , METH_METHOD | METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Pattern_subn__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_subn_impl ( PatternObject * self , PyTypeObject * cls ,
PyObject * repl , PyObject * string ,
Py_ssize_t count ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Pattern_subn ( PatternObject * self , PyTypeObject * cls , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 3
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( repl ) , & _Py_ID ( string ) , & _Py_ID ( count ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2016-08-14 04:52:18 -03:00
static const char * const _keywords [ ] = { " repl " , " string " , " count " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " subn " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2022-04-30 07:15:02 -03:00
PyObject * argsbuf [ 3 ] ;
Py_ssize_t noptargs = nargs + ( kwnames ? PyTuple_GET_SIZE ( kwnames ) : 0 ) - 2 ;
2015-05-03 09:54:23 -03:00
PyObject * repl ;
PyObject * string ;
Py_ssize_t count = 0 ;
2022-04-30 07:15:02 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 2 , 3 , 0 , argsbuf ) ;
if ( ! args ) {
2019-03-14 05:32:22 -03:00
goto exit ;
}
2022-04-30 07:15:02 -03:00
repl = args [ 0 ] ;
string = args [ 1 ] ;
if ( ! noptargs ) {
goto skip_optional_pos ;
}
{
Py_ssize_t ival = - 1 ;
PyObject * iobj = _PyNumber_Index ( args [ 2 ] ) ;
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
count = ival ;
}
skip_optional_pos :
2020-11-20 08:36:23 -04:00
return_value = _sre_SRE_Pattern_subn_impl ( self , cls , repl , string , count ) ;
2015-05-03 09:54:23 -03:00
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Pattern___copy____doc__ ,
" __copy__($self, /) \n "
" -- \n "
" \n " ) ;
# define _SRE_SRE_PATTERN___COPY___METHODDEF \
{ " __copy__ " , ( PyCFunction ) _sre_SRE_Pattern___copy__ , METH_NOARGS , _sre_SRE_Pattern___copy____doc__ } ,
static PyObject *
_sre_SRE_Pattern___copy___impl ( PatternObject * self ) ;
static PyObject *
_sre_SRE_Pattern___copy__ ( PatternObject * self , PyObject * Py_UNUSED ( ignored ) )
{
return _sre_SRE_Pattern___copy___impl ( self ) ;
}
PyDoc_STRVAR ( _sre_SRE_Pattern___deepcopy____doc__ ,
2017-04-16 04:16:03 -03:00
" __deepcopy__($self, memo, /) \n "
2015-05-03 09:54:23 -03:00
" -- \n "
" \n " ) ;
# define _SRE_SRE_PATTERN___DEEPCOPY___METHODDEF \
2017-04-16 04:16:03 -03:00
{ " __deepcopy__ " , ( PyCFunction ) _sre_SRE_Pattern___deepcopy__ , METH_O , _sre_SRE_Pattern___deepcopy____doc__ } ,
2015-05-03 09:54:23 -03:00
PyDoc_STRVAR ( _sre_compile__doc__ ,
" compile($module, /, pattern, flags, code, groups, groupindex, \n "
2022-06-17 05:19:44 -03:00
" indexgroup) \n "
2015-05-03 09:54:23 -03:00
" -- \n "
" \n " ) ;
# define _SRE_COMPILE_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " compile " , _PyCFunction_CAST ( _sre_compile ) , METH_FASTCALL | METH_KEYWORDS , _sre_compile__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
2016-07-07 11:35:15 -03:00
_sre_compile_impl ( PyObject * module , PyObject * pattern , int flags ,
2015-05-03 09:54:23 -03:00
PyObject * code , Py_ssize_t groups , PyObject * groupindex ,
2022-06-17 05:19:44 -03:00
PyObject * indexgroup ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2017-12-15 07:11:11 -04:00
_sre_compile ( PyObject * module , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 6
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( pattern ) , & _Py_ID ( flags ) , & _Py_ID ( code ) , & _Py_ID ( groups ) , & _Py_ID ( groupindex ) , & _Py_ID ( indexgroup ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2022-06-17 05:19:44 -03:00
static const char * const _keywords [ ] = { " pattern " , " flags " , " code " , " groups " , " groupindex " , " indexgroup " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " compile " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2022-06-17 05:19:44 -03:00
PyObject * argsbuf [ 6 ] ;
2015-05-03 09:54:23 -03:00
PyObject * pattern ;
int flags ;
PyObject * code ;
Py_ssize_t groups ;
PyObject * groupindex ;
PyObject * indexgroup ;
2022-06-17 05:19:44 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 6 , 6 , 0 , argsbuf ) ;
2019-03-14 05:32:22 -03:00
if ( ! args ) {
2015-05-03 09:54:23 -03:00
goto exit ;
2016-06-09 10:16:06 -03:00
}
2019-03-14 05:32:22 -03:00
pattern = args [ 0 ] ;
2023-08-24 19:51:22 -03:00
flags = PyLong_AsInt ( args [ 1 ] ) ;
2019-03-14 05:32:22 -03:00
if ( flags = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
if ( ! PyList_Check ( args [ 2 ] ) ) {
2019-08-29 11:49:08 -03:00
_PyArg_BadArgument ( " compile " , " argument 'code' " , " list " , args [ 2 ] ) ;
2019-03-14 05:32:22 -03:00
goto exit ;
}
code = args [ 2 ] ;
{
Py_ssize_t ival = - 1 ;
2020-05-28 04:33:45 -03:00
PyObject * iobj = _PyNumber_Index ( args [ 3 ] ) ;
2019-03-14 05:32:22 -03:00
if ( iobj ! = NULL ) {
ival = PyLong_AsSsize_t ( iobj ) ;
Py_DECREF ( iobj ) ;
}
if ( ival = = - 1 & & PyErr_Occurred ( ) ) {
goto exit ;
}
groups = ival ;
}
if ( ! PyDict_Check ( args [ 4 ] ) ) {
2019-08-29 11:49:08 -03:00
_PyArg_BadArgument ( " compile " , " argument 'groupindex' " , " dict " , args [ 4 ] ) ;
2019-03-14 05:32:22 -03:00
goto exit ;
}
groupindex = args [ 4 ] ;
if ( ! PyTuple_Check ( args [ 5 ] ) ) {
2019-08-29 11:49:08 -03:00
_PyArg_BadArgument ( " compile " , " argument 'indexgroup' " , " tuple " , args [ 5 ] ) ;
2019-03-14 05:32:22 -03:00
goto exit ;
}
indexgroup = args [ 5 ] ;
2022-06-17 05:19:44 -03:00
return_value = _sre_compile_impl ( module , pattern , flags , code , groups , groupindex , indexgroup ) ;
2015-05-03 09:54:23 -03:00
exit :
return return_value ;
}
2022-10-23 19:57:30 -03:00
PyDoc_STRVAR ( _sre_template__doc__ ,
" template($module, pattern, template, /) \n "
" -- \n "
" \n "
" \n "
" \n "
" template \n "
" A list containing interleaved literal strings (str or bytes) and group \n "
" indices (int), as returned by re._parser.parse_template(): \n "
" [literal1, group1, ..., literalN, groupN] " ) ;
# define _SRE_TEMPLATE_METHODDEF \
{ " template " , _PyCFunction_CAST ( _sre_template ) , METH_FASTCALL , _sre_template__doc__ } ,
static PyObject *
_sre_template_impl ( PyObject * module , PyObject * pattern , PyObject * template ) ;
static PyObject *
_sre_template ( PyObject * module , PyObject * const * args , Py_ssize_t nargs )
{
PyObject * return_value = NULL ;
PyObject * pattern ;
PyObject * template ;
if ( ! _PyArg_CheckPositional ( " template " , nargs , 2 , 2 ) ) {
goto exit ;
}
pattern = args [ 0 ] ;
if ( ! PyList_Check ( args [ 1 ] ) ) {
_PyArg_BadArgument ( " template " , " argument 2 " , " list " , args [ 1 ] ) ;
goto exit ;
}
template = args [ 1 ] ;
return_value = _sre_template_impl ( module , pattern , template ) ;
exit :
return return_value ;
}
2015-05-03 09:54:23 -03:00
PyDoc_STRVAR ( _sre_SRE_Match_expand__doc__ ,
" expand($self, /, template) \n "
" -- \n "
" \n "
" Return the string obtained by doing backslash substitution on the string template, as done by the sub() method. " ) ;
# define _SRE_SRE_MATCH_EXPAND_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " expand " , _PyCFunction_CAST ( _sre_SRE_Match_expand ) , METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Match_expand__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
_sre_SRE_Match_expand_impl ( MatchObject * self , PyObject * template ) ;
static PyObject *
2017-12-15 07:11:11 -04:00
_sre_SRE_Match_expand ( MatchObject * self , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 1
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( template ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2016-08-14 04:52:18 -03:00
static const char * const _keywords [ ] = { " template " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " expand " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2019-03-14 05:32:22 -03:00
PyObject * argsbuf [ 1 ] ;
2015-05-03 09:54:23 -03:00
PyObject * template ;
2019-03-14 05:32:22 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 1 , 1 , 0 , argsbuf ) ;
if ( ! args ) {
2015-05-03 09:54:23 -03:00
goto exit ;
2016-06-09 10:16:06 -03:00
}
2019-03-14 05:32:22 -03:00
template = args [ 0 ] ;
2015-05-03 09:54:23 -03:00
return_value = _sre_SRE_Match_expand_impl ( self , template ) ;
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Match_groups__doc__ ,
" groups($self, /, default=None) \n "
" -- \n "
" \n "
" Return a tuple containing all the subgroups of the match, from 1. \n "
" \n "
" default \n "
" Is used for groups that did not participate in the match. " ) ;
# define _SRE_SRE_MATCH_GROUPS_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " groups " , _PyCFunction_CAST ( _sre_SRE_Match_groups ) , METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Match_groups__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
_sre_SRE_Match_groups_impl ( MatchObject * self , PyObject * default_value ) ;
static PyObject *
2017-12-15 07:11:11 -04:00
_sre_SRE_Match_groups ( MatchObject * self , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 1
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( default ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2016-08-14 04:52:18 -03:00
static const char * const _keywords [ ] = { " default " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " groups " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2019-03-14 05:32:22 -03:00
PyObject * argsbuf [ 1 ] ;
Py_ssize_t noptargs = nargs + ( kwnames ? PyTuple_GET_SIZE ( kwnames ) : 0 ) - 0 ;
2015-05-03 09:54:23 -03:00
PyObject * default_value = Py_None ;
2019-03-14 05:32:22 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 0 , 1 , 0 , argsbuf ) ;
if ( ! args ) {
2015-05-03 09:54:23 -03:00
goto exit ;
2016-06-09 10:16:06 -03:00
}
2019-03-14 05:32:22 -03:00
if ( ! noptargs ) {
goto skip_optional_pos ;
}
default_value = args [ 0 ] ;
skip_optional_pos :
2015-05-03 09:54:23 -03:00
return_value = _sre_SRE_Match_groups_impl ( self , default_value ) ;
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Match_groupdict__doc__ ,
" groupdict($self, /, default=None) \n "
" -- \n "
" \n "
" Return a dictionary containing all the named subgroups of the match, keyed by the subgroup name. \n "
" \n "
" default \n "
" Is used for groups that did not participate in the match. " ) ;
# define _SRE_SRE_MATCH_GROUPDICT_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " groupdict " , _PyCFunction_CAST ( _sre_SRE_Match_groupdict ) , METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Match_groupdict__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
_sre_SRE_Match_groupdict_impl ( MatchObject * self , PyObject * default_value ) ;
static PyObject *
2017-12-15 07:11:11 -04:00
_sre_SRE_Match_groupdict ( MatchObject * self , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
2022-08-13 07:09:40 -03:00
# if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
2022-08-11 18:25:49 -03:00
2022-08-13 07:09:40 -03:00
# define NUM_KEYWORDS 1
2022-08-11 18:25:49 -03:00
static struct {
PyGC_Head _this_is_not_used ;
PyObject_VAR_HEAD
PyObject * ob_item [ NUM_KEYWORDS ] ;
} _kwtuple = {
. ob_base = PyVarObject_HEAD_INIT ( & PyTuple_Type , NUM_KEYWORDS )
. ob_item = { & _Py_ID ( default ) , } ,
} ;
# undef NUM_KEYWORDS
2022-08-13 07:09:40 -03:00
# define KWTUPLE (&_kwtuple.ob_base.ob_base)
# else // !Py_BUILD_CORE
# define KWTUPLE NULL
# endif // !Py_BUILD_CORE
2022-08-11 18:25:49 -03:00
2016-08-14 04:52:18 -03:00
static const char * const _keywords [ ] = { " default " , NULL } ;
2022-08-11 18:25:49 -03:00
static _PyArg_Parser _parser = {
. keywords = _keywords ,
. fname = " groupdict " ,
. kwtuple = KWTUPLE ,
} ;
# undef KWTUPLE
2019-03-14 05:32:22 -03:00
PyObject * argsbuf [ 1 ] ;
Py_ssize_t noptargs = nargs + ( kwnames ? PyTuple_GET_SIZE ( kwnames ) : 0 ) - 0 ;
2015-05-03 09:54:23 -03:00
PyObject * default_value = Py_None ;
2019-03-14 05:32:22 -03:00
args = _PyArg_UnpackKeywords ( args , nargs , NULL , kwnames , & _parser , 0 , 1 , 0 , argsbuf ) ;
if ( ! args ) {
2015-05-03 09:54:23 -03:00
goto exit ;
2016-06-09 10:16:06 -03:00
}
2019-03-14 05:32:22 -03:00
if ( ! noptargs ) {
goto skip_optional_pos ;
}
default_value = args [ 0 ] ;
skip_optional_pos :
2015-05-03 09:54:23 -03:00
return_value = _sre_SRE_Match_groupdict_impl ( self , default_value ) ;
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Match_start__doc__ ,
" start($self, group=0, /) \n "
" -- \n "
" \n "
" Return index of the start of the substring matched by group. " ) ;
# define _SRE_SRE_MATCH_START_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " start " , _PyCFunction_CAST ( _sre_SRE_Match_start ) , METH_FASTCALL , _sre_SRE_Match_start__doc__ } ,
2015-05-03 09:54:23 -03:00
static Py_ssize_t
_sre_SRE_Match_start_impl ( MatchObject * self , PyObject * group ) ;
static PyObject *
2017-12-15 07:11:11 -04:00
_sre_SRE_Match_start ( MatchObject * self , PyObject * const * args , Py_ssize_t nargs )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
PyObject * group = NULL ;
Py_ssize_t _return_value ;
2019-01-11 12:01:42 -04:00
if ( ! _PyArg_CheckPositional ( " start " , nargs , 0 , 1 ) ) {
2017-01-16 21:21:47 -04:00
goto exit ;
}
2019-01-11 12:01:42 -04:00
if ( nargs < 1 ) {
goto skip_optional ;
}
group = args [ 0 ] ;
skip_optional :
2015-05-03 09:54:23 -03:00
_return_value = _sre_SRE_Match_start_impl ( self , group ) ;
2016-06-09 10:16:06 -03:00
if ( ( _return_value = = - 1 ) & & PyErr_Occurred ( ) ) {
2015-05-03 09:54:23 -03:00
goto exit ;
2016-06-09 10:16:06 -03:00
}
2015-05-03 09:54:23 -03:00
return_value = PyLong_FromSsize_t ( _return_value ) ;
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Match_end__doc__ ,
" end($self, group=0, /) \n "
" -- \n "
" \n "
" Return index of the end of the substring matched by group. " ) ;
# define _SRE_SRE_MATCH_END_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " end " , _PyCFunction_CAST ( _sre_SRE_Match_end ) , METH_FASTCALL , _sre_SRE_Match_end__doc__ } ,
2015-05-03 09:54:23 -03:00
static Py_ssize_t
_sre_SRE_Match_end_impl ( MatchObject * self , PyObject * group ) ;
static PyObject *
2017-12-15 07:11:11 -04:00
_sre_SRE_Match_end ( MatchObject * self , PyObject * const * args , Py_ssize_t nargs )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
PyObject * group = NULL ;
Py_ssize_t _return_value ;
2019-01-11 12:01:42 -04:00
if ( ! _PyArg_CheckPositional ( " end " , nargs , 0 , 1 ) ) {
2017-01-16 21:21:47 -04:00
goto exit ;
}
2019-01-11 12:01:42 -04:00
if ( nargs < 1 ) {
goto skip_optional ;
}
group = args [ 0 ] ;
skip_optional :
2015-05-03 09:54:23 -03:00
_return_value = _sre_SRE_Match_end_impl ( self , group ) ;
2016-06-09 10:16:06 -03:00
if ( ( _return_value = = - 1 ) & & PyErr_Occurred ( ) ) {
2015-05-03 09:54:23 -03:00
goto exit ;
2016-06-09 10:16:06 -03:00
}
2015-05-03 09:54:23 -03:00
return_value = PyLong_FromSsize_t ( _return_value ) ;
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Match_span__doc__ ,
" span($self, group=0, /) \n "
" -- \n "
" \n "
2017-10-04 14:09:49 -03:00
" For match object m, return the 2-tuple (m.start(group), m.end(group)). " ) ;
2015-05-03 09:54:23 -03:00
# define _SRE_SRE_MATCH_SPAN_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " span " , _PyCFunction_CAST ( _sre_SRE_Match_span ) , METH_FASTCALL , _sre_SRE_Match_span__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
_sre_SRE_Match_span_impl ( MatchObject * self , PyObject * group ) ;
static PyObject *
2017-12-15 07:11:11 -04:00
_sre_SRE_Match_span ( MatchObject * self , PyObject * const * args , Py_ssize_t nargs )
2015-05-03 09:54:23 -03:00
{
PyObject * return_value = NULL ;
PyObject * group = NULL ;
2019-01-11 12:01:42 -04:00
if ( ! _PyArg_CheckPositional ( " span " , nargs , 0 , 1 ) ) {
2017-01-16 21:21:47 -04:00
goto exit ;
}
2019-01-11 12:01:42 -04:00
if ( nargs < 1 ) {
goto skip_optional ;
}
group = args [ 0 ] ;
skip_optional :
2015-05-03 09:54:23 -03:00
return_value = _sre_SRE_Match_span_impl ( self , group ) ;
exit :
return return_value ;
}
PyDoc_STRVAR ( _sre_SRE_Match___copy____doc__ ,
" __copy__($self, /) \n "
" -- \n "
" \n " ) ;
# define _SRE_SRE_MATCH___COPY___METHODDEF \
{ " __copy__ " , ( PyCFunction ) _sre_SRE_Match___copy__ , METH_NOARGS , _sre_SRE_Match___copy____doc__ } ,
static PyObject *
_sre_SRE_Match___copy___impl ( MatchObject * self ) ;
static PyObject *
_sre_SRE_Match___copy__ ( MatchObject * self , PyObject * Py_UNUSED ( ignored ) )
{
return _sre_SRE_Match___copy___impl ( self ) ;
}
PyDoc_STRVAR ( _sre_SRE_Match___deepcopy____doc__ ,
2017-04-16 04:16:03 -03:00
" __deepcopy__($self, memo, /) \n "
2015-05-03 09:54:23 -03:00
" -- \n "
" \n " ) ;
# define _SRE_SRE_MATCH___DEEPCOPY___METHODDEF \
2017-04-16 04:16:03 -03:00
{ " __deepcopy__ " , ( PyCFunction ) _sre_SRE_Match___deepcopy__ , METH_O , _sre_SRE_Match___deepcopy____doc__ } ,
2015-05-03 09:54:23 -03:00
PyDoc_STRVAR ( _sre_SRE_Scanner_match__doc__ ,
" match($self, /) \n "
" -- \n "
" \n " ) ;
# define _SRE_SRE_SCANNER_MATCH_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " match " , _PyCFunction_CAST ( _sre_SRE_Scanner_match ) , METH_METHOD | METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Scanner_match__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Scanner_match_impl ( ScannerObject * self , PyTypeObject * cls ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Scanner_match ( ScannerObject * self , PyTypeObject * cls , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
2022-04-30 07:15:02 -03:00
if ( nargs ) {
PyErr_SetString ( PyExc_TypeError , " match() takes no arguments " ) ;
return NULL ;
2020-11-20 08:36:23 -04:00
}
2022-04-30 07:15:02 -03:00
return _sre_SRE_Scanner_match_impl ( self , cls ) ;
2015-05-03 09:54:23 -03:00
}
PyDoc_STRVAR ( _sre_SRE_Scanner_search__doc__ ,
" search($self, /) \n "
" -- \n "
" \n " ) ;
# define _SRE_SRE_SCANNER_SEARCH_METHODDEF \
2022-05-03 15:25:41 -03:00
{ " search " , _PyCFunction_CAST ( _sre_SRE_Scanner_search ) , METH_METHOD | METH_FASTCALL | METH_KEYWORDS , _sre_SRE_Scanner_search__doc__ } ,
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Scanner_search_impl ( ScannerObject * self , PyTypeObject * cls ) ;
2015-05-03 09:54:23 -03:00
static PyObject *
2020-11-20 08:36:23 -04:00
_sre_SRE_Scanner_search ( ScannerObject * self , PyTypeObject * cls , PyObject * const * args , Py_ssize_t nargs , PyObject * kwnames )
2015-05-03 09:54:23 -03:00
{
2022-04-30 07:15:02 -03:00
if ( nargs ) {
PyErr_SetString ( PyExc_TypeError , " search() takes no arguments " ) ;
return NULL ;
2020-11-20 08:36:23 -04:00
}
2022-04-30 07:15:02 -03:00
return _sre_SRE_Scanner_search_impl ( self , cls ) ;
2015-05-03 09:54:23 -03:00
}
2023-08-31 18:42:34 -03:00
/*[clinic end generated code: output=46d83927cbafa93a input=a9049054013a1b77]*/