Skip to content

Commit 202fda5

Browse files
bpo-24037: Add Argument Clinic converter bool(accept={int}). (#485)
1 parent 0767ad4 commit 202fda5

File tree

17 files changed

+81
-73
lines changed

17 files changed

+81
-73
lines changed

Misc/NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -910,6 +910,10 @@ Build
910910
Tools/Demos
911911
-----------
912912

913+
- bpo-24037: Argument Clinic now uses the converter `bool(accept={int})` rather
914+
than `int` for semantical booleans. This avoids repeating the default
915+
value for Python and C and will help in converting to `bool` in future.
916+
913917
- Issue #29367: python-gdb.py now supports also ``method-wrapper``
914918
(``wrapperobject``) objects.
915919

Modules/_codecsmodule.c

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -286,14 +286,14 @@ _codecs_unicode_internal_decode_impl(PyObject *module, PyObject *obj,
286286
_codecs.utf_7_decode
287287
data: Py_buffer
288288
errors: str(accept={str, NoneType}) = NULL
289-
final: int(c_default="0") = False
289+
final: bool(accept={int}) = False
290290
/
291291
[clinic start generated code]*/
292292

293293
static PyObject *
294294
_codecs_utf_7_decode_impl(PyObject *module, Py_buffer *data,
295295
const char *errors, int final)
296-
/*[clinic end generated code: output=0cd3a944a32a4089 input=bc4d6247ecdb01e6]*/
296+
/*[clinic end generated code: output=0cd3a944a32a4089 input=2d94a5a1f170c8ae]*/
297297
{
298298
Py_ssize_t consumed = data->len;
299299
PyObject *decoded = PyUnicode_DecodeUTF7Stateful(data->buf, data->len,
@@ -306,14 +306,14 @@ _codecs_utf_7_decode_impl(PyObject *module, Py_buffer *data,
306306
_codecs.utf_8_decode
307307
data: Py_buffer
308308
errors: str(accept={str, NoneType}) = NULL
309-
final: int(c_default="0") = False
309+
final: bool(accept={int}) = False
310310
/
311311
[clinic start generated code]*/
312312

313313
static PyObject *
314314
_codecs_utf_8_decode_impl(PyObject *module, Py_buffer *data,
315315
const char *errors, int final)
316-
/*[clinic end generated code: output=10f74dec8d9bb8bf input=39161d71e7422ee2]*/
316+
/*[clinic end generated code: output=10f74dec8d9bb8bf input=1ea6c21492e8bcbe]*/
317317
{
318318
Py_ssize_t consumed = data->len;
319319
PyObject *decoded = PyUnicode_DecodeUTF8Stateful(data->buf, data->len,
@@ -326,14 +326,14 @@ _codecs_utf_8_decode_impl(PyObject *module, Py_buffer *data,
326326
_codecs.utf_16_decode
327327
data: Py_buffer
328328
errors: str(accept={str, NoneType}) = NULL
329-
final: int(c_default="0") = False
329+
final: bool(accept={int}) = False
330330
/
331331
[clinic start generated code]*/
332332

333333
static PyObject *
334334
_codecs_utf_16_decode_impl(PyObject *module, Py_buffer *data,
335335
const char *errors, int final)
336-
/*[clinic end generated code: output=783b442abcbcc2d0 input=f3cf01d1461007ce]*/
336+
/*[clinic end generated code: output=783b442abcbcc2d0 input=2ba128c28ea0bb40]*/
337337
{
338338
int byteorder = 0;
339339
/* This is overwritten unless final is true. */
@@ -348,14 +348,14 @@ _codecs_utf_16_decode_impl(PyObject *module, Py_buffer *data,
348348
_codecs.utf_16_le_decode
349349
data: Py_buffer
350350
errors: str(accept={str, NoneType}) = NULL
351-
final: int(c_default="0") = False
351+
final: bool(accept={int}) = False
352352
/
353353
[clinic start generated code]*/
354354

355355
static PyObject *
356356
_codecs_utf_16_le_decode_impl(PyObject *module, Py_buffer *data,
357357
const char *errors, int final)
358-
/*[clinic end generated code: output=899b9e6364379dcd input=a77e3bf97335d94e]*/
358+
/*[clinic end generated code: output=899b9e6364379dcd input=43aeb8b0461cace5]*/
359359
{
360360
int byteorder = -1;
361361
/* This is overwritten unless final is true. */
@@ -370,14 +370,14 @@ _codecs_utf_16_le_decode_impl(PyObject *module, Py_buffer *data,
370370
_codecs.utf_16_be_decode
371371
data: Py_buffer
372372
errors: str(accept={str, NoneType}) = NULL
373-
final: int(c_default="0") = False
373+
final: bool(accept={int}) = False
374374
/
375375
[clinic start generated code]*/
376376

377377
static PyObject *
378378
_codecs_utf_16_be_decode_impl(PyObject *module, Py_buffer *data,
379379
const char *errors, int final)
380-
/*[clinic end generated code: output=49f6465ea07669c8 input=606f69fae91b5563]*/
380+
/*[clinic end generated code: output=49f6465ea07669c8 input=339e554c804f34b2]*/
381381
{
382382
int byteorder = 1;
383383
/* This is overwritten unless final is true. */
@@ -400,14 +400,14 @@ _codecs.utf_16_ex_decode
400400
data: Py_buffer
401401
errors: str(accept={str, NoneType}) = NULL
402402
byteorder: int = 0
403-
final: int(c_default="0") = False
403+
final: bool(accept={int}) = False
404404
/
405405
[clinic start generated code]*/
406406

407407
static PyObject *
408408
_codecs_utf_16_ex_decode_impl(PyObject *module, Py_buffer *data,
409409
const char *errors, int byteorder, int final)
410-
/*[clinic end generated code: output=0f385f251ecc1988 input=f6e7f697658c013e]*/
410+
/*[clinic end generated code: output=0f385f251ecc1988 input=3201aeddb9636889]*/
411411
{
412412
/* This is overwritten unless final is true. */
413413
Py_ssize_t consumed = data->len;
@@ -424,14 +424,14 @@ _codecs_utf_16_ex_decode_impl(PyObject *module, Py_buffer *data,
424424
_codecs.utf_32_decode
425425
data: Py_buffer
426426
errors: str(accept={str, NoneType}) = NULL
427-
final: int(c_default="0") = False
427+
final: bool(accept={int}) = False
428428
/
429429
[clinic start generated code]*/
430430

431431
static PyObject *
432432
_codecs_utf_32_decode_impl(PyObject *module, Py_buffer *data,
433433
const char *errors, int final)
434-
/*[clinic end generated code: output=2fc961807f7b145f input=86d4f41c6c2e763d]*/
434+
/*[clinic end generated code: output=2fc961807f7b145f input=155a5c673a4e2514]*/
435435
{
436436
int byteorder = 0;
437437
/* This is overwritten unless final is true. */
@@ -446,14 +446,14 @@ _codecs_utf_32_decode_impl(PyObject *module, Py_buffer *data,
446446
_codecs.utf_32_le_decode
447447
data: Py_buffer
448448
errors: str(accept={str, NoneType}) = NULL
449-
final: int(c_default="0") = False
449+
final: bool(accept={int}) = False
450450
/
451451
[clinic start generated code]*/
452452

453453
static PyObject *
454454
_codecs_utf_32_le_decode_impl(PyObject *module, Py_buffer *data,
455455
const char *errors, int final)
456-
/*[clinic end generated code: output=ec8f46b67a94f3e6 input=d18b650772d188ba]*/
456+
/*[clinic end generated code: output=ec8f46b67a94f3e6 input=7baf061069e92d3b]*/
457457
{
458458
int byteorder = -1;
459459
/* This is overwritten unless final is true. */
@@ -468,14 +468,14 @@ _codecs_utf_32_le_decode_impl(PyObject *module, Py_buffer *data,
468468
_codecs.utf_32_be_decode
469469
data: Py_buffer
470470
errors: str(accept={str, NoneType}) = NULL
471-
final: int(c_default="0") = False
471+
final: bool(accept={int}) = False
472472
/
473473
[clinic start generated code]*/
474474

475475
static PyObject *
476476
_codecs_utf_32_be_decode_impl(PyObject *module, Py_buffer *data,
477477
const char *errors, int final)
478-
/*[clinic end generated code: output=ff82bae862c92c4e input=19c271b5d34926d8]*/
478+
/*[clinic end generated code: output=ff82bae862c92c4e input=b182026300dae595]*/
479479
{
480480
int byteorder = 1;
481481
/* This is overwritten unless final is true. */
@@ -498,14 +498,14 @@ _codecs.utf_32_ex_decode
498498
data: Py_buffer
499499
errors: str(accept={str, NoneType}) = NULL
500500
byteorder: int = 0
501-
final: int(c_default="0") = False
501+
final: bool(accept={int}) = False
502502
/
503503
[clinic start generated code]*/
504504

505505
static PyObject *
506506
_codecs_utf_32_ex_decode_impl(PyObject *module, Py_buffer *data,
507507
const char *errors, int byteorder, int final)
508-
/*[clinic end generated code: output=6bfb177dceaf4848 input=4af3e6ccfe34a076]*/
508+
/*[clinic end generated code: output=6bfb177dceaf4848 input=7b9c2cb819fb237a]*/
509509
{
510510
Py_ssize_t consumed = data->len;
511511
PyObject *decoded = PyUnicode_DecodeUTF32Stateful(data->buf, data->len,
@@ -610,14 +610,14 @@ _codecs_charmap_decode_impl(PyObject *module, Py_buffer *data,
610610
_codecs.mbcs_decode
611611
data: Py_buffer
612612
errors: str(accept={str, NoneType}) = NULL
613-
final: int(c_default="0") = False
613+
final: bool(accept={int}) = False
614614
/
615615
[clinic start generated code]*/
616616

617617
static PyObject *
618618
_codecs_mbcs_decode_impl(PyObject *module, Py_buffer *data,
619619
const char *errors, int final)
620-
/*[clinic end generated code: output=39b65b8598938c4b input=d492c1ca64f4fa8a]*/
620+
/*[clinic end generated code: output=39b65b8598938c4b input=b5f2fe568f311297]*/
621621
{
622622
Py_ssize_t consumed = data->len;
623623
PyObject *decoded = PyUnicode_DecodeMBCSStateful(data->buf, data->len,
@@ -629,14 +629,14 @@ _codecs_mbcs_decode_impl(PyObject *module, Py_buffer *data,
629629
_codecs.oem_decode
630630
data: Py_buffer
631631
errors: str(accept={str, NoneType}) = NULL
632-
final: int(c_default="0") = False
632+
final: bool(accept={int}) = False
633633
/
634634
[clinic start generated code]*/
635635

636636
static PyObject *
637637
_codecs_oem_decode_impl(PyObject *module, Py_buffer *data,
638638
const char *errors, int final)
639-
/*[clinic end generated code: output=da1617612f3fcad8 input=95b8a92c446b03cd]*/
639+
/*[clinic end generated code: output=da1617612f3fcad8 input=278709bcfd374a9c]*/
640640
{
641641
Py_ssize_t consumed = data->len;
642642
PyObject *decoded = PyUnicode_DecodeCodePageStateful(CP_OEMCP,
@@ -649,14 +649,14 @@ _codecs.code_page_decode
649649
codepage: int
650650
data: Py_buffer
651651
errors: str(accept={str, NoneType}) = NULL
652-
final: int(c_default="0") = False
652+
final: bool(accept={int}) = False
653653
/
654654
[clinic start generated code]*/
655655

656656
static PyObject *
657657
_codecs_code_page_decode_impl(PyObject *module, int codepage,
658658
Py_buffer *data, const char *errors, int final)
659-
/*[clinic end generated code: output=53008ea967da3fff input=4f3152a304e21d51]*/
659+
/*[clinic end generated code: output=53008ea967da3fff input=51f6169021c68dd5]*/
660660
{
661661
Py_ssize_t consumed = data->len;
662662
PyObject *decoded = PyUnicode_DecodeCodePageStateful(codepage,

Modules/_io/_iomodule.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ _io.open
105105
encoding: str(accept={str, NoneType}) = NULL
106106
errors: str(accept={str, NoneType}) = NULL
107107
newline: str(accept={str, NoneType}) = NULL
108-
closefd: int(c_default="1") = True
108+
closefd: bool(accept={int}) = True
109109
opener: object = None
110110
111111
Open file and return a stream. Raise IOError upon failure.
@@ -232,7 +232,7 @@ static PyObject *
232232
_io_open_impl(PyObject *module, PyObject *file, const char *mode,
233233
int buffering, const char *encoding, const char *errors,
234234
const char *newline, int closefd, PyObject *opener)
235-
/*[clinic end generated code: output=aefafc4ce2b46dc0 input=f4e1ca75223987bc]*/
235+
/*[clinic end generated code: output=aefafc4ce2b46dc0 input=7f81b2a1d3b02344]*/
236236
{
237237
unsigned i;
238238

Modules/_io/fileio.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ extern int _Py_open_cloexec_works;
207207
_io.FileIO.__init__
208208
file as nameobj: object
209209
mode: str = "r"
210-
closefd: int(c_default="1") = True
210+
closefd: bool(accept={int}) = True
211211
opener: object = None
212212
213213
Open a file.
@@ -228,7 +228,7 @@ results in functionality similar to passing None).
228228
static int
229229
_io_FileIO___init___impl(fileio *self, PyObject *nameobj, const char *mode,
230230
int closefd, PyObject *opener)
231-
/*[clinic end generated code: output=23413f68e6484bbd input=193164e293d6c097]*/
231+
/*[clinic end generated code: output=23413f68e6484bbd input=1596c9157a042a39]*/
232232
{
233233
#ifdef MS_WINDOWS
234234
Py_UNICODE *widename = NULL;

Modules/_io/textio.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -511,13 +511,13 @@ _PyIncrementalNewlineDecoder_decode(PyObject *myself,
511511
/*[clinic input]
512512
_io.IncrementalNewlineDecoder.decode
513513
input: object
514-
final: int(c_default="0") = False
514+
final: bool(accept={int}) = False
515515
[clinic start generated code]*/
516516

517517
static PyObject *
518518
_io_IncrementalNewlineDecoder_decode_impl(nldecoder_object *self,
519519
PyObject *input, int final)
520-
/*[clinic end generated code: output=0d486755bb37a66e input=d65677385bfd6827]*/
520+
/*[clinic end generated code: output=0d486755bb37a66e input=a4ea97f26372d866]*/
521521
{
522522
return _PyIncrementalNewlineDecoder_decode((PyObject *) self, input, final);
523523
}
@@ -792,8 +792,8 @@ _io.TextIOWrapper.__init__
792792
encoding: str(accept={str, NoneType}) = NULL
793793
errors: str(accept={str, NoneType}) = NULL
794794
newline: str(accept={str, NoneType}) = NULL
795-
line_buffering: int(c_default="0") = False
796-
write_through: int(c_default="0") = False
795+
line_buffering: bool(accept={int}) = False
796+
write_through: bool(accept={int}) = False
797797
798798
Character and line based layer over a BufferedIOBase object, buffer.
799799
@@ -830,7 +830,7 @@ _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
830830
const char *encoding, const char *errors,
831831
const char *newline, int line_buffering,
832832
int write_through)
833-
/*[clinic end generated code: output=56a83402ce2a8381 input=3126cb3101a2c99b]*/
833+
/*[clinic end generated code: output=56a83402ce2a8381 input=598d10cc5f2ed7dd]*/
834834
{
835835
PyObject *raw, *codec_info = NULL;
836836
_PyIO_State *state = NULL;

Modules/_io/winconsoleio.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ winconsoleio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
252252
_io._WindowsConsoleIO.__init__
253253
file as nameobj: object
254254
mode: str = "r"
255-
closefd: int(c_default="1") = True
255+
closefd: bool(accept={int}) = True
256256
opener: object = None
257257
258258
Open a console buffer by file descriptor.
@@ -266,7 +266,7 @@ static int
266266
_io__WindowsConsoleIO___init___impl(winconsoleio *self, PyObject *nameobj,
267267
const char *mode, int closefd,
268268
PyObject *opener)
269-
/*[clinic end generated code: output=3fd9cbcdd8d95429 input=61be39633a86f5d7]*/
269+
/*[clinic end generated code: output=3fd9cbcdd8d95429 input=06ae4b863c63244b]*/
270270
{
271271
const char *s;
272272
wchar_t *name = NULL;

Modules/_tkinter.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3199,11 +3199,11 @@ _tkinter.create
31993199
screenName: str(accept={str, NoneType}) = NULL
32003200
baseName: str = NULL
32013201
className: str = "Tk"
3202-
interactive: int(c_default="0") = False
3203-
wantobjects: int(c_default="0") = False
3204-
wantTk: int(c_default="1") = True
3202+
interactive: bool(accept={int}) = False
3203+
wantobjects: bool(accept={int}) = False
3204+
wantTk: bool(accept={int}) = True
32053205
if false, then Tk_Init() doesn't get called
3206-
sync: int(c_default="0") = False
3206+
sync: bool(accept={int}) = False
32073207
if true, then pass -sync to wish
32083208
use: str(accept={str, NoneType}) = NULL
32093209
if not None, then pass -use to wish
@@ -3216,7 +3216,7 @@ _tkinter_create_impl(PyObject *module, const char *screenName,
32163216
const char *baseName, const char *className,
32173217
int interactive, int wantobjects, int wantTk, int sync,
32183218
const char *use)
3219-
/*[clinic end generated code: output=e3315607648e6bb4 input=0d522aad1cb0ca0e]*/
3219+
/*[clinic end generated code: output=e3315607648e6bb4 input=431907c134c80085]*/
32203220
{
32213221
/* XXX baseName is not used anymore;
32223222
* try getting rid of it. */

Modules/_winapi.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -387,13 +387,13 @@ _winapi_CloseHandle_impl(PyObject *module, HANDLE handle)
387387
_winapi.ConnectNamedPipe
388388
389389
handle: HANDLE
390-
overlapped as use_overlapped: int(c_default='0') = False
390+
overlapped as use_overlapped: bool(accept={int}) = False
391391
[clinic start generated code]*/
392392

393393
static PyObject *
394394
_winapi_ConnectNamedPipe_impl(PyObject *module, HANDLE handle,
395395
int use_overlapped)
396-
/*[clinic end generated code: output=335a0e7086800671 input=edc83da007ebf3be]*/
396+
/*[clinic end generated code: output=335a0e7086800671 input=34f937c1c86e5e68]*/
397397
{
398398
BOOL success;
399399
OverlappedObject *overlapped = NULL;
@@ -1161,13 +1161,13 @@ _winapi.ReadFile
11611161
11621162
handle: HANDLE
11631163
size: int
1164-
overlapped as use_overlapped: int(c_default='0') = False
1164+
overlapped as use_overlapped: bool(accept={int}) = False
11651165
[clinic start generated code]*/
11661166

11671167
static PyObject *
11681168
_winapi_ReadFile_impl(PyObject *module, HANDLE handle, int size,
11691169
int use_overlapped)
1170-
/*[clinic end generated code: output=492029ca98161d84 input=8dd810194e86ac7d]*/
1170+
/*[clinic end generated code: output=492029ca98161d84 input=3f0fde92f74de59a]*/
11711171
{
11721172
DWORD nread;
11731173
PyObject *buf;
@@ -1413,13 +1413,13 @@ _winapi.WriteFile
14131413
14141414
handle: HANDLE
14151415
buffer: object
1416-
overlapped as use_overlapped: int(c_default='0') = False
1416+
overlapped as use_overlapped: bool(accept={int}) = False
14171417
[clinic start generated code]*/
14181418

14191419
static PyObject *
14201420
_winapi_WriteFile_impl(PyObject *module, HANDLE handle, PyObject *buffer,
14211421
int use_overlapped)
1422-
/*[clinic end generated code: output=2ca80f6bf3fa92e3 input=51846a5af52053fd]*/
1422+
/*[clinic end generated code: output=2ca80f6bf3fa92e3 input=11eae2a03aa32731]*/
14231423
{
14241424
Py_buffer _buf, *buf;
14251425
DWORD len, written;

0 commit comments

Comments
 (0)