Issue 12321: documentation of ElementTree.find (original) (raw)

Created on 2011-06-13 09:49 by patrick.vrijlandt, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (4)
msg138228 - (view) Author: patrick vrijlandt (patrick.vrijlandt) Date: 2011-06-13 09:49
From the python docs for version 3.2: 19.12.3. ElementTree Objects find(match) [...] Same as getroot().find(match). [...] This is not true: tree.find accepts an absolute path (like "/*") , whereas element.find doesn't. Also applies to findall and findtext.
msg138559 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2011-06-17 23:04
Are you requesting that the doc be changed or the code? From the title, I would infer the doc (which is much easier ;-). If so, can you suggest an actual revised text?
msg138653 - (view) Author: patrick vrijlandt (patrick.vrijlandt) Date: 2011-06-19 18:16
[...] Same as getroot().find(match). [...] -> [...] For a relative path, this is equivalent to getroot().find(match). Additionally, this form accepts an absolute path. [...] This is easy, but might not be a very good solution. Random thoughts/Points to consider: It does help the novice in debugging his expressions. A peculiarity of this implementation is documented. As others have stated, the whole elementpath documentation within the python docs is incomplete. Should we document the exception but not the rule? It makes no real sense to do a an absolute search from an element. However, it's not ambiguous. lxml does accept the absolute path search from an element. Actually, I think it's up to Fredrik to decide. 2011/6/18 Terry J. Reedy <report@bugs.python.org> > > Terry J. Reedy <tjreedy@udel.edu> added the comment: > > Are you requesting that the doc be changed or the code? > >From the title, I would infer the doc (which is much easier ;-). > If so, can you suggest an actual revised text? > > ---------- > nosy: +terry.reedy > stage: -> needs patch > versions: +Python 3.3 > > _______________________________________ > Python tracker <report@bugs.python.org> > <http://bugs.python.org/issue12321> > _______________________________________ >
msg172881 - (view) Author: Eli Bendersky (eli.bendersky) * (Python committer) Date: 2012-10-14 13:30
I think this may be intentional. Absolute searches on a ElementTree are discouraged with a warning: def find(self, path, namespaces=None): # assert self._root is not None if path[:1] == "/": path = "." + path warnings.warn( "This search is broken in 1.3 and earlier, and will be " "fixed in a future version. If you rely on the current " "behaviour, change it to %r" % path, FutureWarning, stacklevel=2 ) return self._root.find(path, namespaces) See what happens when an "absolute path" is attemped? The code just hacks it into a relative path and prints a menacing warning. So, I would not change the documentation at this point. However, the problem should go away if and when the XPath support is improved to really support absolute paths.
History
Date User Action Args
2022-04-11 14:57:18 admin set github: 56530
2012-10-14 13:30:51 eli.bendersky set status: open -> closedresolution: wont fixmessages: + stage: needs patch -> resolved
2012-10-14 13:19:47 eli.bendersky set versions: + Python 3.4
2012-10-14 13:19:39 eli.bendersky set files: - unnamed
2012-09-15 23:29:51 ezio.melotti set keywords: + easy
2012-07-21 14:11:47 flox set nosy: + eli.bendersky
2011-06-19 18:16:17 patrick.vrijlandt set files: + unnamedmessages: +
2011-06-17 23:04:20 terry.reedy set versions: + Python 3.3nosy: + terry.reedymessages: + stage: needs patch
2011-06-13 12:59:21 pitrou set nosy: + flox
2011-06-13 09:49:21 patrick.vrijlandt create