From a52e9354d84dca1bbf0d82fc03fc3fb808720303 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Tue, 7 May 2013 11:20:49 -0400 Subject: [PATCH] Make ShapedArg subclasses more robust to 'shape is None'. --- loopy/kernel/data.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/loopy/kernel/data.py b/loopy/kernel/data.py index 8248b4ca9..bdfadceeb 100644 --- a/loopy/kernel/data.py +++ b/loopy/kernel/data.py @@ -219,12 +219,22 @@ class ShapedArg(Record): @property def dimensions(self): - return len(self.shape) + return len(self.strides) -class GlobalArg(ShapedArg): def __repr__(self): - return "<GlobalArg '%s' of type %s and shape (%s)>" % ( - self.name, self.dtype, ",".join(str(i) for i in self.shape)) + if self.shape is None: + shape = "unknown" + else: + shape = ",".join(str(i) for i in self.shape) + + return "<%s '%s' of type %s and shape (%s)>" % ( + type(self).__name__, self.name, self.dtype, shape) + +class GlobalArg(ShapedArg): + pass + +class ConstantArg(ShapedArg): + pass class ArrayArg(GlobalArg): def __init__(self, *args, **kwargs): @@ -233,11 +243,6 @@ class ArrayArg(GlobalArg): stacklevel=2) GlobalArg.__init__(self, *args, **kwargs) -class ConstantArg(ShapedArg): - def __repr__(self): - return "<ConstantArg '%s' of type %s and shape (%s)>" % ( - self.name, self.dtype, ",".join(str(i) for i in self.shape)) - class ImageArg(Record): def __init__(self, name, dtype=None, dimensions=None, shape=None): dtype = np.dtype(dtype) -- GitLab