Update of /cvs-repository/Products/PluginIndexes/common In directory cvs.zope.org:/tmp/cvs-serv32028/lib/python/Products/PluginIndexes/common
Modified Files: Tag: tseaver-hasattr_geddon-branch __init__.py util.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? === Products/PluginIndexes/common/__init__.py 1.5 => 1.5.66.1 === --- Products/PluginIndexes/common/__init__.py:1.5 Tue Jun 24 10:17:18 2003 +++ Products/PluginIndexes/common/__init__.py Sat May 28 20:41:33 2005 @@ -14,13 +14,14 @@ # This code is duplicated here from Products/ZCatalog/Catalog.py to avoid a # unnecessary dependency on ZCatalog. import types +from ZODB.utils import safe_hasattr try: from DocumentTemplate.cDocumentTemplate import safe_callable except ImportError: def safe_callable(ob): # Works with ExtensionClasses and Acquisition. - if hasattr(ob, '__class__'): - if hasattr(ob, '__call__'): + if safe_hasattr(ob, '__class__'): + if safe_hasattr(ob, '__call__'): return 1 else: return isinstance(ob, types.ClassType) === Products/PluginIndexes/common/util.py 1.10.68.5 => 1.10.68.5.22.1 === --- Products/PluginIndexes/common/util.py:1.10.68.5 Tue Jun 29 05:59:50 2004 +++ Products/PluginIndexes/common/util.py Sat May 28 20:41:33 2005 @@ -18,6 +18,7 @@ from warnings import warn from types import StringType,ListType,TupleType,DictType,InstanceType from DateTime import DateTime +from ZODB.utils import safe_hasattr SequenceTypes = (TupleType, ListType) @@ -85,7 +86,7 @@ record = param - if not hasattr(record, 'query'): + if not safe_hasattr(record, 'query'): raise self.ParserException, ( "record for '%s' *must* contain a " "'query' attribute" % self.id) @@ -97,7 +98,7 @@ for op in options: if op == "query": continue - if hasattr(record, op): + if safe_hasattr(record, op): setattr(self, op, getattr(record, op)) elif t is DictType: @@ -133,7 +134,7 @@ def get(self,k,default_v=None): - if hasattr(self,k): + if safe_hasattr(self,k): v = getattr(self,k) if v: return v else: return default_v _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins