![](https://secure.gravatar.com/avatar/f4000f809d992bcd8d75b0c5ebbaec6a.jpg?s=120&d=mm&r=g)
Hi again, I have found another quirk in lxml.etree.parse: it should be able to open file-like objects that don't have a name or filename attribute (or have an empty string), eg: urlgrabber.urlopen('http://python.org/channews.rdf') This is used in bzr to branch from a remote (http) repository. Thus I updated the testcase [1] and the previous patch [attached] to handle this case. Some more (meaningless) benchmarks: ogrisel@localhost:~/Developments $ time python bzr.dev-lxml/bzr branch bzr.dev bzr.test-branch-lxml Added 1210 texts. Added 720 inventories. Added 720 revisions. real 0m27.188s user 0m22.039s sys 0m2.325s ogrisel@localhost:~/Developments $ time python bzr.dev/bzr branch bzr.dev bzr.test-branch-cetree Added 1210 texts. Added 720 inventories. Added 720 revisions. real 0m19.436s user 0m16.907s sys 0m2.076s On this case (local branching) the cElementTree version is significantly faster. I don't have the time to investigate why this benchmark gives a so different result compared to the 'bzr log' case. [1] http://codespeak.net/svn/lxml/testcase/unittests/test_grisel.py regards, -- Olivier