Log message for revision 65687: moved Engine out Changed: U Products.Five/trunk/browser/pagetemplatefile.py
-=- Modified: Products.Five/trunk/browser/pagetemplatefile.py =================================================================== --- Products.Five/trunk/browser/pagetemplatefile.py 2006-03-01 23:07:10 UTC (rev 65686) +++ Products.Five/trunk/browser/pagetemplatefile.py 2006-03-01 23:07:35 UTC (rev 65687) @@ -26,71 +26,7 @@ from Products.Five.browser.ReuseUtils import rebindFunction from Products.Five.browser.TrustedExpression import getEngine, ModuleImporter -from zope.tales.tales import ExpressionEngine -from zope.tales.expressions import PathExpr, StringExpr, NotExpr, DeferExpr, SubPathExpr -from zope.tales.expressions import SimpleModuleImporter, _marker -from zope.tales.pythonexpr import PythonExpr -from zope.tales.tales import _valid_name, _parse_expr, NAME_RE, Undefined - -def BoboTraverseAwareSimpleTraverse(object, path_items, econtext): - """ a slightly modified version of zope.tales.expressions.simpleTraverse() - that interacts correctly with objects implementing bobo_traverse(). - """ - - for name in path_items: - next = getattr(object, name, _marker) - if next is not _marker: - object = next - else: - try: - object = object.restrictedTraverse(name) - except (KeyError, AttributeError): - try: - object = object[name] - except: - object = getattr(object, name) - - return object - - -class PathExpr(PathExpr): - """We need to subclass PathExpr at this point since there is no other - away to pass our own traverser because we do not instantiate - PathExpr on our own...this sucks! - """ - - def __init__(self, name, expr, engine, traverser=BoboTraverseAwareSimpleTraverse): - self._s = expr - self._name = name - paths = expr.split('|') - self._subexprs = [] - add = self._subexprs.append - for i in range(len(paths)): - path = paths[i].lstrip() - if _parse_expr(path): - # This part is the start of another expression type, - # so glue it back together and compile it. - add(engine.compile('|'.join(paths[i:]).lstrip())) - break - add(SubPathExpr(path, traverser, engine)._eval) - - -def Engine(): - e = ExpressionEngine() - reg = e.registerType - for pt in PathExpr._default_type_names: - reg(pt, PathExpr) - reg('string', StringExpr) - reg('python', PythonExpr) - reg('not', NotExpr) - reg('defer', DeferExpr) - e.registerBaseName('modules', SimpleModuleImporter()) - return e - -Engine = Engine() - - class ZopeTwoPageTemplateFile(PageTemplateFile): """A strange hybrid between Zope 2 and Zope 3 page template. @@ -134,9 +70,6 @@ pt_render = rebindFunction(PageTemplateFile.pt_render, getEngine=getEngine) - def pt_getEngine(self): - return Engine - def _pt_getContext(self): try: root = self.getPhysicalRoot() _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins