[Zope-Checkins] CVS: ZODB3/Tools - checkbtrees.py:1.1.30.2.26.1

Tres Seaver tseaver at palladion.com
Sat May 28 20:41:49 EDT 2005


Update of /cvs-repository/ZODB3/Tools
In directory cvs.zope.org:/tmp/cvs-serv32028/utilities/ZODBTools

Modified Files:
      Tag: tseaver-hasattr_geddon-branch
	checkbtrees.py 
Log Message:

  - Removed all uses of the 'hasattr' builtin from the core, where
    the object being tested derives (or might) from Persistent.
    XXX:  currently, this branch imports a 'safe_hasattr' from ZODB.utils,
    which adds a dependency on ZODB for some packages;  we probably
    need a better location, and perhas a C implementation?


=== ZODB3/Tools/checkbtrees.py 1.1.30.2 => 1.1.30.2.26.1 ===
--- ZODB3/Tools/checkbtrees.py:1.1.30.2	Thu Mar 18 08:24:02 2004
+++ ZODB3/Tools/checkbtrees.py	Sat May 28 20:41:39 2005
@@ -12,6 +12,7 @@
 
 import ZODB
 from ZODB.FileStorage import FileStorage
+from ZODB.utils import safe_hasattr
 from BTrees.check import check
 
 # Set of oids we've already visited.  Since the object structure is
@@ -26,7 +27,7 @@
     global oids_seen
 
     getattr(obj, '_', None) # unghostify
-    if hasattr(obj, '_p_oid'):
+    if safe_hasattr(obj, '_p_oid'):
         oid = obj._p_oid
         if not oids_seen.has_key(oid):
             L.append((obj, path))
@@ -83,7 +84,7 @@
 
         mod = str(obj.__class__.__module__)
         if mod.startswith("BTrees"):
-            if hasattr(obj, "_check"):
+            if safe_hasattr(obj, "_check"):
                 try:
                     obj._check()
                 except AssertionError, msg:



More information about the Zope-Checkins mailing list