<br><br><div class="gmail_quote"><div dir="ltr">בתאריך יום ג׳, 17 באוק׳ 2017, 00:13, מאת Terry Reedy ‏<<a href="mailto:tjreedy@udel.edu">tjreedy@udel.edu</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 10/15/2017 9:12 PM, Jason Campbell wrote:<br>...  <br>
> itertools.cycle could use membership from the underlying iterable<br>
<br>
If the underlying iterable is an iterator, this does not work.  You<br>
could define a Cycle class that requires that the input have .__contain__.<br>
<br>
> itertools.repeat is even easier, just compare to the repeatable element<br>
<br>
Again, create a Repeat(ob) class whose .__iter__ returns repeat(ob) and<br>
that has .__contains__(x) returning 'x == ob'.<br>
<br>
> Does anyone else think this would be useful?<br>
<br>
itertools is not going to switch from iterators to non-iterator iterables.<br></blockquote></div><div><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div><div>It doesn't have to switch, and does not have to _require_ the input to define __contains__ method for the proposal to be meaningful. It can work with the same kind of iterables as its inputs, delegating whenever possible. I'm sure there are good reasons not to do it, but that's not an either/or decision.  </div><div><br></div><div>Elazar </div>