cópia profunda de um gerador em python
Estou usando uma função geradora, digamos:
def foo():
i=0
while (i<10):
i+=1
yield i
Agora, eu gostaria da opção de copiar o gerador após qualquer número de iterações, para que a nova cópia retenha o estado interno (terá o mesmo 'i' no exemplo), mas agora será independente do original (ou seja, iterando sobre a cópia não deve alterar o original).
Eu tentei usarcopy.deepcopy
mas eu recebo o erro:
"TypeError: object.__new__(generator) is not safe, use generator.__new__()"
Obviamente, eu poderia resolver isso usando funções regulares com contadores, por exemplo. Mas estou realmente procurando uma solução usando geradores.