From 226a8ac66587e9374e8d737526c25e321938fcb8 Mon Sep 17 00:00:00 2001 From: Robert Bradshaw Date: Sun, 14 Dec 2008 02:47:49 -0800 Subject: [PATCH] Fix in visitor doctests --- Cython/Compiler/Visitor.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Cython/Compiler/Visitor.py b/Cython/Compiler/Visitor.py index 491f467b..0ad6b0de 100644 --- a/Cython/Compiler/Visitor.py +++ b/Cython/Compiler/Visitor.py @@ -25,18 +25,18 @@ class BasicVisitor(object): # Must resolve, try entire hierarchy pattern = "visit_%s" mro = inspect.getmro(cls) + handler_method = None for mro_cls in mro: - try: + if hasattr(self, pattern % mro_cls.__name__): handler_method = getattr(self, pattern % mro_cls.__name__) break - except AttributeError: - pass - else: + if handler_method is None: print type(self), type(obj) if hasattr(self, 'access_path'): print self.access_path - print self.access_path[-1][0].pos - print self.access_path[-1][0].__dict__ + if self.access_path: + print self.access_path[-1][0].pos + print self.access_path[-1][0].__dict__ raise RuntimeError("Visitor does not accept object: %s" % obj) #print "Caching " + cls.__name__ self.dispatch_table[cls] = handler_method @@ -60,7 +60,7 @@ class TreeVisitor(BasicVisitor): Example: - >>> class SampleNode: + >>> class SampleNode(object): ... child_attrs = ["head", "body"] ... def __init__(self, value, head=None, body=None): ... self.value = value -- 2.26.2