Skip to content

Commit ab83c5b

Browse files
committed
give GPUMemoryView a nicer __repr__
1 parent 7076a6c commit ab83c5b

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

cuda_py/cuda/py/_memoryview.pyx

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,25 @@ cdef class GPUMemoryView:
2525
readonly: bool = None
2626
obj: Any = None
2727

28-
# TODO: implement __repr__ to avoid printing obj's content
28+
def __repr__(self):
29+
return (f"GPUMemoryView(ptr={self.ptr},\n"
30+
+ f" shape={self.shape},\n"
31+
+ f" strides={self.strides},\n"
32+
+ f" dtype={get_simple_repr(numpy.dtype(self.dtype))},\n"
33+
+ f" device_id={self.device_id},\n"
34+
+ f" device_accessible={self.device_accessible},\n"
35+
+ f" readonly={self.readonly},\n"
36+
+ f" obj={get_simple_repr(self.obj)})")
37+
38+
39+
cdef str get_simple_repr(obj):
40+
cdef object obj_class = obj.__class__
41+
cdef str obj_repr
42+
if obj_class.__module__ in (None, "__builtin__"):
43+
obj_repr = obj_class.__name__
44+
else:
45+
obj_repr = f"{obj_class.__module__}.{obj_class.__name__}"
46+
return obj_repr
2947

3048

3149
cdef class _GPUMemoryViewProxy:

0 commit comments

Comments
 (0)