En python, ¿puedo generar perezosamente copias de un iterador usando tee?

Estoy tratando de crear un iterador que crea perezosamente (potencialmente infinitas) copias de un iterador. es posible?

Sé que puedo crear cualquier número finito fijo de copias simplemente haciendo

iter_copies = tee(my_iter, n=10)

pero esto se rompe si no sabes n de antemano o si n es infinito.

Por lo general, intentaría algo en la línea de

def inf_tee(my_iter):
    while True:
        yield tee(my_iter)[1]

Pero la documentación indica que después de usar tee en un iterador, el iterador original ya no se puede usar, por lo que esto no funcionará.

En caso de que esté interesado en la aplicación: la idea es crear un vagounzip función, potencialmente para uso enpytoolz. Mi implementación actual puede manejar un número finito de iteradores infinitos (que es mejor que simplezip(*seq)), pero no un número infinito de iteradores infinitos. Aquí esta lasolicitud de extracción Si estás interesado en los detalles.

Respuestas a la pregunta(1)

Su respuesta a la pregunta