@@ -1361,6 +1361,7 @@ mod _io {
1361
1361
1362
1362
#[ pyimpl]
1363
1363
trait BufferedMixin : PyPayload {
1364
+ const CLASS_NAME : & ' static str ;
1364
1365
const READABLE : bool ;
1365
1366
const WRITABLE : bool ;
1366
1367
const SEEKABLE : bool = false ;
@@ -1374,7 +1375,11 @@ mod _io {
1374
1375
#[ pyslot]
1375
1376
fn slot_init ( zelf : PyObjectRef , args : FuncArgs , vm : & VirtualMachine ) -> PyResult < ( ) > {
1376
1377
let zelf: PyRef < Self > = zelf. try_into_value ( vm) ?;
1377
- let ( raw, BufferSize { buffer_size } ) : ( PyObjectRef , _ ) = args. bind ( vm) ?;
1378
+ let ( raw, BufferSize { buffer_size } ) : ( PyObjectRef , _ ) =
1379
+ args. bind ( vm) . map_err ( |e| {
1380
+ let msg = format ! ( "{}() {}" , Self :: CLASS_NAME , * e. str ( vm) ) ;
1381
+ vm. new_exception_msg ( e. class ( ) . clone ( ) , msg)
1382
+ } ) ?;
1378
1383
zelf. init ( raw, BufferSize { buffer_size } , vm)
1379
1384
}
1380
1385
@@ -1657,6 +1662,7 @@ mod _io {
1657
1662
data : PyThreadMutex < BufferedData > ,
1658
1663
}
1659
1664
impl BufferedMixin for BufferedReader {
1665
+ const CLASS_NAME : & ' static str = "BufferedReader" ;
1660
1666
const READABLE : bool = true ;
1661
1667
const WRITABLE : bool = false ;
1662
1668
fn data ( & self ) -> & PyThreadMutex < BufferedData > {
@@ -1706,6 +1712,7 @@ mod _io {
1706
1712
data : PyThreadMutex < BufferedData > ,
1707
1713
}
1708
1714
impl BufferedMixin for BufferedWriter {
1715
+ const CLASS_NAME : & ' static str = "BufferedWriter" ;
1709
1716
const READABLE : bool = false ;
1710
1717
const WRITABLE : bool = true ;
1711
1718
fn data ( & self ) -> & PyThreadMutex < BufferedData > {
@@ -1734,6 +1741,7 @@ mod _io {
1734
1741
data : PyThreadMutex < BufferedData > ,
1735
1742
}
1736
1743
impl BufferedMixin for BufferedRandom {
1744
+ const CLASS_NAME : & ' static str = "BufferedRandom" ;
1737
1745
const READABLE : bool = true ;
1738
1746
const WRITABLE : bool = true ;
1739
1747
const SEEKABLE : bool = true ;
0 commit comments