Working towards retiring PyXML

Nick Coghlan ncoghlan at
Tue Jul 31 07:21:15 UTC 2012

On 07/31/2012 03:16 PM, Toshio Kuratomi wrote:
> On Fri, Jul 27, 2012 at 12:27:31PM +1000, Nick Coghlan wrote:
>> On 07/27/2012 07:28 AM, David Malcolm wrote:
>>> With my proposed approach, you have to opt-in, your code can say: when I
>>> say "xml", I really mean "xml", not "_xmlplus".
>> You can do much the same thing at the application level without patching
>> the stdlib:
>> import xml
>> xml.__path__.reverse() # If both are available, prefer stdlib over PyXML
>> The key point is to keep both path fragments, and just rearrange the
>> order so the standard lib if first. That way the PyXML-only stuff will
>> still be accessible, but the stdlib will be preferred for any name
>> conflicts in package level components that get imported after the path
>> reversal.
> Thanks, Nick!
> I just patched docutils with this and submitted the patch to docutils
> upstream.  Works in my testing.

It occurs to me that this will behave a little strangely if two
different libraries in the same process try to make the same change.

A more robust check would be:

if "_xmlplus" in xml.__path__[0]: xml.__path__.reverse()


Nick Coghlan
Red Hat Infrastructure Engineering & Development, Brisbane

More information about the python-devel mailing list