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