[Zope-Checkins] CVS: Zope2 - pDocumentTemplate.py:1.27.40.2
shane@digicool.com
shane@digicool.com
Fri, 27 Apr 2001 15:47:49 -0400 (EDT)
Update of /cvs-repository/Zope2/lib/python/DocumentTemplate
In directory korak:/tmp/cvs-serv14500
Modified Files:
Tag: RestrictedPythonBranch
pDocumentTemplate.py
Log Message:
Fixed callable() semantics and matched with cDocumentTemplate
--- Updated File pDocumentTemplate.py in package Zope2 --
--- pDocumentTemplate.py 2001/04/26 22:25:08 1.27.40.1
+++ pDocumentTemplate.py 2001/04/27 19:47:47 1.27.40.2
@@ -144,15 +144,14 @@
if key[:1]=='_':
if key != '__str__':
raise KeyError, key # Don't divuldge private data
- return str(inst)
+ else:
+ return str(inst)
read_guard = self.read_guard
- if read_guard is None:
- inst1 = inst
- else:
- inst1 = read_guard(inst)
+ if read_guard is not None:
+ inst = read_guard(inst)
- try: r = getattr(inst1, key)
+ try: r = getattr(inst, key)
except AttributeError: raise KeyError, key
self.cache[key]=r
@@ -215,9 +214,14 @@
return v.__render_with_namespace__(self)
vbase = getattr(v, 'aq_base', v)
if callable(vbase):
- if getattr(vbase, 'isDocTemp', None):
- return v(None, self)
- return v()
+ try:
+ if getattr(vbase, 'isDocTemp', 0):
+ v = v(None, self)
+ else:
+ v = v()
+ except AttributeError, n:
+ if n != '__call__':
+ raise
return v
def has_key(self,key):