1 /*[clinic input]
2 preserve
3 [clinic start generated code]*/
4 
5 PyDoc_STRVAR(builtin_abs__doc__,
6 "abs($module, x, /)\n"
7 "--\n"
8 "\n"
9 "Return the absolute value of the argument.");
10 
11 #define BUILTIN_ABS_METHODDEF    \
12     {"abs", (PyCFunction)builtin_abs, METH_O, builtin_abs__doc__},
13 
14 PyDoc_STRVAR(builtin_all__doc__,
15 "all($module, iterable, /)\n"
16 "--\n"
17 "\n"
18 "Return True if bool(x) is True for all values x in the iterable.\n"
19 "\n"
20 "If the iterable is empty, return True.");
21 
22 #define BUILTIN_ALL_METHODDEF    \
23     {"all", (PyCFunction)builtin_all, METH_O, builtin_all__doc__},
24 
25 PyDoc_STRVAR(builtin_any__doc__,
26 "any($module, iterable, /)\n"
27 "--\n"
28 "\n"
29 "Return True if bool(x) is True for any x in the iterable.\n"
30 "\n"
31 "If the iterable is empty, return False.");
32 
33 #define BUILTIN_ANY_METHODDEF    \
34     {"any", (PyCFunction)builtin_any, METH_O, builtin_any__doc__},
35 
36 PyDoc_STRVAR(builtin_ascii__doc__,
37 "ascii($module, obj, /)\n"
38 "--\n"
39 "\n"
40 "Return an ASCII-only representation of an object.\n"
41 "\n"
42 "As repr(), return a string containing a printable representation of an\n"
43 "object, but escape the non-ASCII characters in the string returned by\n"
44 "repr() using \\\\x, \\\\u or \\\\U escapes. This generates a string similar\n"
45 "to that returned by repr() in Python 2.");
46 
47 #define BUILTIN_ASCII_METHODDEF    \
48     {"ascii", (PyCFunction)builtin_ascii, METH_O, builtin_ascii__doc__},
49 
50 PyDoc_STRVAR(builtin_bin__doc__,
51 "bin($module, number, /)\n"
52 "--\n"
53 "\n"
54 "Return the binary representation of an integer.\n"
55 "\n"
56 "   >>> bin(2796202)\n"
57 "   \'0b1010101010101010101010\'");
58 
59 #define BUILTIN_BIN_METHODDEF    \
60     {"bin", (PyCFunction)builtin_bin, METH_O, builtin_bin__doc__},
61 
62 PyDoc_STRVAR(builtin_callable__doc__,
63 "callable($module, obj, /)\n"
64 "--\n"
65 "\n"
66 "Return whether the object is callable (i.e., some kind of function).\n"
67 "\n"
68 "Note that classes are callable, as are instances of classes with a\n"
69 "__call__() method.");
70 
71 #define BUILTIN_CALLABLE_METHODDEF    \
72     {"callable", (PyCFunction)builtin_callable, METH_O, builtin_callable__doc__},
73 
74 PyDoc_STRVAR(builtin_format__doc__,
75 "format($module, value, format_spec=\'\', /)\n"
76 "--\n"
77 "\n"
78 "Return value.__format__(format_spec)\n"
79 "\n"
80 "format_spec defaults to the empty string.\n"
81 "See the Format Specification Mini-Language section of help(\'FORMATTING\') for\n"
82 "details.");
83 
84 #define BUILTIN_FORMAT_METHODDEF    \
85     {"format", (PyCFunction)(void(*)(void))builtin_format, METH_FASTCALL, builtin_format__doc__},
86 
87 static PyObject *
88 builtin_format_impl(PyObject *module, PyObject *value, PyObject *format_spec);
89 
90 static PyObject *
builtin_format(PyObject * module,PyObject * const * args,Py_ssize_t nargs)91 builtin_format(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
92 {
93     PyObject *return_value = NULL;
94     PyObject *value;
95     PyObject *format_spec = NULL;
96 
97     if (!_PyArg_CheckPositional("format", nargs, 1, 2)) {
98         goto exit;
99     }
100     value = args[0];
101     if (nargs < 2) {
102         goto skip_optional;
103     }
104     if (!PyUnicode_Check(args[1])) {
105         _PyArg_BadArgument("format", "argument 2", "str", args[1]);
106         goto exit;
107     }
108     if (PyUnicode_READY(args[1]) == -1) {
109         goto exit;
110     }
111     format_spec = args[1];
112 skip_optional:
113     return_value = builtin_format_impl(module, value, format_spec);
114 
115 exit:
116     return return_value;
117 }
118 
119 PyDoc_STRVAR(builtin_chr__doc__,
120 "chr($module, i, /)\n"
121 "--\n"
122 "\n"
123 "Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff.");
124 
125 #define BUILTIN_CHR_METHODDEF    \
126     {"chr", (PyCFunction)builtin_chr, METH_O, builtin_chr__doc__},
127 
128 static PyObject *
129 builtin_chr_impl(PyObject *module, int i);
130 
131 static PyObject *
builtin_chr(PyObject * module,PyObject * arg)132 builtin_chr(PyObject *module, PyObject *arg)
133 {
134     PyObject *return_value = NULL;
135     int i;
136 
137     i = _PyLong_AsInt(arg);
138     if (i == -1 && PyErr_Occurred()) {
139         goto exit;
140     }
141     return_value = builtin_chr_impl(module, i);
142 
143 exit:
144     return return_value;
145 }
146 
147 PyDoc_STRVAR(builtin_compile__doc__,
148 "compile($module, /, source, filename, mode, flags=0,\n"
149 "        dont_inherit=False, optimize=-1, *, _feature_version=-1)\n"
150 "--\n"
151 "\n"
152 "Compile source into a code object that can be executed by exec() or eval().\n"
153 "\n"
154 "The source code may represent a Python module, statement or expression.\n"
155 "The filename will be used for run-time error messages.\n"
156 "The mode must be \'exec\' to compile a module, \'single\' to compile a\n"
157 "single (interactive) statement, or \'eval\' to compile an expression.\n"
158 "The flags argument, if present, controls which future statements influence\n"
159 "the compilation of the code.\n"
160 "The dont_inherit argument, if true, stops the compilation inheriting\n"
161 "the effects of any future statements in effect in the code calling\n"
162 "compile; if absent or false these statements do influence the compilation,\n"
163 "in addition to any features explicitly specified.");
164 
165 #define BUILTIN_COMPILE_METHODDEF    \
166     {"compile", (PyCFunction)(void(*)(void))builtin_compile, METH_FASTCALL|METH_KEYWORDS, builtin_compile__doc__},
167 
168 static PyObject *
169 builtin_compile_impl(PyObject *module, PyObject *source, PyObject *filename,
170                      const char *mode, int flags, int dont_inherit,
171                      int optimize, int feature_version);
172 
173 static PyObject *
builtin_compile(PyObject * module,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)174 builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
175 {
176     PyObject *return_value = NULL;
177     static const char * const _keywords[] = {"source", "filename", "mode", "flags", "dont_inherit", "optimize", "_feature_version", NULL};
178     static _PyArg_Parser _parser = {NULL, _keywords, "compile", 0};
179     PyObject *argsbuf[7];
180     Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 3;
181     PyObject *source;
182     PyObject *filename;
183     const char *mode;
184     int flags = 0;
185     int dont_inherit = 0;
186     int optimize = -1;
187     int feature_version = -1;
188 
189     args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 3, 6, 0, argsbuf);
190     if (!args) {
191         goto exit;
192     }
193     source = args[0];
194     if (!PyUnicode_FSDecoder(args[1], &filename)) {
195         goto exit;
196     }
197     if (!PyUnicode_Check(args[2])) {
198         _PyArg_BadArgument("compile", "argument 'mode'", "str", args[2]);
199         goto exit;
200     }
201     Py_ssize_t mode_length;
202     mode = PyUnicode_AsUTF8AndSize(args[2], &mode_length);
203     if (mode == NULL) {
204         goto exit;
205     }
206     if (strlen(mode) != (size_t)mode_length) {
207         PyErr_SetString(PyExc_ValueError, "embedded null character");
208         goto exit;
209     }
210     if (!noptargs) {
211         goto skip_optional_pos;
212     }
213     if (args[3]) {
214         flags = _PyLong_AsInt(args[3]);
215         if (flags == -1 && PyErr_Occurred()) {
216             goto exit;
217         }
218         if (!--noptargs) {
219             goto skip_optional_pos;
220         }
221     }
222     if (args[4]) {
223         dont_inherit = _PyLong_AsInt(args[4]);
224         if (dont_inherit == -1 && PyErr_Occurred()) {
225             goto exit;
226         }
227         if (!--noptargs) {
228             goto skip_optional_pos;
229         }
230     }
231     if (args[5]) {
232         optimize = _PyLong_AsInt(args[5]);
233         if (optimize == -1 && PyErr_Occurred()) {
234             goto exit;
235         }
236         if (!--noptargs) {
237             goto skip_optional_pos;
238         }
239     }
240 skip_optional_pos:
241     if (!noptargs) {
242         goto skip_optional_kwonly;
243     }
244     feature_version = _PyLong_AsInt(args[6]);
245     if (feature_version == -1 && PyErr_Occurred()) {
246         goto exit;
247     }
248 skip_optional_kwonly:
249     return_value = builtin_compile_impl(module, source, filename, mode, flags, dont_inherit, optimize, feature_version);
250 
251 exit:
252     return return_value;
253 }
254 
255 PyDoc_STRVAR(builtin_divmod__doc__,
256 "divmod($module, x, y, /)\n"
257 "--\n"
258 "\n"
259 "Return the tuple (x//y, x%y).  Invariant: div*y + mod == x.");
260 
261 #define BUILTIN_DIVMOD_METHODDEF    \
262     {"divmod", (PyCFunction)(void(*)(void))builtin_divmod, METH_FASTCALL, builtin_divmod__doc__},
263 
264 static PyObject *
265 builtin_divmod_impl(PyObject *module, PyObject *x, PyObject *y);
266 
267 static PyObject *
builtin_divmod(PyObject * module,PyObject * const * args,Py_ssize_t nargs)268 builtin_divmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
269 {
270     PyObject *return_value = NULL;
271     PyObject *x;
272     PyObject *y;
273 
274     if (!_PyArg_CheckPositional("divmod", nargs, 2, 2)) {
275         goto exit;
276     }
277     x = args[0];
278     y = args[1];
279     return_value = builtin_divmod_impl(module, x, y);
280 
281 exit:
282     return return_value;
283 }
284 
285 PyDoc_STRVAR(builtin_eval__doc__,
286 "eval($module, source, globals=None, locals=None, /)\n"
287 "--\n"
288 "\n"
289 "Evaluate the given source in the context of globals and locals.\n"
290 "\n"
291 "The source may be a string representing a Python expression\n"
292 "or a code object as returned by compile().\n"
293 "The globals must be a dictionary and locals can be any mapping,\n"
294 "defaulting to the current globals and locals.\n"
295 "If only globals is given, locals defaults to it.");
296 
297 #define BUILTIN_EVAL_METHODDEF    \
298     {"eval", (PyCFunction)(void(*)(void))builtin_eval, METH_FASTCALL, builtin_eval__doc__},
299 
300 static PyObject *
301 builtin_eval_impl(PyObject *module, PyObject *source, PyObject *globals,
302                   PyObject *locals);
303 
304 static PyObject *
builtin_eval(PyObject * module,PyObject * const * args,Py_ssize_t nargs)305 builtin_eval(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
306 {
307     PyObject *return_value = NULL;
308     PyObject *source;
309     PyObject *globals = Py_None;
310     PyObject *locals = Py_None;
311 
312     if (!_PyArg_CheckPositional("eval", nargs, 1, 3)) {
313         goto exit;
314     }
315     source = args[0];
316     if (nargs < 2) {
317         goto skip_optional;
318     }
319     globals = args[1];
320     if (nargs < 3) {
321         goto skip_optional;
322     }
323     locals = args[2];
324 skip_optional:
325     return_value = builtin_eval_impl(module, source, globals, locals);
326 
327 exit:
328     return return_value;
329 }
330 
331 PyDoc_STRVAR(builtin_exec__doc__,
332 "exec($module, source, globals=None, locals=None, /)\n"
333 "--\n"
334 "\n"
335 "Execute the given source in the context of globals and locals.\n"
336 "\n"
337 "The source may be a string representing one or more Python statements\n"
338 "or a code object as returned by compile().\n"
339 "The globals must be a dictionary and locals can be any mapping,\n"
340 "defaulting to the current globals and locals.\n"
341 "If only globals is given, locals defaults to it.");
342 
343 #define BUILTIN_EXEC_METHODDEF    \
344     {"exec", (PyCFunction)(void(*)(void))builtin_exec, METH_FASTCALL, builtin_exec__doc__},
345 
346 static PyObject *
347 builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals,
348                   PyObject *locals);
349 
350 static PyObject *
builtin_exec(PyObject * module,PyObject * const * args,Py_ssize_t nargs)351 builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
352 {
353     PyObject *return_value = NULL;
354     PyObject *source;
355     PyObject *globals = Py_None;
356     PyObject *locals = Py_None;
357 
358     if (!_PyArg_CheckPositional("exec", nargs, 1, 3)) {
359         goto exit;
360     }
361     source = args[0];
362     if (nargs < 2) {
363         goto skip_optional;
364     }
365     globals = args[1];
366     if (nargs < 3) {
367         goto skip_optional;
368     }
369     locals = args[2];
370 skip_optional:
371     return_value = builtin_exec_impl(module, source, globals, locals);
372 
373 exit:
374     return return_value;
375 }
376 
377 PyDoc_STRVAR(builtin_globals__doc__,
378 "globals($module, /)\n"
379 "--\n"
380 "\n"
381 "Return the dictionary containing the current scope\'s global variables.\n"
382 "\n"
383 "NOTE: Updates to this dictionary *will* affect name lookups in the current\n"
384 "global scope and vice-versa.");
385 
386 #define BUILTIN_GLOBALS_METHODDEF    \
387     {"globals", (PyCFunction)builtin_globals, METH_NOARGS, builtin_globals__doc__},
388 
389 static PyObject *
390 builtin_globals_impl(PyObject *module);
391 
392 static PyObject *
builtin_globals(PyObject * module,PyObject * Py_UNUSED (ignored))393 builtin_globals(PyObject *module, PyObject *Py_UNUSED(ignored))
394 {
395     return builtin_globals_impl(module);
396 }
397 
398 PyDoc_STRVAR(builtin_hasattr__doc__,
399 "hasattr($module, obj, name, /)\n"
400 "--\n"
401 "\n"
402 "Return whether the object has an attribute with the given name.\n"
403 "\n"
404 "This is done by calling getattr(obj, name) and catching AttributeError.");
405 
406 #define BUILTIN_HASATTR_METHODDEF    \
407     {"hasattr", (PyCFunction)(void(*)(void))builtin_hasattr, METH_FASTCALL, builtin_hasattr__doc__},
408 
409 static PyObject *
410 builtin_hasattr_impl(PyObject *module, PyObject *obj, PyObject *name);
411 
412 static PyObject *
builtin_hasattr(PyObject * module,PyObject * const * args,Py_ssize_t nargs)413 builtin_hasattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
414 {
415     PyObject *return_value = NULL;
416     PyObject *obj;
417     PyObject *name;
418 
419     if (!_PyArg_CheckPositional("hasattr", nargs, 2, 2)) {
420         goto exit;
421     }
422     obj = args[0];
423     name = args[1];
424     return_value = builtin_hasattr_impl(module, obj, name);
425 
426 exit:
427     return return_value;
428 }
429 
430 PyDoc_STRVAR(builtin_id__doc__,
431 "id($module, obj, /)\n"
432 "--\n"
433 "\n"
434 "Return the identity of an object.\n"
435 "\n"
436 "This is guaranteed to be unique among simultaneously existing objects.\n"
437 "(CPython uses the object\'s memory address.)");
438 
439 #define BUILTIN_ID_METHODDEF    \
440     {"id", (PyCFunction)builtin_id, METH_O, builtin_id__doc__},
441 
442 PyDoc_STRVAR(builtin_setattr__doc__,
443 "setattr($module, obj, name, value, /)\n"
444 "--\n"
445 "\n"
446 "Sets the named attribute on the given object to the specified value.\n"
447 "\n"
448 "setattr(x, \'y\', v) is equivalent to ``x.y = v\'\'");
449 
450 #define BUILTIN_SETATTR_METHODDEF    \
451     {"setattr", (PyCFunction)(void(*)(void))builtin_setattr, METH_FASTCALL, builtin_setattr__doc__},
452 
453 static PyObject *
454 builtin_setattr_impl(PyObject *module, PyObject *obj, PyObject *name,
455                      PyObject *value);
456 
457 static PyObject *
builtin_setattr(PyObject * module,PyObject * const * args,Py_ssize_t nargs)458 builtin_setattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
459 {
460     PyObject *return_value = NULL;
461     PyObject *obj;
462     PyObject *name;
463     PyObject *value;
464 
465     if (!_PyArg_CheckPositional("setattr", nargs, 3, 3)) {
466         goto exit;
467     }
468     obj = args[0];
469     name = args[1];
470     value = args[2];
471     return_value = builtin_setattr_impl(module, obj, name, value);
472 
473 exit:
474     return return_value;
475 }
476 
477 PyDoc_STRVAR(builtin_delattr__doc__,
478 "delattr($module, obj, name, /)\n"
479 "--\n"
480 "\n"
481 "Deletes the named attribute from the given object.\n"
482 "\n"
483 "delattr(x, \'y\') is equivalent to ``del x.y\'\'");
484 
485 #define BUILTIN_DELATTR_METHODDEF    \
486     {"delattr", (PyCFunction)(void(*)(void))builtin_delattr, METH_FASTCALL, builtin_delattr__doc__},
487 
488 static PyObject *
489 builtin_delattr_impl(PyObject *module, PyObject *obj, PyObject *name);
490 
491 static PyObject *
builtin_delattr(PyObject * module,PyObject * const * args,Py_ssize_t nargs)492 builtin_delattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
493 {
494     PyObject *return_value = NULL;
495     PyObject *obj;
496     PyObject *name;
497 
498     if (!_PyArg_CheckPositional("delattr", nargs, 2, 2)) {
499         goto exit;
500     }
501     obj = args[0];
502     name = args[1];
503     return_value = builtin_delattr_impl(module, obj, name);
504 
505 exit:
506     return return_value;
507 }
508 
509 PyDoc_STRVAR(builtin_hash__doc__,
510 "hash($module, obj, /)\n"
511 "--\n"
512 "\n"
513 "Return the hash value for the given object.\n"
514 "\n"
515 "Two objects that compare equal must also have the same hash value, but the\n"
516 "reverse is not necessarily true.");
517 
518 #define BUILTIN_HASH_METHODDEF    \
519     {"hash", (PyCFunction)builtin_hash, METH_O, builtin_hash__doc__},
520 
521 PyDoc_STRVAR(builtin_hex__doc__,
522 "hex($module, number, /)\n"
523 "--\n"
524 "\n"
525 "Return the hexadecimal representation of an integer.\n"
526 "\n"
527 "   >>> hex(12648430)\n"
528 "   \'0xc0ffee\'");
529 
530 #define BUILTIN_HEX_METHODDEF    \
531     {"hex", (PyCFunction)builtin_hex, METH_O, builtin_hex__doc__},
532 
533 PyDoc_STRVAR(builtin_aiter__doc__,
534 "aiter($module, async_iterable, /)\n"
535 "--\n"
536 "\n"
537 "Return an AsyncIterator for an AsyncIterable object.");
538 
539 #define BUILTIN_AITER_METHODDEF    \
540     {"aiter", (PyCFunction)builtin_aiter, METH_O, builtin_aiter__doc__},
541 
542 PyDoc_STRVAR(builtin_anext__doc__,
543 "anext($module, aiterator, default=<unrepresentable>, /)\n"
544 "--\n"
545 "\n"
546 "Return the next item from the async iterator.");
547 
548 #define BUILTIN_ANEXT_METHODDEF    \
549     {"anext", (PyCFunction)(void(*)(void))builtin_anext, METH_FASTCALL, builtin_anext__doc__},
550 
551 static PyObject *
552 builtin_anext_impl(PyObject *module, PyObject *aiterator,
553                    PyObject *default_value);
554 
555 static PyObject *
builtin_anext(PyObject * module,PyObject * const * args,Py_ssize_t nargs)556 builtin_anext(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
557 {
558     PyObject *return_value = NULL;
559     PyObject *aiterator;
560     PyObject *default_value = NULL;
561 
562     if (!_PyArg_CheckPositional("anext", nargs, 1, 2)) {
563         goto exit;
564     }
565     aiterator = args[0];
566     if (nargs < 2) {
567         goto skip_optional;
568     }
569     default_value = args[1];
570 skip_optional:
571     return_value = builtin_anext_impl(module, aiterator, default_value);
572 
573 exit:
574     return return_value;
575 }
576 
577 PyDoc_STRVAR(builtin_len__doc__,
578 "len($module, obj, /)\n"
579 "--\n"
580 "\n"
581 "Return the number of items in a container.");
582 
583 #define BUILTIN_LEN_METHODDEF    \
584     {"len", (PyCFunction)builtin_len, METH_O, builtin_len__doc__},
585 
586 PyDoc_STRVAR(builtin_locals__doc__,
587 "locals($module, /)\n"
588 "--\n"
589 "\n"
590 "Return a dictionary containing the current scope\'s local variables.\n"
591 "\n"
592 "NOTE: Whether or not updates to this dictionary will affect name lookups in\n"
593 "the local scope and vice-versa is *implementation dependent* and not\n"
594 "covered by any backwards compatibility guarantees.");
595 
596 #define BUILTIN_LOCALS_METHODDEF    \
597     {"locals", (PyCFunction)builtin_locals, METH_NOARGS, builtin_locals__doc__},
598 
599 static PyObject *
600 builtin_locals_impl(PyObject *module);
601 
602 static PyObject *
builtin_locals(PyObject * module,PyObject * Py_UNUSED (ignored))603 builtin_locals(PyObject *module, PyObject *Py_UNUSED(ignored))
604 {
605     return builtin_locals_impl(module);
606 }
607 
608 PyDoc_STRVAR(builtin_oct__doc__,
609 "oct($module, number, /)\n"
610 "--\n"
611 "\n"
612 "Return the octal representation of an integer.\n"
613 "\n"
614 "   >>> oct(342391)\n"
615 "   \'0o1234567\'");
616 
617 #define BUILTIN_OCT_METHODDEF    \
618     {"oct", (PyCFunction)builtin_oct, METH_O, builtin_oct__doc__},
619 
620 PyDoc_STRVAR(builtin_ord__doc__,
621 "ord($module, c, /)\n"
622 "--\n"
623 "\n"
624 "Return the Unicode code point for a one-character string.");
625 
626 #define BUILTIN_ORD_METHODDEF    \
627     {"ord", (PyCFunction)builtin_ord, METH_O, builtin_ord__doc__},
628 
629 PyDoc_STRVAR(builtin_pow__doc__,
630 "pow($module, /, base, exp, mod=None)\n"
631 "--\n"
632 "\n"
633 "Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments\n"
634 "\n"
635 "Some types, such as ints, are able to use a more efficient algorithm when\n"
636 "invoked using the three argument form.");
637 
638 #define BUILTIN_POW_METHODDEF    \
639     {"pow", (PyCFunction)(void(*)(void))builtin_pow, METH_FASTCALL|METH_KEYWORDS, builtin_pow__doc__},
640 
641 static PyObject *
642 builtin_pow_impl(PyObject *module, PyObject *base, PyObject *exp,
643                  PyObject *mod);
644 
645 static PyObject *
builtin_pow(PyObject * module,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)646 builtin_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
647 {
648     PyObject *return_value = NULL;
649     static const char * const _keywords[] = {"base", "exp", "mod", NULL};
650     static _PyArg_Parser _parser = {NULL, _keywords, "pow", 0};
651     PyObject *argsbuf[3];
652     Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 2;
653     PyObject *base;
654     PyObject *exp;
655     PyObject *mod = Py_None;
656 
657     args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 2, 3, 0, argsbuf);
658     if (!args) {
659         goto exit;
660     }
661     base = args[0];
662     exp = args[1];
663     if (!noptargs) {
664         goto skip_optional_pos;
665     }
666     mod = args[2];
667 skip_optional_pos:
668     return_value = builtin_pow_impl(module, base, exp, mod);
669 
670 exit:
671     return return_value;
672 }
673 
674 PyDoc_STRVAR(builtin_input__doc__,
675 "input($module, prompt=None, /)\n"
676 "--\n"
677 "\n"
678 "Read a string from standard input.  The trailing newline is stripped.\n"
679 "\n"
680 "The prompt string, if given, is printed to standard output without a\n"
681 "trailing newline before reading input.\n"
682 "\n"
683 "If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.\n"
684 "On *nix systems, readline is used if available.");
685 
686 #define BUILTIN_INPUT_METHODDEF    \
687     {"input", (PyCFunction)(void(*)(void))builtin_input, METH_FASTCALL, builtin_input__doc__},
688 
689 static PyObject *
690 builtin_input_impl(PyObject *module, PyObject *prompt);
691 
692 static PyObject *
builtin_input(PyObject * module,PyObject * const * args,Py_ssize_t nargs)693 builtin_input(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
694 {
695     PyObject *return_value = NULL;
696     PyObject *prompt = NULL;
697 
698     if (!_PyArg_CheckPositional("input", nargs, 0, 1)) {
699         goto exit;
700     }
701     if (nargs < 1) {
702         goto skip_optional;
703     }
704     prompt = args[0];
705 skip_optional:
706     return_value = builtin_input_impl(module, prompt);
707 
708 exit:
709     return return_value;
710 }
711 
712 PyDoc_STRVAR(builtin_repr__doc__,
713 "repr($module, obj, /)\n"
714 "--\n"
715 "\n"
716 "Return the canonical string representation of the object.\n"
717 "\n"
718 "For many object types, including most builtins, eval(repr(obj)) == obj.");
719 
720 #define BUILTIN_REPR_METHODDEF    \
721     {"repr", (PyCFunction)builtin_repr, METH_O, builtin_repr__doc__},
722 
723 PyDoc_STRVAR(builtin_round__doc__,
724 "round($module, /, number, ndigits=None)\n"
725 "--\n"
726 "\n"
727 "Round a number to a given precision in decimal digits.\n"
728 "\n"
729 "The return value is an integer if ndigits is omitted or None.  Otherwise\n"
730 "the return value has the same type as the number.  ndigits may be negative.");
731 
732 #define BUILTIN_ROUND_METHODDEF    \
733     {"round", (PyCFunction)(void(*)(void))builtin_round, METH_FASTCALL|METH_KEYWORDS, builtin_round__doc__},
734 
735 static PyObject *
736 builtin_round_impl(PyObject *module, PyObject *number, PyObject *ndigits);
737 
738 static PyObject *
builtin_round(PyObject * module,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)739 builtin_round(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
740 {
741     PyObject *return_value = NULL;
742     static const char * const _keywords[] = {"number", "ndigits", NULL};
743     static _PyArg_Parser _parser = {NULL, _keywords, "round", 0};
744     PyObject *argsbuf[2];
745     Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
746     PyObject *number;
747     PyObject *ndigits = Py_None;
748 
749     args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
750     if (!args) {
751         goto exit;
752     }
753     number = args[0];
754     if (!noptargs) {
755         goto skip_optional_pos;
756     }
757     ndigits = args[1];
758 skip_optional_pos:
759     return_value = builtin_round_impl(module, number, ndigits);
760 
761 exit:
762     return return_value;
763 }
764 
765 PyDoc_STRVAR(builtin_sum__doc__,
766 "sum($module, iterable, /, start=0)\n"
767 "--\n"
768 "\n"
769 "Return the sum of a \'start\' value (default: 0) plus an iterable of numbers\n"
770 "\n"
771 "When the iterable is empty, return the start value.\n"
772 "This function is intended specifically for use with numeric values and may\n"
773 "reject non-numeric types.");
774 
775 #define BUILTIN_SUM_METHODDEF    \
776     {"sum", (PyCFunction)(void(*)(void))builtin_sum, METH_FASTCALL|METH_KEYWORDS, builtin_sum__doc__},
777 
778 static PyObject *
779 builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start);
780 
781 static PyObject *
builtin_sum(PyObject * module,PyObject * const * args,Py_ssize_t nargs,PyObject * kwnames)782 builtin_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
783 {
784     PyObject *return_value = NULL;
785     static const char * const _keywords[] = {"", "start", NULL};
786     static _PyArg_Parser _parser = {NULL, _keywords, "sum", 0};
787     PyObject *argsbuf[2];
788     Py_ssize_t noptargs = nargs + (kwnames ? PyTuple_GET_SIZE(kwnames) : 0) - 1;
789     PyObject *iterable;
790     PyObject *start = NULL;
791 
792     args = _PyArg_UnpackKeywords(args, nargs, NULL, kwnames, &_parser, 1, 2, 0, argsbuf);
793     if (!args) {
794         goto exit;
795     }
796     iterable = args[0];
797     if (!noptargs) {
798         goto skip_optional_pos;
799     }
800     start = args[1];
801 skip_optional_pos:
802     return_value = builtin_sum_impl(module, iterable, start);
803 
804 exit:
805     return return_value;
806 }
807 
808 PyDoc_STRVAR(builtin_isinstance__doc__,
809 "isinstance($module, obj, class_or_tuple, /)\n"
810 "--\n"
811 "\n"
812 "Return whether an object is an instance of a class or of a subclass thereof.\n"
813 "\n"
814 "A tuple, as in ``isinstance(x, (A, B, ...))``, may be given as the target to\n"
815 "check against. This is equivalent to ``isinstance(x, A) or isinstance(x, B)\n"
816 "or ...`` etc.");
817 
818 #define BUILTIN_ISINSTANCE_METHODDEF    \
819     {"isinstance", (PyCFunction)(void(*)(void))builtin_isinstance, METH_FASTCALL, builtin_isinstance__doc__},
820 
821 static PyObject *
822 builtin_isinstance_impl(PyObject *module, PyObject *obj,
823                         PyObject *class_or_tuple);
824 
825 static PyObject *
builtin_isinstance(PyObject * module,PyObject * const * args,Py_ssize_t nargs)826 builtin_isinstance(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
827 {
828     PyObject *return_value = NULL;
829     PyObject *obj;
830     PyObject *class_or_tuple;
831 
832     if (!_PyArg_CheckPositional("isinstance", nargs, 2, 2)) {
833         goto exit;
834     }
835     obj = args[0];
836     class_or_tuple = args[1];
837     return_value = builtin_isinstance_impl(module, obj, class_or_tuple);
838 
839 exit:
840     return return_value;
841 }
842 
843 PyDoc_STRVAR(builtin_issubclass__doc__,
844 "issubclass($module, cls, class_or_tuple, /)\n"
845 "--\n"
846 "\n"
847 "Return whether \'cls\' is derived from another class or is the same class.\n"
848 "\n"
849 "A tuple, as in ``issubclass(x, (A, B, ...))``, may be given as the target to\n"
850 "check against. This is equivalent to ``issubclass(x, A) or issubclass(x, B)\n"
851 "or ...``.");
852 
853 #define BUILTIN_ISSUBCLASS_METHODDEF    \
854     {"issubclass", (PyCFunction)(void(*)(void))builtin_issubclass, METH_FASTCALL, builtin_issubclass__doc__},
855 
856 static PyObject *
857 builtin_issubclass_impl(PyObject *module, PyObject *cls,
858                         PyObject *class_or_tuple);
859 
860 static PyObject *
builtin_issubclass(PyObject * module,PyObject * const * args,Py_ssize_t nargs)861 builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
862 {
863     PyObject *return_value = NULL;
864     PyObject *cls;
865     PyObject *class_or_tuple;
866 
867     if (!_PyArg_CheckPositional("issubclass", nargs, 2, 2)) {
868         goto exit;
869     }
870     cls = args[0];
871     class_or_tuple = args[1];
872     return_value = builtin_issubclass_impl(module, cls, class_or_tuple);
873 
874 exit:
875     return return_value;
876 }
877 /*[clinic end generated code: output=da9ae459e9233259 input=a9049054013a1b77]*/
878