[merge] python 2.5 fixes

John Arbash Meinel john at arbash-meinel.com
Wed Sep 27 18:38:18 BST 2006


Martin Pool wrote:
> On 25 Sep 2006, John Arbash Meinel <john at arbash-meinel.com> wrote:
>>> It also cleans up some code that tries to access elementtree's
>>> ElementTree class, as opposed othte one from cElementTree.  As far as I
>>> can see they're the same thing - is there some reason why we can't just
>>> import the name once?  Anyhow, with this change it passes tests on both
>>> 2.4 and 2.5.
>> -1 to your changes.
>>
>> Actually, they aren't the same thing. The elementtree class is at
>> elementtree.ElementTree.ElementTree()
> 
> OK.  Very suboptimal naming there.  How about changing it to use the
> xml.etree. classes, but removing the rest of the patch?  Since
> cElementTree ships with python2.5 it seems perverse not to use it.
> 

I completely agree. We definitely want to use cElementTree if it can be
found.


>> Also, as part of my 'improve startup times' work, I would like for us to
>> modify our copy of ElementTree to avoid compiling a nasty regex that
>> costs us a lot of startup time, and then install the modified version as
>> the 'official' version. (It would be api consistent with the original,
>> just a couple modifications to make it load faster).
>>
>> If you don't want to change the ElementTree sources (which I think we
>> should, and contribute the changes upstream). I can modify
>> 're.compile()' before importing elementtree, and then restore it afterwards.
> 
> I'm not sure what you mean by "installing the modified version as the
> official version."  I'm in favour of sending changes upstream to them.
> 
> One problem with shipping a changed version of the ElementTree source is
> that then we need to either
> 
>  - do without cElementTree
>  - or require a C compiler to install
>  - or use the system's cElementTree but our own ElementTree
> 

We just need to import our ElementTree before cElementTree, and install
it as 'sys.modules["elementtree"] = bzrlib.utils.elementtree'

cElementTree uses python ElementTree for writing. we've changed our
serialization code so we don't depend on raw ElementTree at all.

You have my +1 to changing the import code.

John
=:->


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060927/f54d9372/attachment.pgp 


More information about the bazaar mailing list