I need to, given an IResource object that's in a site's resource tree, get its full URL (in order to generate links to it). Looking in twisted/web/resource.py, it appears that URL traversal is strictly one-way, with resources having no idea what their path component is, nor what their parent resource is.

157         def putChild(self, path, child):
158             """Register a static child.
159    
160             You almost certainly don't want '/' in your path. If you
161             intended to have the root of a folder, e.g. /foo/, you want
162             path to be ''.
163             """
164             self.children[path] = child
165             child.server = self.server

If putChild were extended a little bit, it could set some info on the child whenever it's "placed" into the tree, i.e.

165+       child.parent = self
165+       child.path = path

This would make possible a "getFullPath" method that iterates up the tree to the root, concatenating the parts with "/".

Does anyone see the value of this, if I were to subject such a patch? Obviously this is only relevant for statically-routed resources.