From 26d2fab6185526530c9df68e5efd1dc4e5949e11 Mon Sep 17 00:00:00 2001 From: Dave Schuyler Date: Wed, 17 Sep 2003 01:57:28 +0000 Subject: [PATCH] added find() and findAll() to help debugging. --- direct/src/showbase/Messenger.py | 56 +++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 8 deletions(-) diff --git a/direct/src/showbase/Messenger.py b/direct/src/showbase/Messenger.py index 083f525c2a..2e65552fce 100644 --- a/direct/src/showbase/Messenger.py +++ b/direct/src/showbase/Messenger.py @@ -186,6 +186,53 @@ class Messenger: def toggleVerbose(self): Messenger.notify.setDebug(1 - Messenger.notify.getDebug()) + def find(self, needle): + """ + return a matching event (needle) if found (in haystack). + This is primarily a debugging tool. + """ + keys = self.dict.keys() + keys.sort() + for event in keys: + if `event`.find(needle) >= 0: + print self.__eventRepr(event), + return {event: self.dict[event]} + + def findAll(self, needle, limit=None): + """ + return a dict of events (needle) if found (in haystack). + limit may be None or an integer (e.g. 1). + This is primarily a debugging tool. + """ + matches = {} + keys = self.dict.keys() + keys.sort() + for event in keys: + if `event`.find(needle) >= 0: + print self.__eventRepr(event), + matches[event] = self.dict[event] + # if the limit is not None, decrement and + # check for break: + if limit > 0: + limit -= 1 + if limit == 0: + break + return matches + + def __eventRepr(self, event): + """ + Compact version of event, acceptor pairs + """ + str = event.ljust(32) + '\t' + acceptorDict = self.dict[event] + for object in acceptorDict.keys(): + method, extraArgs, persistent = acceptorDict[object] + className = object.__class__.__name__ + methodName = method.__name__ + str = str + className + '.' + methodName + ' ' + str = str + '\n' + return str + def __repr__(self): """ Compact version of event, acceptor pairs @@ -194,14 +241,7 @@ class Messenger: keys = self.dict.keys() keys.sort() for event in keys: - str = str + event.ljust(32) + '\t' - acceptorDict = self.dict[event] - for object in acceptorDict.keys(): - method, extraArgs, persistent = acceptorDict[object] - className = object.__class__.__name__ - methodName = method.__name__ - str = str + className + '.' + methodName + ' ' - str = str + '\n' + str += self.__eventRepr(event) return str def detailedRepr(self):