@@ -77,7 +77,7 @@ impl<T> PyArray<T> {
77
77
/// use numpy::PyArray;
78
78
/// fn return_py_array() -> PyArray<i32> {
79
79
/// let gil = Python::acquire_gil();
80
- /// let array = PyArray::zeros(gil.python(), & [5], false);
80
+ /// let array = PyArray::zeros(gil.python(), [5], false);
81
81
/// array.to_owned(gil.python())
82
82
/// }
83
83
/// let array = return_py_array();
@@ -108,7 +108,7 @@ impl<T> PyArray<T> {
108
108
/// # extern crate pyo3; extern crate numpy; fn main() {
109
109
/// use numpy::PyArray;
110
110
/// let gil = pyo3::Python::acquire_gil();
111
- /// let arr = PyArray::<f64>::new(gil.python(), & [4, 5, 6]);
111
+ /// let arr = PyArray::<f64>::new(gil.python(), [4, 5, 6]);
112
112
/// assert_eq!(arr.ndim(), 3);
113
113
/// # }
114
114
/// ```
@@ -148,7 +148,7 @@ impl<T> PyArray<T> {
148
148
/// # extern crate pyo3; extern crate numpy; fn main() {
149
149
/// use numpy::PyArray;
150
150
/// let gil = pyo3::Python::acquire_gil();
151
- /// let arr = PyArray::<f64>::new(gil.python(), & [4, 5, 6]);
151
+ /// let arr = PyArray::<f64>::new(gil.python(), [4, 5, 6]);
152
152
/// assert_eq!(arr.shape(), &[4, 5, 6]);
153
153
/// # }
154
154
/// ```
@@ -248,7 +248,7 @@ impl<T: TypeNum> PyArray<T> {
248
248
let flattend: Vec < _ > = v. iter ( ) . cloned ( ) . flatten ( ) . collect ( ) ;
249
249
unsafe {
250
250
let data = convert:: into_raw ( flattend) ;
251
- Ok ( PyArray :: new_ ( py, & dims, null_mut ( ) , data) )
251
+ Ok ( PyArray :: new_ ( py, dims, null_mut ( ) , data) )
252
252
}
253
253
}
254
254
@@ -287,7 +287,7 @@ impl<T: TypeNum> PyArray<T> {
287
287
let flattend: Vec < _ > = v. iter ( ) . flat_map ( |v| v. iter ( ) . cloned ( ) . flatten ( ) ) . collect ( ) ;
288
288
unsafe {
289
289
let data = convert:: into_raw ( flattend) ;
290
- Ok ( PyArray :: new_ ( py, & dims, null_mut ( ) , data) )
290
+ Ok ( PyArray :: new_ ( py, dims, null_mut ( ) , data) )
291
291
}
292
292
}
293
293
@@ -379,17 +379,16 @@ impl<T: TypeNum> PyArray<T> {
379
379
/// Construct a new PyArray given a raw pointer and dimensions.
380
380
///
381
381
/// Please use `new` or from methods instead.
382
- pub unsafe fn new_ < ' py > (
382
+ pub unsafe fn new_ < ' py , D : ToNpyDims > (
383
383
py : Python < ' py > ,
384
- dims : & [ usize ] ,
384
+ dims : D ,
385
385
strides : * mut npy_intp ,
386
386
data : * mut c_void ,
387
387
) -> & ' py Self {
388
- let dims: Vec < _ > = dims. iter ( ) . map ( |d| * d as npy_intp ) . collect ( ) ;
389
388
let ptr = PY_ARRAY_API . PyArray_New (
390
389
PY_ARRAY_API . get_type_object ( npyffi:: ArrayType :: PyArray_Type ) ,
391
- dims. len ( ) as i32 ,
392
- dims. as_ptr ( ) as * mut npy_intp ,
390
+ dims. dims_len ( ) ,
391
+ dims. dims_ptr ( ) ,
393
392
T :: typenum_default ( ) ,
394
393
strides,
395
394
data,
@@ -409,11 +408,11 @@ impl<T: TypeNum> PyArray<T> {
409
408
/// # extern crate pyo3; extern crate numpy; #[macro_use] extern crate ndarray; fn main() {
410
409
/// use numpy::PyArray;
411
410
/// let gil = pyo3::Python::acquire_gil();
412
- /// let pyarray = PyArray::<i32>::new(gil.python(), & [4, 5, 6]);
411
+ /// let pyarray = PyArray::<i32>::new(gil.python(), [4, 5, 6]);
413
412
/// assert_eq!(pyarray.shape(), &[4, 5, 6]);
414
413
/// # }
415
414
/// ```
416
- pub fn new < ' py > ( py : Python < ' py > , dims : & [ usize ] ) -> & ' py Self {
415
+ pub fn new < ' py , D : ToNpyDims > ( py : Python < ' py > , dims : D ) -> & ' py Self {
417
416
unsafe { Self :: new_ ( py, dims, null_mut ( ) , null_mut ( ) ) }
418
417
}
419
418
@@ -427,17 +426,16 @@ impl<T: TypeNum> PyArray<T> {
427
426
/// # extern crate pyo3; extern crate numpy; #[macro_use] extern crate ndarray; fn main() {
428
427
/// use numpy::PyArray;
429
428
/// let gil = pyo3::Python::acquire_gil();
430
- /// let pyarray = PyArray::zeros(gil.python(), & [2, 2], false);
429
+ /// let pyarray = PyArray::zeros(gil.python(), [2, 2], false);
431
430
/// assert_eq!(pyarray.as_array().unwrap(), array![[0, 0], [0, 0]].into_dyn());
432
431
/// # }
433
432
/// ```
434
- pub fn zeros < ' py > ( py : Python < ' py > , dims : & [ usize ] , is_fortran : bool ) -> & ' py Self {
435
- let dims: Vec < npy_intp > = dims. iter ( ) . map ( |d| * d as npy_intp ) . collect ( ) ;
433
+ pub fn zeros < ' py , D : ToNpyDims > ( py : Python < ' py > , dims : D , is_fortran : bool ) -> & ' py Self {
436
434
unsafe {
437
435
let descr = PY_ARRAY_API . PyArray_DescrFromType ( T :: typenum_default ( ) ) ;
438
436
let ptr = PY_ARRAY_API . PyArray_Zeros (
439
- dims. len ( ) as i32 ,
440
- dims. as_ptr ( ) as * mut npy_intp ,
437
+ dims. dims_len ( ) ,
438
+ dims. dims_ptr ( ) ,
441
439
descr,
442
440
if is_fortran { -1 } else { 0 } ,
443
441
) ;
@@ -499,7 +497,7 @@ impl<T: TypeNum> PyArray<T> {
499
497
/// use numpy::{PyArray, IntoPyArray};
500
498
/// let gil = pyo3::Python::acquire_gil();
501
499
/// let pyarray_f = PyArray::<f64>::arange(gil.python(), 2.0, 5.0, 1.0);
502
- /// let pyarray_i = PyArray::<i64>::new(gil.python(), & [3]);
500
+ /// let pyarray_i = PyArray::<i64>::new(gil.python(), [3]);
503
501
/// assert!(pyarray_f.move_to(pyarray_i).is_ok());
504
502
/// assert_eq!(pyarray_i.as_slice().unwrap(), &[2, 3, 4]);
505
503
/// # }
0 commit comments