Jim Penny wrote:
Hate this.  Looks like a typecast of some kind, int is way to overused
for this.  If you must, why not index:  ?

Hmmm. I hadn't thought of that before, but I've certainly wanted to tell the path traverser whether to use attribute, index, or key access on several occasions (using 'items' as a dictionary key bites me regularly). This suggests the following prefixes:

'key:' -- use item access with the prefixed string.
'index:' -- use item access with the prefixed integer.
'attr:' -- use attribute access with the prefixed string.

In each case, the path traversal fails if the specified access method fails, rather than trying other access methods. This would allow "options/a_mapping/key:items/index:0" rather than "python:options['a_mapping']['items'][0]".

There's an alternative, longer syntax that would be more consistent with the adapter concept from Zope 3. Given that prefixes are meant to be namespaces, 'key', 'index', and 'attr' should be elements of a namespace (perhaps 'by' or 'as' to keep it reasonably short) rather than prefixes themselves. In this case, we would have the path expression "options/a_mapping/by:key/items/by:index/0". Note that this form has the advantage of allowing "a_list/by:index/?i".


Evan @ 4-am

Zope-Dev maillist - [EMAIL PROTECTED]
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to