@@ -31,17 +31,16 @@ This module contains differnt helpers and utilities
31
31
32
32
"""
33
33
34
+ import numpy
35
+ import dpnp.config as config
36
+ import dpnp
37
+ from dpnp.dpnp_algo cimport dpnp_DPNPFuncType_to_dtype, dpnp_dtype_to_DPNPFuncType, get_dpnp_function_ptr
34
38
from libcpp cimport bool as cpp_bool
35
39
from libcpp.complex cimport complex as cpp_complex
36
40
37
41
cimport cpython
38
42
cimport cython
39
43
cimport numpy
40
- from dpnp.dpnp_algo cimport dpnp_DPNPFuncType_to_dtype, dpnp_dtype_to_DPNPFuncType, get_dpnp_function_ptr
41
-
42
- import dpnp
43
- import dpnp.config as config
44
- import numpy
45
44
46
45
47
46
"""
@@ -476,6 +475,12 @@ cdef class dpnp_descriptor:
476
475
return self .descriptor[" shape" ]
477
476
return None
478
477
478
+ @property
479
+ def strides (self ):
480
+ if self .is_valid:
481
+ return self .descriptor[" strides" ]
482
+ return None
483
+
479
484
@property
480
485
def ndim (self ):
481
486
if self .is_valid:
@@ -506,6 +511,30 @@ cdef class dpnp_descriptor:
506
511
return data_tuple[0 ]
507
512
return None
508
513
514
+ @property
515
+ def descr (self ):
516
+ if self .is_valid:
517
+ return self .descriptor[" descr" ]
518
+ return None
519
+
520
+ @property
521
+ def __array_interface__ (self ):
522
+ # print(f"====dpnp_descriptor::__array_interface__====self.descriptor={ < size_t > self.descriptor}")
523
+ if self .descriptor is None :
524
+ return None
525
+
526
+ # TODO need to think about feature compatibility
527
+ interface_dict = {
528
+ " data" : self .descriptor[" data" ],
529
+ " strides" : self .descriptor[" strides" ],
530
+ " descr" : self .descriptor[" descr" ],
531
+ " typestr" : self .descriptor[" typestr" ],
532
+ " shape" : self .descriptor[" shape" ],
533
+ " version" : self .descriptor[" version" ]
534
+ }
535
+
536
+ return interface_dict
537
+
509
538
cdef void * get_data(self ):
510
539
cdef long val = self .data
511
540
return < void * > val
0 commit comments