Message290143
Humph, that is definitely not the expected result. The itertools copy/reduce support has been a never-ending source of bugs and headaches.
It looks like the problem is that __reduce__ is returning the existing tuple iterator rather than a new one:
>>> a = chain([1,2,3], [4,5,6])
>>> b = copy(a)
>>> next(a)
1
>>> a.__reduce__()
(<class 'itertools.chain'>, (), (<tuple_iterator object at 0x104ee78d0>, <list_iterator object at 0x104f81b70>))
>>> b.__reduce__()
(<class 'itertools.chain'>, (), (<tuple_iterator object at 0x104ee78d0>,)) |
|
Date |
User |
Action |
Args |
2017-03-24 21:19:37 | rhettinger | set | recipients:
+ rhettinger, kristjan.jonsson, serhiy.storchaka, MSeifert |
2017-03-24 21:19:37 | rhettinger | set | messageid: <1490390377.08.0.380485200808.issue29897@psf.upfronthosting.co.za> |
2017-03-24 21:19:37 | rhettinger | link | issue29897 messages |
2017-03-24 21:19:36 | rhettinger | create | |
|