[Python-Dev] PyTypeObject type names in Modules/

Benjamin Peterson benjamin at python.org
Thu Jan 3 15:43:23 CET 2013


2013/1/3 Eli Bendersky <eliben at gmail.com>:
>
>
>> >>
>> >> 2013/1/1 Eli Bendersky <eliben at gmail.com>:
>> >> > Hello and happy 2013,
>> >> >
>> >> > Something I noticed earlier today is that some C versions of stdlib
>> >> > modules
>> >> > define their name similarly to the Python version in their
>> >> > PyTypeObject.
>> >> > Some examples: Decimal, xml.etree's Element. Others prepend an
>> >> > understore,
>> >> > like _pickle.Pickler and many others.
>> >> >
>> >>
>> >> I don't it's terribly important except if the object from the C module
>> >> is directly exposed through the API it's nicer if it's __name__
>> >> doesn't have a leading underscore.
>> >
>
>
> As a followup question: would it be considered a compatibility-breaking
> change to rename PyTypeObject names? As a concrete example, in
> Modules/_elementtree.c the name of Element_Type (essentially the
> xml.etree.ElementTree.Element replacement in C) is "Element". For the
> purpose of pickling/unpickling it should be named "_elementtree.Element" or
> "xml.etree.ElementTree.Element" or some such thing. Can such a change be
> made between 3.3 and 3.4? Between 3.3 and 3.3.1?

I don't know much about etree. Can you pickle Element?



-- 
Regards,
Benjamin


More information about the Python-Dev mailing list