Author jackjansen
Recipients jackjansen
Date 2018-10-09.09:32:14
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1539077535.05.0.545547206417.issue34941@psf.upfronthosting.co.za>
In-reply-to
Content
When using a TreeBuilder with a custom factory (returning a subclass of Element with some extra functionality) there is an issue with findall().

XPaths using an indexed predicate no longer work: the findall() result is always empty. The attached test script shows the problem.

I have analysed this as far as finding that the issue is in ElementPath.prepare_predicate.<locals>.select(), the last one. Specifically, the statement
    elems = list(parent.findall(elem.tag))
always returns an empty list (if the Element class is subclassed).

When using Python 2.7 everything works fine. When adding a findall() method to the Element subclass that simply calls Element.findall() everything also works fine. I suspect some issue with the _elementtree C implementation but I don't understand it.
History
Date User Action Args
2018-10-09 09:32:15jackjansensetrecipients: + jackjansen
2018-10-09 09:32:15jackjansensetmessageid: <1539077535.05.0.545547206417.issue34941@psf.upfronthosting.co.za>
2018-10-09 09:32:14jackjansenlinkissue34941 messages
2018-10-09 09:32:14jackjansencreate