[Zope-dev] zope.pagetemplate new install dependencies introduced since 3.5.0 and a modest proposal.

Tim Hoffman zutesmog at gmail.com
Thu Aug 12 01:36:18 EDT 2010


Hi

I have been using zope.pagetemplate for quite some time within repoze.bfg
projects and bobo (+zope.component) on google appengine
(python 2.5.x). I have just been doing some upgrades etc... and discovered
that zope.pagetemplate in 3.5.2 has introduced a whole heap of new
dependancies.

In 3.5.0 non testing install requirements where

setuptools
zope.interface
zope.tales
zope.tal

where as 3.5.2 install requires

setuptools
zope.interface
zope.component
zope.security [untrustedpython]
zope.tales
zope.tal
zope.i18n
zope.i18nmessageid
zope.traversing


Now I already had i18n, i18nmessageid and zope.component, zope.interface as
I was already using them, but now zope.security and zope.traversing means I
also now get

zope.browser-1.3-py2.5.egg
zope.contenttype-3.5.1-py2.5.egg
zope.exceptions-3.6.1-py2.5.egg
zope.location-3.9.0-py2.5.egg
zope.publisher-3.12.4-py2.5.egg
zope.security-3.7.3-py2.5-linux-x86_64.egg
zope.traversing-3.13-py2.5.egg
zope.proxy-3.6.1-py2.5-linux-x86_64.egg

I know that zope.pagetemplate.engine actually had a dependency on
zope.traversing but this was never expressed in the EGG-INFO/requires.txt in
3.5.0.  I used my own engine given I always running trusted code.  (I am
using metal as well).

So now for my modest proposal,  do you think it would be feasible to move
the restricted engine implementations out of zope.pagetemplate.engine and
into some higher level package and provide a simple trusted engine that
anyone can use (that supports metal as well)

As the architecture.txt  for zope.pagetemplate says

- An *expression engine* is responsible for compiling expressions and
  for creating expression execution contexts.  It is common for
  applications to override expression engines to provide custom
  expression support or to change the way expressions are implemented.
  The `zope.app.pagetemplate` package uses this to implement trusted
  and untrusted evaluation; a different engine is used for each, with
  different implementations of the same type of expressions.

So maybe the best place for the full expression engines would be
zope.app.pagetemplate.

This would seem to be in keeping with a lot of the work, breaking down core
zope technologies into re-usable (outside of a pure zope stack) components.

This would in theory bring the dependencies back down to

zope.interface
zope.tales
zope.tal
zope.i18n
zope.i18nmessageid

If people think this is a good idea, I am quite willing work on this (with
guidance ;-), so thoughts, comments welcome.

TIA

Tim Hoffman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.zope.org/pipermail/zope-dev/attachments/20100812/fe43f53b/attachment.html 


More information about the Zope-Dev mailing list