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