[Python-Dev] folding cElementTree behind ElementTree in 3.3

Nick Coghlan ncoghlan at gmail.com
Tue Feb 14 05:16:59 CET 2012


On Tue, Feb 14, 2012 at 1:42 PM, Eli Bendersky <eliben at gmail.com> wrote:
> An open question remains on whether to deprecate cElementTree, now that this
> change is in place.
>
> Currently in 3.3 the whole cElementTree module is:
>
>   # Deprecated alias for xml.etree.ElementTree
>
>   from xml.etree.ElementTree import *
>
> Would it be alright to issue a DeprecationWarning if this module is
> imported? Then hopefully a couple of releases after 3.3 we can just dump it.

What do we really gain by dumping it, though? Just add a CPython
specific test that ensures:

    for key, value in xml.etree.ElementTree.__dict__.items():
        self.assertIs(getattr(xml.etree.cElementTree, key), value)

and then ignore it for the next decade or so.

Programmatic deprecation is a significant imposition on third party
developers and should really be reserved for APIs that actively
encourage writing broken code (e.g. contextlib.nested) or are
seriously problematic for python-dev to maintain. For cleanup stuff,
documented deprecation is sufficient.

Something that might be worth doing (although it would likely scare
the peanut gallery) is to create a PEP 4000 to record the various
cleanup tasks (like dropping cElementTree) that are being deliberately
excluded from the 3.x series.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Python-Dev mailing list