| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | /*[clinic input]
 | 
					
						
							|  |  |  | preserve | 
					
						
							|  |  |  | [clinic start generated code]*/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_abs__doc__, | 
					
						
							|  |  |  | "abs($module, x, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the absolute value of the argument."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_ABS_METHODDEF    \
 | 
					
						
							|  |  |  |     {"abs", (PyCFunction)builtin_abs, METH_O, builtin_abs__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_all__doc__, | 
					
						
							|  |  |  | "all($module, iterable, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return True if bool(x) is True for all values x in the iterable.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "If the iterable is empty, return True."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_ALL_METHODDEF    \
 | 
					
						
							|  |  |  |     {"all", (PyCFunction)builtin_all, METH_O, builtin_all__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_any__doc__, | 
					
						
							|  |  |  | "any($module, iterable, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return True if bool(x) is True for any x in the iterable.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "If the iterable is empty, return False."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_ANY_METHODDEF    \
 | 
					
						
							|  |  |  |     {"any", (PyCFunction)builtin_any, METH_O, builtin_any__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_ascii__doc__, | 
					
						
							|  |  |  | "ascii($module, obj, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return an ASCII-only representation of an object.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "As repr(), return a string containing a printable representation of an\n" | 
					
						
							|  |  |  | "object, but escape the non-ASCII characters in the string returned by\n" | 
					
						
							|  |  |  | "repr() using \\\\x, \\\\u or \\\\U escapes. This generates a string similar\n" | 
					
						
							|  |  |  | "to that returned by repr() in Python 2."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_ASCII_METHODDEF    \
 | 
					
						
							|  |  |  |     {"ascii", (PyCFunction)builtin_ascii, METH_O, builtin_ascii__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_bin__doc__, | 
					
						
							|  |  |  | "bin($module, number, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the binary representation of an integer.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "   >>> bin(2796202)\n" | 
					
						
							|  |  |  | "   \'0b1010101010101010101010\'"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_BIN_METHODDEF    \
 | 
					
						
							|  |  |  |     {"bin", (PyCFunction)builtin_bin, METH_O, builtin_bin__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_callable__doc__, | 
					
						
							|  |  |  | "callable($module, obj, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return whether the object is callable (i.e., some kind of function).\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Note that classes are callable, as are instances of classes with a\n" | 
					
						
							|  |  |  | "__call__() method."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_CALLABLE_METHODDEF    \
 | 
					
						
							|  |  |  |     {"callable", (PyCFunction)builtin_callable, METH_O, builtin_callable__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_format__doc__, | 
					
						
							|  |  |  | "format($module, value, format_spec=\'\', /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return value.__format__(format_spec)\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							| 
									
										
										
										
											2017-05-29 06:32:26 +05:30
										 |  |  | "format_spec defaults to the empty string.\n" | 
					
						
							|  |  |  | "See the Format Specification Mini-Language section of help(\'FORMATTING\') for\n" | 
					
						
							|  |  |  | "details."); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_FORMAT_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"format", (PyCFunction)(void(*)(void))builtin_format, METH_FASTCALL, builtin_format__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_format_impl(PyObject *module, PyObject *value, PyObject *format_spec); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_format(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     PyObject *value; | 
					
						
							|  |  |  |     PyObject *format_spec = NULL; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 16:01:14 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("format", nargs, 1, 2)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 01:35:17 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 16:01:14 +02:00
										 |  |  |     value = args[0]; | 
					
						
							|  |  |  |     if (nargs < 2) { | 
					
						
							|  |  |  |         goto skip_optional; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (!PyUnicode_Check(args[1])) { | 
					
						
							| 
									
										
										
										
											2019-08-29 16:49:08 +02:00
										 |  |  |         _PyArg_BadArgument("format", "argument 2", "str", args[1]); | 
					
						
							| 
									
										
										
										
											2019-01-11 16:01:14 +02:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (PyUnicode_READY(args[1]) == -1) { | 
					
						
							|  |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     format_spec = args[1]; | 
					
						
							|  |  |  | skip_optional: | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_format_impl(module, value, format_spec); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_chr__doc__, | 
					
						
							|  |  |  | "chr($module, i, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_CHR_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2015-04-04 00:12:11 +03:00
										 |  |  |     {"chr", (PyCFunction)builtin_chr, METH_O, builtin_chr__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_chr_impl(PyObject *module, int i); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_chr(PyObject *module, PyObject *arg) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     int i; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-25 13:23:47 +02:00
										 |  |  |     i = _PyLong_AsInt(arg); | 
					
						
							|  |  |  |     if (i == -1 && PyErr_Occurred()) { | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |         goto exit; | 
					
						
							| 
									
										
										
										
											2016-06-09 16:16:06 +03:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_chr_impl(module, i); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_compile__doc__, | 
					
						
							| 
									
										
										
										
											2015-05-30 11:30:39 +03:00
										 |  |  | "compile($module, /, source, filename, mode, flags=0,\n" | 
					
						
							| 
									
										
										
										
											2019-06-12 02:52:16 +02:00
										 |  |  | "        dont_inherit=False, optimize=-1, *, _feature_version=-1)\n" | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Compile source into a code object that can be executed by exec() or eval().\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "The source code may represent a Python module, statement or expression.\n" | 
					
						
							|  |  |  | "The filename will be used for run-time error messages.\n" | 
					
						
							|  |  |  | "The mode must be \'exec\' to compile a module, \'single\' to compile a\n" | 
					
						
							|  |  |  | "single (interactive) statement, or \'eval\' to compile an expression.\n" | 
					
						
							|  |  |  | "The flags argument, if present, controls which future statements influence\n" | 
					
						
							|  |  |  | "the compilation of the code.\n" | 
					
						
							| 
									
										
										
										
											2015-05-30 11:30:39 +03:00
										 |  |  | "The dont_inherit argument, if true, stops the compilation inheriting\n" | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | "the effects of any future statements in effect in the code calling\n" | 
					
						
							| 
									
										
										
										
											2015-05-30 11:30:39 +03:00
										 |  |  | "compile; if absent or false these statements do influence the compilation,\n" | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | "in addition to any features explicitly specified."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_COMPILE_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"compile", (PyCFunction)(void(*)(void))builtin_compile, METH_FASTCALL|METH_KEYWORDS, builtin_compile__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename, | 
					
						
							|  |  |  |                      const char *mode, int flags, int dont_inherit, | 
					
						
							| 
									
										
										
										
											2019-03-07 12:38:08 -08:00
										 |  |  |                      int optimize, int feature_version); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							| 
									
										
										
										
											2019-06-12 02:52:16 +02:00
										 |  |  |     static const char * const _keywords[] = {"source", "filename", "mode", "flags", "dont_inherit", "optimize", "_feature_version", NULL}; | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0}; | 
					
						
							|  |  |  |     PyObject *argsbuf[7]; | 
					
						
							|  |  |  |     Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3; | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     PyObject *source; | 
					
						
							|  |  |  |     PyObject *filename; | 
					
						
							|  |  |  |     const char *mode; | 
					
						
							|  |  |  |     int flags = 0; | 
					
						
							|  |  |  |     int dont_inherit = 0; | 
					
						
							|  |  |  |     int optimize = -1; | 
					
						
							| 
									
										
										
										
											2019-03-07 12:38:08 -08:00
										 |  |  |     int feature_version = -1; | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-12 02:52:16 +02:00
										 |  |  |     args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 6, 0, argsbuf); | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     if (!args) { | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |         goto exit; | 
					
						
							| 
									
										
										
										
											2016-06-09 16:16:06 +03:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     source = args[0]; | 
					
						
							|  |  |  |     if (!PyUnicode_FSDecoder(args[1], &filename)) { | 
					
						
							|  |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (!PyUnicode_Check(args[2])) { | 
					
						
							| 
									
										
										
										
											2019-08-29 16:49:08 +02:00
										 |  |  |         _PyArg_BadArgument("compile", "argument 'mode'", "str", args[2]); | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     Py_ssize_t mode_length; | 
					
						
							|  |  |  |     mode = PyUnicode_AsUTF8AndSize(args[2], &mode_length); | 
					
						
							|  |  |  |     if (mode == NULL) { | 
					
						
							|  |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (strlen(mode) != (size_t)mode_length) { | 
					
						
							|  |  |  |         PyErr_SetString(PyExc_ValueError, "embedded null character"); | 
					
						
							|  |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (!noptargs) { | 
					
						
							|  |  |  |         goto skip_optional_pos; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (args[3]) { | 
					
						
							|  |  |  |         flags = _PyLong_AsInt(args[3]); | 
					
						
							|  |  |  |         if (flags == -1 && PyErr_Occurred()) { | 
					
						
							|  |  |  |             goto exit; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (!--noptargs) { | 
					
						
							|  |  |  |             goto skip_optional_pos; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (args[4]) { | 
					
						
							|  |  |  |         dont_inherit = _PyLong_AsInt(args[4]); | 
					
						
							|  |  |  |         if (dont_inherit == -1 && PyErr_Occurred()) { | 
					
						
							|  |  |  |             goto exit; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (!--noptargs) { | 
					
						
							|  |  |  |             goto skip_optional_pos; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     if (args[5]) { | 
					
						
							|  |  |  |         optimize = _PyLong_AsInt(args[5]); | 
					
						
							|  |  |  |         if (optimize == -1 && PyErr_Occurred()) { | 
					
						
							|  |  |  |             goto exit; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (!--noptargs) { | 
					
						
							|  |  |  |             goto skip_optional_pos; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-06-12 02:52:16 +02:00
										 |  |  | skip_optional_pos: | 
					
						
							|  |  |  |     if (!noptargs) { | 
					
						
							|  |  |  |         goto skip_optional_kwonly; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     feature_version = _PyLong_AsInt(args[6]); | 
					
						
							|  |  |  |     if (feature_version == -1 && PyErr_Occurred()) { | 
					
						
							|  |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-06-12 02:52:16 +02:00
										 |  |  | skip_optional_kwonly: | 
					
						
							| 
									
										
										
										
											2019-03-07 12:38:08 -08:00
										 |  |  |     return_value = builtin_compile_impl(module, source, filename, mode, flags, dont_inherit, optimize, feature_version); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_divmod__doc__, | 
					
						
							|  |  |  | "divmod($module, x, y, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							| 
									
										
										
										
											2016-05-01 20:33:24 +03:00
										 |  |  | "Return the tuple (x//y, x%y).  Invariant: div*y + mod == x."); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_DIVMOD_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"divmod", (PyCFunction)(void(*)(void))builtin_divmod, METH_FASTCALL, builtin_divmod__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_divmod_impl(PyObject *module, PyObject *x, PyObject *y); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_divmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     PyObject *x; | 
					
						
							|  |  |  |     PyObject *y; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("divmod", nargs, 2, 2)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     x = args[0]; | 
					
						
							|  |  |  |     y = args[1]; | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_divmod_impl(module, x, y); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_eval__doc__, | 
					
						
							|  |  |  | "eval($module, source, globals=None, locals=None, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Evaluate the given source in the context of globals and locals.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "The source may be a string representing a Python expression\n" | 
					
						
							|  |  |  | "or a code object as returned by compile().\n" | 
					
						
							|  |  |  | "The globals must be a dictionary and locals can be any mapping,\n" | 
					
						
							|  |  |  | "defaulting to the current globals and locals.\n" | 
					
						
							|  |  |  | "If only globals is given, locals defaults to it."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_EVAL_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"eval", (PyCFunction)(void(*)(void))builtin_eval, METH_FASTCALL, builtin_eval__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_eval_impl(PyObject *module, PyObject *source, PyObject *globals, | 
					
						
							| 
									
										
										
										
											2015-04-14 18:07:59 -04:00
										 |  |  |                   PyObject *locals); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_eval(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     PyObject *source; | 
					
						
							|  |  |  |     PyObject *globals = Py_None; | 
					
						
							|  |  |  |     PyObject *locals = Py_None; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("eval", nargs, 1, 3)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     source = args[0]; | 
					
						
							|  |  |  |     if (nargs < 2) { | 
					
						
							|  |  |  |         goto skip_optional; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     globals = args[1]; | 
					
						
							|  |  |  |     if (nargs < 3) { | 
					
						
							|  |  |  |         goto skip_optional; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     locals = args[2]; | 
					
						
							|  |  |  | skip_optional: | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_eval_impl(module, source, globals, locals); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_exec__doc__, | 
					
						
							|  |  |  | "exec($module, source, globals=None, locals=None, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Execute the given source in the context of globals and locals.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "The source may be a string representing one or more Python statements\n" | 
					
						
							|  |  |  | "or a code object as returned by compile().\n" | 
					
						
							|  |  |  | "The globals must be a dictionary and locals can be any mapping,\n" | 
					
						
							|  |  |  | "defaulting to the current globals and locals.\n" | 
					
						
							|  |  |  | "If only globals is given, locals defaults to it."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_EXEC_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"exec", (PyCFunction)(void(*)(void))builtin_exec, METH_FASTCALL, builtin_exec__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals, | 
					
						
							| 
									
										
										
										
											2015-04-14 18:07:59 -04:00
										 |  |  |                   PyObject *locals); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     PyObject *source; | 
					
						
							|  |  |  |     PyObject *globals = Py_None; | 
					
						
							|  |  |  |     PyObject *locals = Py_None; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("exec", nargs, 1, 3)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     source = args[0]; | 
					
						
							|  |  |  |     if (nargs < 2) { | 
					
						
							|  |  |  |         goto skip_optional; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     globals = args[1]; | 
					
						
							|  |  |  |     if (nargs < 3) { | 
					
						
							|  |  |  |         goto skip_optional; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     locals = args[2]; | 
					
						
							|  |  |  | skip_optional: | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_exec_impl(module, source, globals, locals); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_globals__doc__, | 
					
						
							|  |  |  | "globals($module, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the dictionary containing the current scope\'s global variables.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "NOTE: Updates to this dictionary *will* affect name lookups in the current\n" | 
					
						
							|  |  |  | "global scope and vice-versa."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_GLOBALS_METHODDEF    \
 | 
					
						
							|  |  |  |     {"globals", (PyCFunction)builtin_globals, METH_NOARGS, builtin_globals__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_globals_impl(PyObject *module); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_globals(PyObject *module, PyObject *Py_UNUSED(ignored)) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     return builtin_globals_impl(module); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_hasattr__doc__, | 
					
						
							|  |  |  | "hasattr($module, obj, name, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return whether the object has an attribute with the given name.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "This is done by calling getattr(obj, name) and catching AttributeError."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_HASATTR_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"hasattr", (PyCFunction)(void(*)(void))builtin_hasattr, METH_FASTCALL, builtin_hasattr__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_hasattr_impl(PyObject *module, PyObject *obj, PyObject *name); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_hasattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     PyObject *obj; | 
					
						
							|  |  |  |     PyObject *name; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("hasattr", nargs, 2, 2)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     obj = args[0]; | 
					
						
							|  |  |  |     name = args[1]; | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_hasattr_impl(module, obj, name); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_id__doc__, | 
					
						
							|  |  |  | "id($module, obj, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the identity of an object.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "This is guaranteed to be unique among simultaneously existing objects.\n" | 
					
						
							|  |  |  | "(CPython uses the object\'s memory address.)"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_ID_METHODDEF    \
 | 
					
						
							|  |  |  |     {"id", (PyCFunction)builtin_id, METH_O, builtin_id__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_setattr__doc__, | 
					
						
							|  |  |  | "setattr($module, obj, name, value, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Sets the named attribute on the given object to the specified value.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "setattr(x, \'y\', v) is equivalent to ``x.y = v\'\'"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_SETATTR_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"setattr", (PyCFunction)(void(*)(void))builtin_setattr, METH_FASTCALL, builtin_setattr__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_setattr_impl(PyObject *module, PyObject *obj, PyObject *name, | 
					
						
							| 
									
										
										
										
											2015-04-14 18:07:59 -04:00
										 |  |  |                      PyObject *value); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_setattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     PyObject *obj; | 
					
						
							|  |  |  |     PyObject *name; | 
					
						
							|  |  |  |     PyObject *value; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("setattr", nargs, 3, 3)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     obj = args[0]; | 
					
						
							|  |  |  |     name = args[1]; | 
					
						
							|  |  |  |     value = args[2]; | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_setattr_impl(module, obj, name, value); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_delattr__doc__, | 
					
						
							|  |  |  | "delattr($module, obj, name, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Deletes the named attribute from the given object.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "delattr(x, \'y\') is equivalent to ``del x.y\'\'"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_DELATTR_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"delattr", (PyCFunction)(void(*)(void))builtin_delattr, METH_FASTCALL, builtin_delattr__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_delattr_impl(PyObject *module, PyObject *obj, PyObject *name); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_delattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     PyObject *obj; | 
					
						
							|  |  |  |     PyObject *name; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("delattr", nargs, 2, 2)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     obj = args[0]; | 
					
						
							|  |  |  |     name = args[1]; | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_delattr_impl(module, obj, name); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_hash__doc__, | 
					
						
							|  |  |  | "hash($module, obj, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the hash value for the given object.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Two objects that compare equal must also have the same hash value, but the\n" | 
					
						
							|  |  |  | "reverse is not necessarily true."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_HASH_METHODDEF    \
 | 
					
						
							|  |  |  |     {"hash", (PyCFunction)builtin_hash, METH_O, builtin_hash__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_hex__doc__, | 
					
						
							|  |  |  | "hex($module, number, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the hexadecimal representation of an integer.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "   >>> hex(12648430)\n" | 
					
						
							|  |  |  | "   \'0xc0ffee\'"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_HEX_METHODDEF    \
 | 
					
						
							|  |  |  |     {"hex", (PyCFunction)builtin_hex, METH_O, builtin_hex__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_len__doc__, | 
					
						
							|  |  |  | "len($module, obj, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the number of items in a container."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_LEN_METHODDEF    \
 | 
					
						
							|  |  |  |     {"len", (PyCFunction)builtin_len, METH_O, builtin_len__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_locals__doc__, | 
					
						
							|  |  |  | "locals($module, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return a dictionary containing the current scope\'s local variables.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "NOTE: Whether or not updates to this dictionary will affect name lookups in\n" | 
					
						
							|  |  |  | "the local scope and vice-versa is *implementation dependent* and not\n" | 
					
						
							|  |  |  | "covered by any backwards compatibility guarantees."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_LOCALS_METHODDEF    \
 | 
					
						
							|  |  |  |     {"locals", (PyCFunction)builtin_locals, METH_NOARGS, builtin_locals__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_locals_impl(PyObject *module); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_locals(PyObject *module, PyObject *Py_UNUSED(ignored)) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     return builtin_locals_impl(module); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_oct__doc__, | 
					
						
							|  |  |  | "oct($module, number, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the octal representation of an integer.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "   >>> oct(342391)\n" | 
					
						
							|  |  |  | "   \'0o1234567\'"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_OCT_METHODDEF    \
 | 
					
						
							|  |  |  |     {"oct", (PyCFunction)builtin_oct, METH_O, builtin_oct__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_ord__doc__, | 
					
						
							|  |  |  | "ord($module, c, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the Unicode code point for a one-character string."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_ORD_METHODDEF    \
 | 
					
						
							|  |  |  |     {"ord", (PyCFunction)builtin_ord, METH_O, builtin_ord__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_pow__doc__, | 
					
						
							| 
									
										
										
										
											2019-09-21 00:28:49 -04:00
										 |  |  | "pow($module, /, base, exp, mod=None)\n" | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							| 
									
										
										
										
											2019-09-21 12:57:44 -07:00
										 |  |  | "Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments\n" | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | "\n" | 
					
						
							|  |  |  | "Some types, such as ints, are able to use a more efficient algorithm when\n" | 
					
						
							|  |  |  | "invoked using the three argument form."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_POW_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2019-09-21 00:28:49 -04:00
										 |  |  |     {"pow", (PyCFunction)(void(*)(void))builtin_pow, METH_FASTCALL|METH_KEYWORDS, builtin_pow__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2019-09-21 00:28:49 -04:00
										 |  |  | builtin_pow_impl(PyObject *module, PyObject *base, PyObject *exp, | 
					
						
							|  |  |  |                  PyObject *mod); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2019-09-21 00:28:49 -04:00
										 |  |  | builtin_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							| 
									
										
										
										
											2019-09-21 00:28:49 -04:00
										 |  |  |     static const char * const _keywords[] = {"base", "exp", "mod", NULL}; | 
					
						
							|  |  |  |     static _PyArg_Parser _parser = {NULL, _keywords, "pow", 0}; | 
					
						
							|  |  |  |     PyObject *argsbuf[3]; | 
					
						
							|  |  |  |     Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2; | 
					
						
							|  |  |  |     PyObject *base; | 
					
						
							|  |  |  |     PyObject *exp; | 
					
						
							|  |  |  |     PyObject *mod = Py_None; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf); | 
					
						
							|  |  |  |     if (!args) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-09-21 00:28:49 -04:00
										 |  |  |     base = args[0]; | 
					
						
							|  |  |  |     exp = args[1]; | 
					
						
							|  |  |  |     if (!noptargs) { | 
					
						
							|  |  |  |         goto skip_optional_pos; | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-09-21 00:28:49 -04:00
										 |  |  |     mod = args[2]; | 
					
						
							|  |  |  | skip_optional_pos: | 
					
						
							|  |  |  |     return_value = builtin_pow_impl(module, base, exp, mod); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_input__doc__, | 
					
						
							|  |  |  | "input($module, prompt=None, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Read a string from standard input.  The trailing newline is stripped.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "The prompt string, if given, is printed to standard output without a\n" | 
					
						
							|  |  |  | "trailing newline before reading input.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.\n" | 
					
						
							|  |  |  | "On *nix systems, readline is used if available."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_INPUT_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"input", (PyCFunction)(void(*)(void))builtin_input, METH_FASTCALL, builtin_input__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_input_impl(PyObject *module, PyObject *prompt); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_input(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     PyObject *prompt = NULL; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("input", nargs, 0, 1)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (nargs < 1) { | 
					
						
							|  |  |  |         goto skip_optional; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     prompt = args[0]; | 
					
						
							|  |  |  | skip_optional: | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_input_impl(module, prompt); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_repr__doc__, | 
					
						
							|  |  |  | "repr($module, obj, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the canonical string representation of the object.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "For many object types, including most builtins, eval(repr(obj)) == obj."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_REPR_METHODDEF    \
 | 
					
						
							|  |  |  |     {"repr", (PyCFunction)builtin_repr, METH_O, builtin_repr__doc__}, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-15 17:51:14 +02:00
										 |  |  | PyDoc_STRVAR(builtin_round__doc__, | 
					
						
							|  |  |  | "round($module, /, number, ndigits=None)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Round a number to a given precision in decimal digits.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "The return value is an integer if ndigits is omitted or None.  Otherwise\n" | 
					
						
							|  |  |  | "the return value has the same type as the number.  ndigits may be negative."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_ROUND_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"round", (PyCFunction)(void(*)(void))builtin_round, METH_FASTCALL|METH_KEYWORDS, builtin_round__doc__}, | 
					
						
							| 
									
										
										
										
											2017-11-15 17:51:14 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							|  |  |  | builtin_round_impl(PyObject *module, PyObject *number, PyObject *ndigits); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_round(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) | 
					
						
							| 
									
										
										
										
											2017-11-15 17:51:14 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     static const char * const _keywords[] = {"number", "ndigits", NULL}; | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     static _PyArg_Parser _parser = {NULL, _keywords, "round", 0}; | 
					
						
							|  |  |  |     PyObject *argsbuf[2]; | 
					
						
							|  |  |  |     Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; | 
					
						
							| 
									
										
										
										
											2017-11-15 17:51:14 +02:00
										 |  |  |     PyObject *number; | 
					
						
							| 
									
										
										
										
											2019-09-14 12:24:05 +03:00
										 |  |  |     PyObject *ndigits = Py_None; | 
					
						
							| 
									
										
										
										
											2017-11-15 17:51:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf); | 
					
						
							|  |  |  |     if (!args) { | 
					
						
							| 
									
										
										
										
											2017-11-15 17:51:14 +02:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     number = args[0]; | 
					
						
							|  |  |  |     if (!noptargs) { | 
					
						
							|  |  |  |         goto skip_optional_pos; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     ndigits = args[1]; | 
					
						
							|  |  |  | skip_optional_pos: | 
					
						
							| 
									
										
										
										
											2017-11-15 17:51:14 +02:00
										 |  |  |     return_value = builtin_round_impl(module, number, ndigits); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | PyDoc_STRVAR(builtin_sum__doc__, | 
					
						
							| 
									
										
										
										
											2018-09-12 10:54:06 -07:00
										 |  |  | "sum($module, iterable, /, start=0)\n" | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return the sum of a \'start\' value (default: 0) plus an iterable of numbers\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "When the iterable is empty, return the start value.\n" | 
					
						
							|  |  |  | "This function is intended specifically for use with numeric values and may\n" | 
					
						
							|  |  |  | "reject non-numeric types."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_SUM_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"sum", (PyCFunction)(void(*)(void))builtin_sum, METH_FASTCALL|METH_KEYWORDS, builtin_sum__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2018-09-12 10:54:06 -07:00
										 |  |  | builtin_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							| 
									
										
										
										
											2018-09-12 10:54:06 -07:00
										 |  |  |     static const char * const _keywords[] = {"", "start", NULL}; | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     static _PyArg_Parser _parser = {NULL, _keywords, "sum", 0}; | 
					
						
							|  |  |  |     PyObject *argsbuf[2]; | 
					
						
							|  |  |  |     Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1; | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     PyObject *iterable; | 
					
						
							|  |  |  |     PyObject *start = NULL; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf); | 
					
						
							|  |  |  |     if (!args) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-03-14 10:32:22 +02:00
										 |  |  |     iterable = args[0]; | 
					
						
							|  |  |  |     if (!noptargs) { | 
					
						
							|  |  |  |         goto skip_optional_pos; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     start = args[1]; | 
					
						
							|  |  |  | skip_optional_pos: | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_sum_impl(module, iterable, start); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_isinstance__doc__, | 
					
						
							|  |  |  | "isinstance($module, obj, class_or_tuple, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "Return whether an object is an instance of a class or of a subclass thereof.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "A tuple, as in ``isinstance(x, (A, B, ...))``, may be given as the target to\n" | 
					
						
							|  |  |  | "check against. This is equivalent to ``isinstance(x, A) or isinstance(x, B)\n" | 
					
						
							|  |  |  | "or ...`` etc."); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_ISINSTANCE_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"isinstance", (PyCFunction)(void(*)(void))builtin_isinstance, METH_FASTCALL, builtin_isinstance__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_isinstance_impl(PyObject *module, PyObject *obj, | 
					
						
							| 
									
										
										
										
											2015-04-14 18:07:59 -04:00
										 |  |  |                         PyObject *class_or_tuple); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_isinstance(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     PyObject *obj; | 
					
						
							|  |  |  |     PyObject *class_or_tuple; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("isinstance", nargs, 2, 2)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     obj = args[0]; | 
					
						
							|  |  |  |     class_or_tuple = args[1]; | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_isinstance_impl(module, obj, class_or_tuple); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyDoc_STRVAR(builtin_issubclass__doc__, | 
					
						
							|  |  |  | "issubclass($module, cls, class_or_tuple, /)\n" | 
					
						
							|  |  |  | "--\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							| 
									
										
										
										
											2020-06-03 15:19:45 +02:00
										 |  |  | "Return whether \'cls\' is derived from another class or is the same class.\n" | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | "\n" | 
					
						
							|  |  |  | "A tuple, as in ``issubclass(x, (A, B, ...))``, may be given as the target to\n" | 
					
						
							|  |  |  | "check against. This is equivalent to ``issubclass(x, A) or issubclass(x, B)\n" | 
					
						
							| 
									
										
										
										
											2020-06-03 15:19:45 +02:00
										 |  |  | "or ...``."); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define BUILTIN_ISSUBCLASS_METHODDEF    \
 | 
					
						
							| 
									
										
										
										
											2018-11-27 11:27:36 +02:00
										 |  |  |     {"issubclass", (PyCFunction)(void(*)(void))builtin_issubclass, METH_FASTCALL, builtin_issubclass__doc__}, | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2016-07-07 17:35:15 +03:00
										 |  |  | builtin_issubclass_impl(PyObject *module, PyObject *cls, | 
					
						
							| 
									
										
										
										
											2015-04-14 18:07:59 -04:00
										 |  |  |                         PyObject *class_or_tuple); | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | static PyObject * | 
					
						
							| 
									
										
										
										
											2017-12-15 13:11:11 +02:00
										 |  |  | builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  | { | 
					
						
							|  |  |  |     PyObject *return_value = NULL; | 
					
						
							|  |  |  |     PyObject *cls; | 
					
						
							|  |  |  |     PyObject *class_or_tuple; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     if (!_PyArg_CheckPositional("issubclass", nargs, 2, 2)) { | 
					
						
							| 
									
										
										
										
											2017-01-17 02:21:47 +01:00
										 |  |  |         goto exit; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-01-11 18:01:42 +02:00
										 |  |  |     cls = args[0]; | 
					
						
							|  |  |  |     class_or_tuple = args[1]; | 
					
						
							| 
									
										
										
										
											2015-04-03 23:53:51 +03:00
										 |  |  |     return_value = builtin_issubclass_impl(module, cls, class_or_tuple); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | exit: | 
					
						
							|  |  |  |     return return_value; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2020-06-03 15:19:45 +02:00
										 |  |  | /*[clinic end generated code: output=e2fcf0201790367c input=a9049054013a1b77]*/ |