New submission from Nick Coghlan <ncogh...@gmail.com>:

This is a simpler proposal born out of https://bugs.python.org/issue31815: 
adding __length_hint__ implementations to some known-infinite iterators in 
itertools that always raise TypeError.

This means that iterator consumers that use the operator.length_hint() API will 
throw an error when asked to consume them, rather than entering an 
uninterruptible infinite loop.

The proposed methods added by this proposal would be:

* itertools.count.__length_hint__
* itertools.cycle.__length_hint__
* itertools.repeat.__length_hint__

Each of these would raise TypeError (to indicate an explicitly non-finite 
length), rather than returning the default of 0 (which length hint API 
consumers typically interpret as indicating an unknown-but-finite length)

----------
messages: 320229
nosy: ncoghlan, rhettinger
priority: normal
severity: normal
stage: needs patch
status: open
title: Raise TypeError in __length_hint__ for consistently infinite iterators
type: enhancement
versions: Python 3.8

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue33939>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to