Subpath traversal interface (was RE: ANN: Python Methods 0.1.7 up and over to DC) up and over to DC)
At 11:01 AM 12/14/99 -0500, Michel Pelletier wrote:
-----Original Message----- From: Evan Simpson [mailto:evan@4-am.com]
I was a bit uncomfortable with both of these. In the case of "traverse_subpath", it wasn't clear to me how to decide whether to allow (and capture) direct traversal otherwise. I couldn't use property settings, since PMs don't have those, and I was reluctant to simply leave traversal always turned on. "special_formats" is sheer laziness on my part, since the dict was sitting there, ripe to be popped into the namespace, and with invalid identifiers for keys.
I think the desire we're trying to solve here is comming up with an interface, but to what, or at what level that interface should exist, is the nut of the problem.
It seems to me that what is wanted is a "traversable object", rather than a traversable method. That is, at least for the places where I've wanted to use such a thing, I wanted to be able to define a "__bobo_traverse__" with a PythonMethod. But then, I don't want the whole path from there either, I just want to be able to get the next element. In any case, it seems to me that the best way to do this is create a Traversable base class that can be used in ZClasses, that defers __bobo_traverse__ to a method name ZopeTraverse or some such. Then that method can be implemented in the ZClass however it is desired, whether by a PythonMethod, DTML method, or even an SQL method, if appropriate. IMHO, this doesn't belong in PythonMethods at all. (But then, I don't know what the contributor was using it for, so perhaps some input there would be useful.)
participants (1)
-
Phillip J. Eby