Log message for revision 40701: removed Changed: D Zope/branches/ajung-zpt-integration/lib/python/Products/PageTemplates/PathIterator.py D Zope/branches/ajung-zpt-integration/lib/python/Products/PageTemplates/PythonExpr.py
-=- Deleted: Zope/branches/ajung-zpt-integration/lib/python/Products/PageTemplates/PathIterator.py =================================================================== --- Zope/branches/ajung-zpt-integration/lib/python/Products/PageTemplates/PathIterator.py 2005-12-11 13:08:03 UTC (rev 40700) +++ Zope/branches/ajung-zpt-integration/lib/python/Products/PageTemplates/PathIterator.py 2005-12-11 13:09:25 UTC (rev 40701) @@ -1,46 +0,0 @@ -############################################################################## -# -# Copyright (c) 2002 Zope Corporation and Contributors. All Rights Reserved. -# -# This software is subject to the provisions of the Zope Public License, -# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. -# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED -# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS -# FOR A PARTICULAR PURPOSE -# -############################################################################## - -"""Path Iterator - -A TALES Iterator with the ability to use first() and last() on -subpaths of elements. -""" - -__version__='$Revision: 1.4 $'[11:-2] - -import TALES -from Expressions import restrictedTraverse, Undefs, getSecurityManager - -class Iterator(TALES.Iterator): - def __bobo_traverse__(self, REQUEST, name): - if name in ('first', 'last'): - path = REQUEST['TraversalRequestNameStack'] - names = list(path) - names.reverse() - path[:] = [tuple(names)] - return getattr(self, name) - - def same_part(self, name, ob1, ob2): - if name is None: - return ob1 == ob2 - if isinstance(name, type('')): - name = name.split('/') - name = filter(None, name) - securityManager = getSecurityManager() - try: - ob1 = restrictedTraverse(ob1, name, securityManager) - ob2 = restrictedTraverse(ob2, name, securityManager) - except Undefs: - return 0 - return ob1 == ob2 Deleted: Zope/branches/ajung-zpt-integration/lib/python/Products/PageTemplates/PythonExpr.py =================================================================== --- Zope/branches/ajung-zpt-integration/lib/python/Products/PageTemplates/PythonExpr.py 2005-12-11 13:08:03 UTC (rev 40700) +++ Zope/branches/ajung-zpt-integration/lib/python/Products/PageTemplates/PythonExpr.py 2005-12-11 13:09:25 UTC (rev 40701) @@ -1,86 +0,0 @@ -############################################################################## -# -# Copyright (c) 2002 Zope Corporation and Contributors. All Rights Reserved. -# -# This software is subject to the provisions of the Zope Public License, -# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. -# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED -# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS -# FOR A PARTICULAR PURPOSE -# -############################################################################## - -"""Generic Python Expression Handler -""" - -__version__='$Revision: 1.13 $'[11:-2] - -from TALES import CompilerError -from sys import exc_info -from DeferExpr import DeferWrapper - -class getSecurityManager: - '''Null security manager''' - def validate(self, *args, **kwargs): - return 1 - addContext = removeContext = validate - -class PythonExpr: - def __init__(self, name, expr, engine): - self.expr = expr = expr.strip().replace('\n', ' ') - try: - d = {} - exec 'def f():\n return %s\n' % expr.strip() in d - self._f = d['f'] - except: - raise CompilerError, ('Python expression error:\n' - '%s: %s') % exc_info()[:2] - self._get_used_names() - - def _get_used_names(self): - self._f_varnames = vnames = [] - for vname in self._f.func_code.co_names: - if vname[0] not in '$_': - vnames.append(vname) - - def _bind_used_names(self, econtext, _marker=[]): - # Bind template variables - names = {'CONTEXTS': econtext.contexts} - vars = econtext.vars - getType = econtext.getCompiler().getTypes().get - for vname in self._f_varnames: - val = vars.get(vname, _marker) - if val is _marker: - has = val = getType(vname) - if has: - val = ExprTypeProxy(vname, val, econtext) - names[vname] = val - else: - names[vname] = val - for key, val in names.items(): - if isinstance(val, DeferWrapper): - names[key] = val() - return names - - def __call__(self, econtext): - __traceback_info__ = self.expr - f = self._f - f.func_globals.update(self._bind_used_names(econtext)) - return f() - - def __str__(self): - return 'Python expression "%s"' % self.expr - def __repr__(self): - return '<PythonExpr %s>' % self.expr - -class ExprTypeProxy: - '''Class that proxies access to an expression type handler''' - def __init__(self, name, handler, econtext): - self._name = name - self._handler = handler - self._econtext = econtext - def __call__(self, text): - return self._handler(self._name, text, - self._econtext.getCompiler())(self._econtext) - _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins