[ZPT] CVS: Zope3/lib/python/Zope/TAL - TALInterpreter.py:1.63.10.7
Jim Fulton
jim@zope.com
Thu, 23 May 2002 14:01:23 -0400
Update of /cvs-repository/Zope3/lib/python/Zope/TAL
In directory cvs.zope.org:/tmp/cvs-serv26429/lib/python/Zope/TAL
Modified Files:
Tag: Zope-3x-branch
TALInterpreter.py
Log Message:
This all started with wanting to be able to use url;view in a ZPT path. :)
That lead me to:
- Massive traversal refactoring.
Namespace handling is now centralized in Zope.App.Traversing.
- ZPT refactoring, including some renaming that touches pretty much everything. :)
- The application specific ZPT support was moved into
Zope.App.PageTemplate.
- To get page template files (for use in views):
from Zope.App.PageTemplate import ViewPageTemplateFile
- Fixed up security so that ZPT expressions only have access to
safe builtins and so that modules namespace does imports safely.
- Got ZPTPage working!
- renaming url to absolute_url and got absolute_url to work in paths.
- Cleaned up the (as yet unused) RestrictedInterpreter module in
Zope.Security. In particular, changed to use a separate
RestrictedBuiltins module.
=== Zope3/lib/python/Zope/TAL/TALInterpreter.py 1.63.10.6 => 1.63.10.7 ===
self.program = program
self.macros = macros
- self.engine = engine
+ self.engine = engine # Execution engine (aka context)
self.Default = engine.getDefault()
self.stream = stream or sys.stdout
self._stream_write = self.stream.write
@@ -446,6 +446,16 @@
else:
self.insertXMLStructure(text, repldict)
bytecode_handlers["insertStructure"] = do_insertStructure
+
+
+# XXX There is a bug in the dance between TALInterpreter and TALES.
+# TALInterpreter expects contexts to also be engines. When someone
+# inserts structure, the structure can, apparently have TAL, because
+# the TAL compiler is used. If there was TAL, it would try to use the
+# engine, which is a context, to compile expressions found. The TALES
+# context is not a compiler. Is this a YAGNI?
+
+
def insertHTMLStructure(self, text, repldict):
from HTMLTALParser import HTMLTALParser