@@ -419,8 +419,13 @@ buffered_dealloc(buffered *self)
419
419
Py_DECREF (tp );
420
420
}
421
421
422
+ /*[clinic input]
423
+ _io._Buffered.__sizeof__
424
+ [clinic start generated code]*/
425
+
422
426
static PyObject *
423
- buffered_sizeof (buffered * self , PyObject * Py_UNUSED (ignored ))
427
+ _io__Buffered___sizeof___impl (buffered * self )
428
+ /*[clinic end generated code: output=0231ef7f5053134e input=753c782d808d34df]*/
424
429
{
425
430
size_t res = _PyObject_SIZE (Py_TYPE (self ));
426
431
if (self -> buffer ) {
@@ -450,8 +455,17 @@ buffered_clear(buffered *self)
450
455
/* Because this can call arbitrary code, it shouldn't be called when
451
456
the refcount is 0 (that is, not directly from tp_dealloc unless
452
457
the refcount has been temporarily re-incremented). */
458
+ /*[clinic input]
459
+ _io._Buffered._dealloc_warn
460
+
461
+ source: object
462
+ /
463
+
464
+ [clinic start generated code]*/
465
+
453
466
static PyObject *
454
- buffered_dealloc_warn (buffered * self , PyObject * source )
467
+ _io__Buffered__dealloc_warn (buffered * self , PyObject * source )
468
+ /*[clinic end generated code: output=690dcc3df8967162 input=8f845f2a4786391c]*/
455
469
{
456
470
if (self -> ok && self -> raw ) {
457
471
PyObject * r ;
@@ -471,9 +485,13 @@ buffered_dealloc_warn(buffered *self, PyObject *source)
471
485
*/
472
486
473
487
/* Flush and close */
488
+ /*[clinic input]
489
+ _io._Buffered.flush as _io__Buffered_simple_flush
490
+ [clinic start generated code]*/
474
491
475
492
static PyObject *
476
- buffered_simple_flush (buffered * self , PyObject * args )
493
+ _io__Buffered_simple_flush_impl (buffered * self )
494
+ /*[clinic end generated code: output=29ebb3820db1bdfd input=f33ef045e7250767]*/
477
495
{
478
496
CHECK_INITIALIZED (self )
479
497
return PyObject_CallMethodNoArgs (self -> raw , & _Py_ID (flush ));
@@ -500,8 +518,13 @@ buffered_closed_get(buffered *self, void *context)
500
518
return PyObject_GetAttr (self -> raw , & _Py_ID (closed ));
501
519
}
502
520
521
+ /*[clinic input]
522
+ _io._Buffered.close
523
+ [clinic start generated code]*/
524
+
503
525
static PyObject *
504
- buffered_close (buffered * self , PyObject * args )
526
+ _io__Buffered_close_impl (buffered * self )
527
+ /*[clinic end generated code: output=7280b7b42033be0c input=d20b83d1ddd7d805]*/
505
528
{
506
529
PyObject * res = NULL ;
507
530
int r ;
@@ -520,7 +543,7 @@ buffered_close(buffered *self, PyObject *args)
520
543
}
521
544
522
545
if (self -> finalizing ) {
523
- PyObject * r = buffered_dealloc_warn (self , (PyObject * ) self );
546
+ PyObject * r = _io__Buffered__dealloc_warn (self , (PyObject * ) self );
524
547
if (r )
525
548
Py_DECREF (r );
526
549
else
@@ -560,10 +583,13 @@ buffered_close(buffered *self, PyObject *args)
560
583
return res ;
561
584
}
562
585
563
- /* detach */
586
+ /*[clinic input]
587
+ _io._Buffered.detach
588
+ [clinic start generated code]*/
564
589
565
590
static PyObject *
566
- buffered_detach (buffered * self , PyObject * Py_UNUSED (ignored ))
591
+ _io__Buffered_detach_impl (buffered * self )
592
+ /*[clinic end generated code: output=dd0fc057b8b779f7 input=482762a345cc9f44]*/
567
593
{
568
594
PyObject * raw , * res ;
569
595
CHECK_INITIALIZED (self )
@@ -580,22 +606,37 @@ buffered_detach(buffered *self, PyObject *Py_UNUSED(ignored))
580
606
581
607
/* Inquiries */
582
608
609
+ /*[clinic input]
610
+ _io._Buffered.seekable
611
+ [clinic start generated code]*/
612
+
583
613
static PyObject *
584
- buffered_seekable (buffered * self , PyObject * Py_UNUSED (ignored ))
614
+ _io__Buffered_seekable_impl (buffered * self )
615
+ /*[clinic end generated code: output=90172abb5ceb6e8f input=7d35764f5fb5262b]*/
585
616
{
586
617
CHECK_INITIALIZED (self )
587
618
return PyObject_CallMethodNoArgs (self -> raw , & _Py_ID (seekable ));
588
619
}
589
620
621
+ /*[clinic input]
622
+ _io._Buffered.readable
623
+ [clinic start generated code]*/
624
+
590
625
static PyObject *
591
- buffered_readable (buffered * self , PyObject * Py_UNUSED (ignored ))
626
+ _io__Buffered_readable_impl (buffered * self )
627
+ /*[clinic end generated code: output=92afa07661ecb698 input=640619addb513b8b]*/
592
628
{
593
629
CHECK_INITIALIZED (self )
594
630
return PyObject_CallMethodNoArgs (self -> raw , & _Py_ID (readable ));
595
631
}
596
632
633
+ /*[clinic input]
634
+ _io._Buffered.writable
635
+ [clinic start generated code]*/
636
+
597
637
static PyObject *
598
- buffered_writable (buffered * self , PyObject * Py_UNUSED (ignored ))
638
+ _io__Buffered_writable_impl (buffered * self )
639
+ /*[clinic end generated code: output=4e3eee8d6f9d8552 input=b35ea396b2201554]*/
599
640
{
600
641
CHECK_INITIALIZED (self )
601
642
return PyObject_CallMethodNoArgs (self -> raw , & _Py_ID (writable ));
@@ -617,15 +658,25 @@ buffered_mode_get(buffered *self, void *context)
617
658
618
659
/* Lower-level APIs */
619
660
661
+ /*[clinic input]
662
+ _io._Buffered.fileno
663
+ [clinic start generated code]*/
664
+
620
665
static PyObject *
621
- buffered_fileno (buffered * self , PyObject * Py_UNUSED (ignored ))
666
+ _io__Buffered_fileno_impl (buffered * self )
667
+ /*[clinic end generated code: output=b717648d58a95ee3 input=768ea30b3f6314a7]*/
622
668
{
623
669
CHECK_INITIALIZED (self )
624
670
return PyObject_CallMethodNoArgs (self -> raw , & _Py_ID (fileno ));
625
671
}
626
672
673
+ /*[clinic input]
674
+ _io._Buffered.isatty
675
+ [clinic start generated code]*/
676
+
627
677
static PyObject *
628
- buffered_isatty (buffered * self , PyObject * Py_UNUSED (ignored ))
678
+ _io__Buffered_isatty_impl (buffered * self )
679
+ /*[clinic end generated code: output=c20e55caae67baea input=9ea007b11559bee4]*/
629
680
{
630
681
CHECK_INITIALIZED (self )
631
682
return PyObject_CallMethodNoArgs (self -> raw , & _Py_ID (isatty ));
@@ -830,8 +881,13 @@ buffered_flush_and_rewind_unlocked(buffered *self)
830
881
Py_RETURN_NONE ;
831
882
}
832
883
884
+ /*[clinic input]
885
+ _io._Buffered.flush
886
+ [clinic start generated code]*/
887
+
833
888
static PyObject *
834
- buffered_flush (buffered * self , PyObject * args )
889
+ _io__Buffered_flush_impl (buffered * self )
890
+ /*[clinic end generated code: output=da2674ef1ce71f3a input=fda63444697c6bf4]*/
835
891
{
836
892
PyObject * res ;
837
893
@@ -1205,8 +1261,13 @@ _io__Buffered_readline_impl(buffered *self, Py_ssize_t size)
1205
1261
}
1206
1262
1207
1263
1264
+ /*[clinic input]
1265
+ _io._Buffered.tell
1266
+ [clinic start generated code]*/
1267
+
1208
1268
static PyObject *
1209
- buffered_tell (buffered * self , PyObject * Py_UNUSED (ignored ))
1269
+ _io__Buffered_tell_impl (buffered * self )
1270
+ /*[clinic end generated code: output=386972ae84716c1e input=ad61e04a6b349573]*/
1210
1271
{
1211
1272
Py_off_t pos ;
1212
1273
@@ -1318,20 +1379,21 @@ _io__Buffered_seek_impl(buffered *self, PyObject *targetobj, int whence)
1318
1379
1319
1380
/*[clinic input]
1320
1381
_io._Buffered.truncate
1382
+ cls: defining_class
1321
1383
pos: object = None
1322
1384
/
1323
1385
[clinic start generated code]*/
1324
1386
1325
1387
static PyObject *
1326
- _io__Buffered_truncate_impl (buffered * self , PyObject * pos )
1327
- /*[clinic end generated code: output=667ca03c60c270de input=8a1be34d57cca2d3 ]*/
1388
+ _io__Buffered_truncate_impl (buffered * self , PyTypeObject * cls , PyObject * pos )
1389
+ /*[clinic end generated code: output=fe3882fbffe79f1a input=f5b737d97d76303f ]*/
1328
1390
{
1329
1391
PyObject * res = NULL ;
1330
1392
1331
1393
CHECK_INITIALIZED (self )
1332
1394
CHECK_CLOSED (self , "truncate of closed file" )
1333
1395
if (!self -> writable ) {
1334
- _PyIO_State * state = IO_STATE ( );
1396
+ _PyIO_State * state = get_io_state_by_cls ( cls );
1335
1397
return bufferediobase_unsupported (state , "truncate" );
1336
1398
}
1337
1399
if (!ENTER_BUFFERED (self ))
@@ -2427,14 +2489,14 @@ PyTypeObject PyBufferedIOBase_Type = {
2427
2489
2428
2490
static PyMethodDef bufferedreader_methods [] = {
2429
2491
/* BufferedIOMixin methods */
2430
- { "detach" , ( PyCFunction ) buffered_detach , METH_NOARGS },
2431
- { "flush" , ( PyCFunction ) buffered_simple_flush , METH_NOARGS },
2432
- { "close" , ( PyCFunction ) buffered_close , METH_NOARGS },
2433
- { "seekable" , ( PyCFunction ) buffered_seekable , METH_NOARGS },
2434
- { "readable" , ( PyCFunction ) buffered_readable , METH_NOARGS },
2435
- { "fileno" , ( PyCFunction ) buffered_fileno , METH_NOARGS },
2436
- { "isatty" , ( PyCFunction ) buffered_isatty , METH_NOARGS },
2437
- { "_dealloc_warn" , ( PyCFunction ) buffered_dealloc_warn , METH_O },
2492
+ _IO__BUFFERED_DETACH_METHODDEF
2493
+ _IO__BUFFERED_SIMPLE_FLUSH_METHODDEF
2494
+ _IO__BUFFERED_CLOSE_METHODDEF
2495
+ _IO__BUFFERED_SEEKABLE_METHODDEF
2496
+ _IO__BUFFERED_READABLE_METHODDEF
2497
+ _IO__BUFFERED_FILENO_METHODDEF
2498
+ _IO__BUFFERED_ISATTY_METHODDEF
2499
+ _IO__BUFFERED__DEALLOC_WARN_METHODDEF
2438
2500
2439
2501
_IO__BUFFERED_READ_METHODDEF
2440
2502
_IO__BUFFERED_PEEK_METHODDEF
@@ -2443,9 +2505,9 @@ static PyMethodDef bufferedreader_methods[] = {
2443
2505
_IO__BUFFERED_READINTO1_METHODDEF
2444
2506
_IO__BUFFERED_READLINE_METHODDEF
2445
2507
_IO__BUFFERED_SEEK_METHODDEF
2446
- { "tell" , ( PyCFunction ) buffered_tell , METH_NOARGS },
2508
+ _IO__BUFFERED_TELL_METHODDEF
2447
2509
_IO__BUFFERED_TRUNCATE_METHODDEF
2448
- { "__sizeof__" , ( PyCFunction ) buffered_sizeof , METH_NOARGS },
2510
+ _IO__BUFFERED___SIZEOF___METHODDEF
2449
2511
{NULL , NULL }
2450
2512
};
2451
2513
@@ -2489,20 +2551,20 @@ PyType_Spec bufferedreader_spec = {
2489
2551
2490
2552
static PyMethodDef bufferedwriter_methods [] = {
2491
2553
/* BufferedIOMixin methods */
2492
- { "close" , ( PyCFunction ) buffered_close , METH_NOARGS },
2493
- { "detach" , ( PyCFunction ) buffered_detach , METH_NOARGS },
2494
- { "seekable" , ( PyCFunction ) buffered_seekable , METH_NOARGS },
2495
- { "writable" , ( PyCFunction ) buffered_writable , METH_NOARGS },
2496
- { "fileno" , ( PyCFunction ) buffered_fileno , METH_NOARGS },
2497
- { "isatty" , ( PyCFunction ) buffered_isatty , METH_NOARGS },
2498
- { "_dealloc_warn" , ( PyCFunction ) buffered_dealloc_warn , METH_O },
2554
+ _IO__BUFFERED_CLOSE_METHODDEF
2555
+ _IO__BUFFERED_DETACH_METHODDEF
2556
+ _IO__BUFFERED_SEEKABLE_METHODDEF
2557
+ _IO__BUFFERED_WRITABLE_METHODDEF
2558
+ _IO__BUFFERED_FILENO_METHODDEF
2559
+ _IO__BUFFERED_ISATTY_METHODDEF
2560
+ _IO__BUFFERED__DEALLOC_WARN_METHODDEF
2499
2561
2500
2562
_IO_BUFFEREDWRITER_WRITE_METHODDEF
2501
2563
_IO__BUFFERED_TRUNCATE_METHODDEF
2502
- { "flush" , ( PyCFunction ) buffered_flush , METH_NOARGS },
2564
+ _IO__BUFFERED_FLUSH_METHODDEF
2503
2565
_IO__BUFFERED_SEEK_METHODDEF
2504
- {" tell ", (PyCFunction)buffered_tell, METH_NOARGS},
2505
- { "__sizeof__" , ( PyCFunction ) buffered_sizeof , METH_NOARGS },
2566
+ _IO__BUFFERED_TELL_METHODDEF
2567
+ _IO__BUFFERED___SIZEOF___METHODDEF
2506
2568
{NULL , NULL }
2507
2569
};
2508
2570
@@ -2596,19 +2658,19 @@ PyType_Spec bufferedrwpair_spec = {
2596
2658
2597
2659
static PyMethodDef bufferedrandom_methods [] = {
2598
2660
/* BufferedIOMixin methods */
2599
- { "close" , ( PyCFunction ) buffered_close , METH_NOARGS },
2600
- { "detach" , ( PyCFunction ) buffered_detach , METH_NOARGS },
2601
- { "seekable" , ( PyCFunction ) buffered_seekable , METH_NOARGS },
2602
- { "readable" , ( PyCFunction ) buffered_readable , METH_NOARGS },
2603
- { "writable" , ( PyCFunction ) buffered_writable , METH_NOARGS },
2604
- { "fileno" , ( PyCFunction ) buffered_fileno , METH_NOARGS },
2605
- { "isatty" , ( PyCFunction ) buffered_isatty , METH_NOARGS },
2606
- { "_dealloc_warn" , ( PyCFunction ) buffered_dealloc_warn , METH_O },
2661
+ _IO__BUFFERED_CLOSE_METHODDEF
2662
+ _IO__BUFFERED_DETACH_METHODDEF
2663
+ _IO__BUFFERED_SEEKABLE_METHODDEF
2664
+ _IO__BUFFERED_READABLE_METHODDEF
2665
+ _IO__BUFFERED_WRITABLE_METHODDEF
2666
+ _IO__BUFFERED_FILENO_METHODDEF
2667
+ _IO__BUFFERED_ISATTY_METHODDEF
2668
+ _IO__BUFFERED__DEALLOC_WARN_METHODDEF
2607
2669
2608
- { "flush" , ( PyCFunction ) buffered_flush , METH_NOARGS },
2670
+ _IO__BUFFERED_FLUSH_METHODDEF
2609
2671
2610
2672
_IO__BUFFERED_SEEK_METHODDEF
2611
- { "tell" , ( PyCFunction ) buffered_tell , METH_NOARGS },
2673
+ _IO__BUFFERED_TELL_METHODDEF
2612
2674
_IO__BUFFERED_TRUNCATE_METHODDEF
2613
2675
_IO__BUFFERED_READ_METHODDEF
2614
2676
_IO__BUFFERED_READ1_METHODDEF
@@ -2617,7 +2679,7 @@ static PyMethodDef bufferedrandom_methods[] = {
2617
2679
_IO__BUFFERED_READLINE_METHODDEF
2618
2680
_IO__BUFFERED_PEEK_METHODDEF
2619
2681
_IO_BUFFEREDWRITER_WRITE_METHODDEF
2620
- {" __sizeof__ ", ( PyCFunction ) buffered_sizeof , METH_NOARGS },
2682
+ _IO__BUFFERED___SIZEOF___METHODDEF
2621
2683
{NULL , NULL }
2622
2684
};
2623
2685
0 commit comments