On Tue, 29 Jul 2003 16:43:21 -0400 Shane Hathaway <shane@zope.com> wrote:
[Paul Winkler]
I guess I don't understand the goal. Are we trying to make it so that zpt authors don't have to know any python?
[Chris Withers]
For me, that would be ideal...
[Paul Winkler]
I really think that's a mistake.
Guys, that line of thinking is a distraction. ZPT authors ought to learn Python. The issue is deeper than that. I'll explain below.
[Paul Winkler]
Assuming that TALES python expressions are banned/discouraged/whatever, [...]
Python expressions won't be banned. I will never consider them discouraged for all cases, either. There will always be a need for constructs like:
<div tal:condition="python: a == b">...</div> <div tal:condition="python: (a and b) or c">...</div>
However, the following is quite bad:
<tal:x define="ss nocall:modules/Products/PythonScripts/standard"> <a tal:attributes="href python: ss.url_quote(some_url)" /> </tal:x>
Frankly, would not even have occurred to me - I would probably create a tiny Script (Python) en passant, and called it directly, as: <a tal:attributes="href python: here.url_quote(some_url)" />. I did not realize that this is deprecated in Zope3.
This is un-Pythonic in numerous ways.
snip
<a tal:attributes="href here/format:url_quote" />
To me, that's a vast improvment, and it's only one example.
But, what does all of this have to do with index:, key:, int:, etc.? index: and key: are particularly interesting, in that they use different syntax for something that python conflates syntactically. That is, an integer indexed reference looks exactly like a string indexed reference, both have form structure[key]. Jim Penny