diff options
author | Jim Fulton <jim@zope.com> | 2004-08-31 22:16:42 +0000 |
---|---|---|
committer | Jim Fulton <jim@zope.com> | 2004-08-31 22:16:42 +0000 |
commit | d2ed77fafe9c3762d19dfd9ae43938d2aebc7bbf (patch) | |
tree | 1110070cee8e0746b0d8d66b4dbe45d911d2f2a4 | |
parent | addd388ea5705ad45760d9acf955dba9c893c94f (diff) | |
download | zope-tal-d2ed77fafe9c3762d19dfd9ae43938d2aebc7bbf.tar.gz |
Fixed collector issue 266
http://collector.zope.org/Zope3-dev/266
-rw-r--r-- | taldefs.py | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -149,9 +149,17 @@ def isCurrentVersion(program): version = getProgramVersion(program) return version == TAL_VERSION +def isinstance_(ob, type): + # Proxy-friendly and faster isinstance_ check for new-style objects + try: + return type in ob.__class__.__mro__ + except AttributeError: + return False + + def getProgramMode(program): version = getProgramVersion(program) - if (version == TAL_VERSION and isinstance(program[1], tuple) and + if (version == TAL_VERSION and isinstance_(program[1], tuple) and len(program[1]) == 2): opcode, mode = program[1] if opcode == "mode": @@ -160,7 +168,7 @@ def getProgramMode(program): def getProgramVersion(program): if (len(program) >= 2 and - isinstance(program[0], tuple) and len(program[0]) == 2): + isinstance_(program[0], tuple) and len(program[0]) == 2): opcode, version = program[0] if opcode == "version": return version |