@@ -3,7 +3,7 @@ use std::sync::Arc;
3
3
use async_tiff:: metadata:: { PrefetchBuffer , TiffMetadataReader } ;
4
4
use async_tiff:: reader:: AsyncFileReader ;
5
5
use async_tiff:: TIFF ;
6
- use pyo3:: exceptions:: { PyFileNotFoundError , PyIndexError } ;
6
+ use pyo3:: exceptions:: { PyFileNotFoundError , PyIndexError , PyTypeError } ;
7
7
use pyo3:: prelude:: * ;
8
8
use pyo3:: types:: PyType ;
9
9
use pyo3_async_runtimes:: tokio:: future_into_py;
@@ -69,7 +69,11 @@ impl PyTIFF {
69
69
// TODO: avoid this clone; add Arc to underlying rust code?
70
70
. clone ( ) ;
71
71
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
+
73
77
Ok ( PyTile :: new ( tile) )
74
78
} )
75
79
}
@@ -91,7 +95,10 @@ impl PyTIFF {
91
95
// TODO: avoid this clone; add Arc to underlying rust code?
92
96
. clone ( ) ;
93
97
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 ( ) ) ) ?;
95
102
let py_tiles = tiles. into_iter ( ) . map ( PyTile :: new) . collect :: < Vec < _ > > ( ) ;
96
103
Ok ( py_tiles)
97
104
} )
0 commit comments