Python: Como espiar um objeto pty para evitar o bloqueio?

Estou usandopty para ler sem bloquear o stdout de um processo como este:

import os
import pty
import subprocess

master, slave = pty.openpty()

p = subprocess.Popen(cmd, stdout = slave)

stdout = os.fdopen(master)
while True:
    if p.poll() != None:
        break

    print stdout.readline() 

stdout.close()

Tudo funciona bem, exceto que owhile-loop bloqueia ocasionalmente. Isso se deve ao fato de a linhaprint stdout.readline() está esperando que algo seja lido emstdout. Mas se o programa já tiver terminado, meu pequeno script ficará suspenso para sempr

Minha pergunta é: Existe uma maneira de espiar ostdout objeto e verifique se há dados disponíveis para serem lidos? Se não for esse o caso, deve continuar com owhile-loop onde descobrirá que o processo realmente já terminou e interromperá o cicl

questionAnswers(2)

yourAnswerToTheQuestion