[Python-Dev] Negative times behaviour in itertools.repeat for Python maintenance releases (2.7, 3.3 and maybe 3.4)

Larry Hastings larry at hastings.org
Wed Jan 29 03:50:50 CET 2014


On 01/28/2014 06:18 AM, Ethan Furman wrote:
> On 01/28/2014 04:37 AM, Steven D'Aprano wrote:
>> On Mon, Jan 27, 2014 at 10:06:57PM -0800, Larry Hastings wrote:
>>>     .. note:  if "times" is specified using a keyword argument, and
>>>     provided with a negative value, repeat yields the object forever.
>>>     This is a bug, its use is unsupported, and this behavior may be
>>>     removed in a future version of Python.
>>
>> How about changing "may be removed" to "will be removed", he asks
>> hopefully? :-)
>
> +1


See the recent discussion "Deprecation policy" right here in python-dev 
for a cogent discussion on this issue.  I agree with Raymond's view, 
posted on 1/25:

    * A good use for deprecations is for features that were flat-out
    misdesigned
    and prone to error.  For those, there is nothing wrong with
    deprecating them
    right away.  Once deprecated though, there doesn't need to be a rush to
    actually remove it -- that just makes it harder for people with
    currently
    working code to upgrade to newer versions of Python.

    * When I became a core developer well over a decade ago, I was a little
    deprecation happy (old stuff must go, keep everything nice and
    clean, etc).
    What I learned though is that deprecations are very hard on users
    and that
    the purported benefits usually aren't really important.

I think the "times behaves differently when passed by name versus passed 
by position" behavior falls exactly into this category, and its advice 
on how to handle it is sound.

Cheers,


//arry/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20140128/5aa08894/attachment.html>


More information about the Python-Dev mailing list