ProHoster > Blog > Amministrazione > Fà Python è Bash Friendship: Liberazione di e librerie python-shell è smart-env v. 1.0.1
Fà Python è Bash Friendship: Liberazione di e librerie python-shell è smart-env v. 1.0.1
Bon ghjornu à tutti !
29 Februdu 2020 anni A micro-liberazione ufficiale di e biblioteche hè stata smart-env и python-shell. Per quelli chì ùn sò micca in u sapè, vi cunsigliu di leghje prima primu postu.
In breve, i cambiamenti includenu cumandante cumpletu, capacità ampliate per l'esecuzione di cumandamenti, qualchì refactoring è correzioni di bug.
Per i dettagli, vede cat.
Chì ci hè di novu in python-shell?
Cuminciaraghju subitu cù u dessert.
Cumandamentu cumpletu
D'accordu - hè cunvenutu quandu l'editore / IDE / terminal vi invita per u nome di u cumandamentu, è qualchì volta ancu i paràmetri di chjama? Allora python-shell progressa gradualmente in furnisce funziunalità simili. A causa di u fattu chì i campi di a classa Shell sottu u cappucciu sò de-facto micca i so campi (l'ubiquitous __getattr__), l'autocompletion hè statu ancu creatu da zero (per sopra à u metudu __dir__, rispettivamente). L'autocompletion funziona attualmente in ambienti BPython è IPython. Di sicuru, mi piacerebbe vede l'integrazione cù prudutti più venerabili cum'è PyCharm, è e pussibilità di implementazione sò studiate in questa direzzione.
Aghjunghje proprietà
Comu parte di a liberazione, a classe Shell hà ricevutu una nova pruprietà last_command. A nicissità hè stata perchè quandu una ShellException hè stata lanciata da un cumandamentu cù un codice di ritornu micca zero, l'ughjettu Command ùn hè micca tornatu da a chjama __call__() à l'ughjettu di cumandamentu. Avà ci hè l'uppurtunità di fà questu:
A lista di pruprietà di l'ughjettu Command hè ancu allargata. Aggiuntu un campu d'errore chì torna l'output di cumandamentu à u flussu di errore.
Esecuzione di cumandamenti cù nomi Python invalidi
Quasi ogni sistema hà almenu un prugramma chì u nome ùn hè micca adattatu cum'è identificatore in Python (per esempiu, a famosa utilità 2to3). Chjamala cun
Shell.2to3()
S'ellu ùn funziona micca, l'interprete ùn lasciarà micca.
A suluzione hè di chjamà u cumandamentu in una manera rotonda:
Shell("2to3") # возвращает объект команды
Hè da nutà chì in u listessu modu pudete eseguisce cumandamenti chì sò validi da u puntu di vista di l'interprete, chì lascia l'uppurtunità di creà script flexible cum'è
I metudi __repr__() è __str__() di l'ughjettu di classa Command sò stati implementati, chì avà pruducenu valori intuitivi (un cumandamentu cù parametri è u so stdout output, rispettivamente).
Correzioni di codice minori.
Aghjunghjendu a copertura di teste, è ancu riurganizà quelli esistenti.
Aghjunghjendu e classi Subprocess è Process, u scopu di quale hè di creà un livellu supplementu di astrazione quandu travaglia cù u modulu di sottoprocessu. Soprattuttu necessariu per eliminà a duplicazione di codice quandu travaglia cù Python 2/3, ma pò ancu furnisce altre bonus.
Chì ci hè di novu in smart-env?
A cuntrariu di python-shell, ci sò stati menu cambiamenti in a biblioteca smart-env. U mutivu di questu hè simplice - a mancanza di tempu liberu, durante quale alcune potenziali migliure (per esempiu, l'autocompletion di variabili di l'ambiente) sò stati spustati à a prossima versione.
In fatti, i seguenti cambiamenti sò stati fatti à a biblioteca:
Correzioni di codice minori.
Refactoring.
Riurganizazione è raffinamentu di e teste esistenti.
Piani per e prossime versioni
libreria python-shell
Agghiuncennu supportu per e chjama di cumandamenti senza bloccu (parallelizazione di l'esekzione).
biblioteca smart-env
Implementazione di l'autocompletion di variabili di l'ambiente in a classa ENV.
Supportu per l'operatore in per verificà l'esistenza di una variabile env.
Implementazione di supportu per e funzioni str() è repr() per a classa ENV.
E date di e prossime versioni seranu ulteriormente annunziate in i seguenti canali di cumunicazione: