@@ -3,7 +3,7 @@ use std::sync::Arc;
33use async_tiff:: metadata:: { PrefetchBuffer , TiffMetadataReader } ;
44use async_tiff:: reader:: AsyncFileReader ;
55use async_tiff:: TIFF ;
6- use pyo3:: exceptions:: { PyFileNotFoundError , PyIndexError } ;
6+ use pyo3:: exceptions:: { PyFileNotFoundError , PyIndexError , PyTypeError } ;
77use pyo3:: prelude:: * ;
88use pyo3:: types:: PyType ;
99use pyo3_async_runtimes:: tokio:: future_into_py;
@@ -69,7 +69,11 @@ impl PyTIFF {
6969 // TODO: avoid this clone; add Arc to underlying rust code?
7070 . clone ( ) ;
7171 future_into_py ( py, async move {
72- let tile = ifd. fetch_tile ( x, y, reader. as_ref ( ) ) . await . unwrap ( ) ;
72+ let tile = ifd
73+ . fetch_tile ( x, y, reader. as_ref ( ) )
74+ . await
75+ . map_err ( |err| PyTypeError :: new_err ( err. to_string ( ) ) ) ?;
76+
7377 Ok ( PyTile :: new ( tile) )
7478 } )
7579 }
@@ -91,7 +95,10 @@ impl PyTIFF {
9195 // TODO: avoid this clone; add Arc to underlying rust code?
9296 . clone ( ) ;
9397 future_into_py ( py, async move {
94- let tiles = ifd. fetch_tiles ( & x, & y, reader. as_ref ( ) ) . await . unwrap ( ) ;
98+ let tiles = ifd
99+ . fetch_tiles ( & x, & y, reader. as_ref ( ) )
100+ . await
101+ . map_err ( |err| PyTypeError :: new_err ( err. to_string ( ) ) ) ?;
95102 let py_tiles = tiles. into_iter ( ) . map ( PyTile :: new) . collect :: < Vec < _ > > ( ) ;
96103 Ok ( py_tiles)
97104 } )
0 commit comments