[Python-Dev] Py2.5 issue: decimal context manager misimplemented, misdesigned, and misdocumented

Raymond Hettinger rhettinger at ewtllc.com
Fri Sep 1 19:56:17 CEST 2006


>>> The right way to do it was presented in PEP343.  The implementation 
>>> was correct and the API was simple.
>>
>>
>>
>> Raymond's persuaded me that he's right on the API part at the very 
>> least. The current API was a mechanical replacement of the initial 
>> __context__ based API with a normal method, whereas I should have 
>> reverted back to the module-level localcontext() function from PEP343 
>> and thrown the method on Context objects away entirely.
>>
>> I can fix it on the trunk (and add those missing tests!), but I'll 
>> need Anthony and/or Neal's permission to backport it and remove the 
>> get_manager() method from Python 2.5 before we get stuck with it 
>> forever.
>
>
>
> I committed this fix as 51664 on the trunk (although the docstrings 
> are still example free because doctest doesn't understand __future__ 
> statements).
>

Thanks for getting this done.

Please make the following changes:
* rename ContextManger to _ContextManger and remove it from the __all__ 
listing
* move the copy() step from localcontext() to _ContextManager()
* make the trivial updates the whatsnew25 example

Once those nits are fixed, I recommend this patch be backported to the 
Py2.5 release.


Raymond


More information about the Python-Dev mailing list