@@ -1361,6 +1361,7 @@ mod _io {
13611361
13621362 #[ pyimpl]
13631363 trait BufferedMixin : PyPayload {
1364+ const CLASS_NAME : & ' static str ;
13641365 const READABLE : bool ;
13651366 const WRITABLE : bool ;
13661367 const SEEKABLE : bool = false ;
@@ -1374,7 +1375,11 @@ mod _io {
13741375 #[ pyslot]
13751376 fn slot_init ( zelf : PyObjectRef , args : FuncArgs , vm : & VirtualMachine ) -> PyResult < ( ) > {
13761377 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+ } ) ?;
13781383 zelf. init ( raw, BufferSize { buffer_size } , vm)
13791384 }
13801385
@@ -1657,6 +1662,7 @@ mod _io {
16571662 data : PyThreadMutex < BufferedData > ,
16581663 }
16591664 impl BufferedMixin for BufferedReader {
1665+ const CLASS_NAME : & ' static str = "BufferedReader" ;
16601666 const READABLE : bool = true ;
16611667 const WRITABLE : bool = false ;
16621668 fn data ( & self ) -> & PyThreadMutex < BufferedData > {
@@ -1706,6 +1712,7 @@ mod _io {
17061712 data : PyThreadMutex < BufferedData > ,
17071713 }
17081714 impl BufferedMixin for BufferedWriter {
1715+ const CLASS_NAME : & ' static str = "BufferedWriter" ;
17091716 const READABLE : bool = false ;
17101717 const WRITABLE : bool = true ;
17111718 fn data ( & self ) -> & PyThreadMutex < BufferedData > {
@@ -1734,6 +1741,7 @@ mod _io {
17341741 data : PyThreadMutex < BufferedData > ,
17351742 }
17361743 impl BufferedMixin for BufferedRandom {
1744+ const CLASS_NAME : & ' static str = "BufferedRandom" ;
17371745 const READABLE : bool = true ;
17381746 const WRITABLE : bool = true ;
17391747 const SEEKABLE : bool = true ;
0 commit comments