2012-05-15 10 views
10

Mi piacerebbe utilizzare un modulo di tipo aspettato in python3. Per quanto ne so, né pexpect né fabric funzionano con python3. C'è qualche pacchetto simile che posso usare? (Se no, qualcuno sa se il supporto per py3 è sulla roadmap di qualsiasi progetto?)Esiste un'implementazione di "expect" o una libreria di tipo expectet che funzioni in python3?

Non è necessario un set di funzioni perfettamente sovrapposte. Non penso che il mio caso d'uso sia necessario qui, ma fondamentalmente sto reimplementando uno script Linux expect che fa un telnet con alcuni comandi forniti da config, ma estendendo le funzionalità.

+4

hai provato a usare 2to3 su pexpect per vedere se funziona? L'aspettativa di forchetta http://pypi.python.org/pypi/pexpect-u/ dice che funziona in questo modo, quindi forse anche aspettarsi. –

+1

@NiekdeKlein, 2to3 è uno strumento molto semplice che non tiene conto di molti problemi diversi; Sarei sbalordito se un progetto delle dimensioni di pexpect "funziona" semplicemente eseguendo semplicemente 2to3. Anche se questo sembra "funzionare", come puoi aspettarti di ottenere supporto dall'autore se qualcosa è andato storto? A proposito, per tutti gli scopi essenziali, pexpect è stato abbandonato da Noah ... il suo ultimo commit di codice sourceforge è stato nel 2008 –

+0

@Mike Pennington Stavo solo dicendo che ha funzionato per un fork di pexpect, quindi c'è una possibilità che funzioni anche per pexpect stesso. Ci vuole tempo minimo per testarlo (basta eseguire il programma e vedere se funziona). Se non lo fa, nessun danno fatto. Se lo fa, tanto meglio. –

risposta

8

Come accennato Niek, ho portato pexpect, e lo ha chiamato pexpect-u (u per Unicode):

http://pypi.python.org/pypi/pexpect-u/

utilizza 2to3, ma ho dovuto fare alcune modifiche al codice pure prima che funzionasse.

Non sono molto interessato a mantenerlo, ma non sono riuscito a mettermi in contatto con l'autore di pexpect e ho ritenuto che fosse abbastanza utile per essere pubblicato. Se sei interessato a lavorarci su, il codice è on Bitbucket. Il mio stesso bisogno era molto semplice, quindi potrebbero esserci bug che non ho trovato.

+0

Come sottolinea @belacqua in un'altra risposta, Pexpect-u è ora defunto e Pexpect stesso supporta Python 3. –

2

Fortunatamente, pexpect ora supporta python 3 (a partire dal 2013 se non prima).

Sembra che @ThomasK sia stato in grado di aggiungere la sua funzionalità pexpect-u Python 3 (con alcune modifiche API) al progetto principale. (Grazie Thomas!)

Problemi correlati