[Python-Dev] public visibility of python-dev decisions "before it's too late" (was: PyCObject_AsVoidPtr removed from python 3.2 - is this documented?)

Larry Hastings larry at hastings.org
Wed Mar 16 16:02:28 CET 2011


On 03/09/2011 01:15 AM, Stefan Behnel wrote:
> I can confirm that the Cython project was as surprised of the 
> PyCapsule change in Python 3.2 as (I guess) most other users,

I was a bit surprised by it too, and I wrote the Capsule object.  (Well, 
hacked up CObject to give it a new API.)

PyCObject_AsVoidPtr emitted a PendingDeprecationWarning in 3.1.  I was 
surprised when it was removed completely in trunk shortly after the 
release of 3.1.  I thought it was supposed to get promoted to 
DeprecationWarning in 3.2 and then removed in 3.3.  But I'm not totally 
familiar with the policy subtleties of CPython, and the CObject API had 
enough flaws that I was happy to see it gone, so I kept a still tongue.


On 03/14/2011 06:30 PM, Lennart Regebro wrote:
> But if I move the PyCObject API to the PyCapsule
> API, the zope packages will **only work on Python 2.7 and 3.2**. This
> is obviously not an option. If I do *not* switch, I can't support
> Python 3.2. That's bad.

Sorry I didn't see your email until just now; I've been tuning out 
python-dev for a while.  Nick Coghlan brought this matter to my 
attention just this morning.

The PyCapsule API is very much like the CObject API.  In fact, in Python 
3.1 CObject was actually implemented on top of PyCapsule.  It should be 
very easy to support both APIs.

Are you still at PyCon?  I'm in the core / hg room, and I'd be happy to 
help you get this code working for both 2.6 and 3.2.

> **We can't deprecate an API in one version and drop the API in the
> next. This is not acceptable. The deprecation period must be much
> longer!**

The one-year deprecation period seems to be in keeping with PEP 5, which 
states

    There must be at least a one-year transition period between the
    release of the transitional version of Python and the release of the
    backwards incompatible version.


> Let's make no bones about this: The PyCObject API should *not* have
> been removed in 3.2. In fact, the removal should be reversed, and
> 3.2.1 should be released ASAP, making 3.2 a moot and unsupported
> version.

I'm not a release manager for Python but I suspect this is unlikely.


Nick has convinced me that I should create the world's first "temporal 
inversion" PEP, discussing the justification for adding the Capsule API 
and (eventually) removing the CObject API.  I expect the PEP to discuss 
coping strategies on how to simultaneously support 2.6 and 3.2.  I'm 
enjoying PyCon too much to write the PEP this week, but I expect I can 
have a draft up next week.

Personally I'm hoping the PEP will be rejected ;)


/larry/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20110316/1c036c03/attachment-0001.html>


More information about the Python-Dev mailing list