Como não perder o próximo elemento após itertools.takewhile ()

Digamos que desejamos processar um iterador e queremos manipulá-lo por partes.
A lógica por pedaço depende de pedaços previamente calculados, portantogroupby() não ajuda.

Nosso amigo nesse caso é itertools.takewhile ():

while True:
    chunk = itertools.takewhile(getNewChunkLogic(), myIterator)
    process(chunk)

O problema é quetakewhile() precisa ir além do último elemento que atenda à nova lógica de chunk, 'comendo' o primeiro elemento para o próximo chunk.

Existem várias soluções para isso, incluindo embalagem ou à la C'sungetc()etc ..
Minha pergunta é: existe umaelegante solução?

questionAnswers(2)

yourAnswerToTheQuestion