@@ -23,9 +23,9 @@ fn $name(dist: PyReadonlyArray2<'_, $type>, meds: PyReadonlyArray1<'_, usize>, m
2323 assert_eq!( dist. shape( ) [ 0 ] , dist. shape( ) [ 1 ] ) ;
2424 let mut meds = meds. to_vec( ) ?;
2525 let ( loss, assi, n_iter, n_swap) : ( $ltype, _, _, _) = rustkmedoids:: $variant( & dist. as_array( ) , & mut meds, max_iter) ;
26- let gil = Python :: acquire_gil ( ) ;
27- let py = gil . python ( ) ;
28- Ok ( ( loss , PyArray1 :: from_vec ( py , assi ) , PyArray1 :: from_vec ( py , meds ) , n_iter , n_swap ) . to_object ( py ) )
26+ Python :: with_gil ( |py| -> PyResult < Py < PyAny >> {
27+ Ok ( ( loss , PyArray1 :: from_vec ( py , assi ) , PyArray1 :: from_vec ( py , meds ) , n_iter , n_swap ) . to_object ( py ) )
28+ } )
2929}
3030} }
3131variant_call ! ( fasterpam_f32, fasterpam, f32 , f64 ) ;
@@ -70,9 +70,9 @@ fn $name(dist: PyReadonlyArray2<'_, $type>, meds: PyReadonlyArray1<'_, usize>, m
7070 let mut meds = meds. to_vec( ) ?;
7171 let mut rnd = StdRng :: seed_from_u64( seed) ;
7272 let ( loss, assi, n_iter, n_swap) : ( $ltype, _, _, _) = rustkmedoids:: $variant( & dist. as_array( ) , & mut meds, max_iter, & mut rnd) ;
73- let gil = Python :: acquire_gil ( ) ;
74- let py = gil . python ( ) ;
75- Ok ( ( loss , PyArray1 :: from_vec ( py , assi ) , PyArray1 :: from_vec ( py , meds ) , n_iter , n_swap ) . to_object ( py ) )
73+ Python :: with_gil ( |py| -> PyResult < Py < PyAny >> {
74+ Ok ( ( loss , PyArray1 :: from_vec ( py , assi ) , PyArray1 :: from_vec ( py , meds ) , n_iter , n_swap ) . to_object ( py ) )
75+ } )
7676}
7777} }
7878rand_call ! ( rand_fasterpam_f32, rand_fasterpam, f32 , f64 ) ;
@@ -107,9 +107,9 @@ fn $name(dist: PyReadonlyArray2<'_, $type>, meds: PyReadonlyArray1<'_, usize>, m
107107 let mut rnd = StdRng :: seed_from_u64( seed) ;
108108 rustkmedoids:: $variant( & dist, & mut meds, max_iter, & mut rnd)
109109 } ) ;
110- let gil = Python :: acquire_gil ( ) ;
111- let py = gil . python ( ) ;
112- Ok ( ( loss , PyArray1 :: from_vec ( py , assi ) , PyArray1 :: from_vec ( py , meds ) , n_iter , n_swap ) . to_object ( py ) )
110+ Python :: with_gil ( |py| -> PyResult < Py < PyAny >> {
111+ Ok ( ( loss , PyArray1 :: from_vec ( py , assi ) , PyArray1 :: from_vec ( py , meds ) , n_iter , n_swap ) . to_object ( py ) )
112+ } )
113113}
114114} }
115115par_call ! ( par_fasterpam_f32, par_fasterpam, f32 , f64 ) ;
@@ -132,9 +132,9 @@ fn $name(dist: PyReadonlyArray2<'_, $type>, k: usize) -> PyResult<Py<PyAny>> {
132132 assert_eq!( dist. ndim( ) , 2 ) ;
133133 assert_eq!( dist. shape( ) [ 0 ] , dist. shape( ) [ 1 ] ) ;
134134 let ( loss, assi, meds) : ( $ltype, _, _) = rustkmedoids:: pam_build( & dist. as_array( ) , k) ;
135- let gil = Python :: acquire_gil ( ) ;
136- let py = gil . python ( ) ;
137- Ok ( ( loss , PyArray1 :: from_vec ( py , assi ) , PyArray1 :: from_vec ( py , meds ) , 1 ) . to_object ( py ) )
135+ Python :: with_gil ( |py| -> PyResult < Py < PyAny >> {
136+ Ok ( ( loss , PyArray1 :: from_vec ( py , assi ) , PyArray1 :: from_vec ( py , meds ) , 1 ) . to_object ( py ) )
137+ } )
138138}
139139} }
140140pam_build_call ! ( pam_build_f32, f32 , f64 ) ;
@@ -160,9 +160,9 @@ fn $name(dist: PyReadonlyArray2<'_, $type>, meds: PyReadonlyArray1<'_, usize>, m
160160 assert_eq!( dist. shape( ) [ 0 ] , dist. shape( ) [ 1 ] ) ;
161161 let mut meds = meds. to_vec( ) ?;
162162 let ( loss, assi, n_iter) : ( $ltype, _, _) = rustkmedoids:: alternating( & dist. as_array( ) , & mut meds, max_iter) ;
163- let gil = Python :: acquire_gil ( ) ;
164- let py = gil . python ( ) ;
165- Ok ( ( loss , PyArray1 :: from_vec ( py , assi ) , PyArray1 :: from_vec ( py , meds ) , n_iter ) . to_object ( py ) )
163+ Python :: with_gil ( |py| -> PyResult < Py < PyAny >> {
164+ Ok ( ( loss , PyArray1 :: from_vec ( py , assi ) , PyArray1 :: from_vec ( py , meds ) , n_iter ) . to_object ( py ) )
165+ } )
166166}
167167} }
168168alternating_call ! ( alternating_f32, f32 , f64 ) ;
@@ -187,9 +187,9 @@ fn $name(dist: PyReadonlyArray2<'_, $type>, assi: PyReadonlyArray1<'_, usize>, s
187187 assert_eq!( dist. ndim( ) , 2 ) ;
188188 assert_eq!( dist. shape( ) [ 0 ] , dist. shape( ) [ 1 ] ) ;
189189 let ( sil, sils) : ( f64 , _) = rustkmedoids:: silhouette( & dist. as_array( ) , & assi. to_vec( ) ?, samples) ;
190- let gil = Python :: acquire_gil ( ) ;
191- let py = gil . python ( ) ;
192- Ok ( ( sil , PyArray1 :: from_vec ( py , sils ) ) . to_object ( py ) )
190+ Python :: with_gil ( |py| -> PyResult < Py < PyAny >> {
191+ Ok ( ( sil , PyArray1 :: from_vec ( py , sils ) ) . to_object ( py ) )
192+ } )
193193}
194194} }
195195silhouette_call ! ( silhouette_f32, f32 ) ;
0 commit comments