Ukwenza iPython kunye neBash Ubuhlobo: Ukukhutshwa kwe-python-shell kunye ne-smart-env v amathala eencwadi. 1.0.1

Usuku oluhle nonke!

29 Februwari iminyaka eyi-2020 ukukhululwa ngokusesikweni kwamathala eencwadi smart-env ΠΈ iqokobhe lepython. Kwabo bangaziyo, ndicebisa ukuba uyifunde kuqala ipowusti yokuqala.

Ngamafutshane, utshintsho lubandakanya ukugqitywa komyalelo, amandla okwandisiweyo okuqhuba imiyalelo, uhlengahlengiso oluthile kunye nokulungiswa kwebug.

Ngeenkcukacha nceda ubone ikati.

Yintoni entsha kwi-python-shell?

Ndizakuqala kwangoko nge dessert.

Ukugqitywa komyalelo

Vuma - iluncedo xa umhleli/IDE/terminal ikukhuthaza igama lomyalelo, kwaye ngamanye amaxesha neeparamitha zokufowuna? Ke i-python-shell ngokuthe ngcembe yenza inkqubela phambili ekuboneleleni ngokusebenza okufanayo. Ngenxa yokuba amasimi eklasi ye-Shell phantsi kwe-hood ayi-de-facto kungekhona amasimi ayo (i-ubiquitous __getattr__), ukugqitywa ngokuzenzekelayo kuye kwadalwa ukusuka ekuqaleni (ngokulayisha ngaphezulu kwe-__dir__ indlela, ngokulandelanayo). Ukuzigqibezela ngoku ngokuzenzekelayo kusebenza kwindawo ye-BPython kunye ne-IPython. Ewe kunjalo, ndingathanda ukubona ukudityaniswa kunye neemveliso ezibekeke ngakumbi njengePyCharm, kunye namathuba okuphunyezwa afundwa kweli cala.

Ukongeza iiPropati

Njengenxalenye yokukhululwa, iklasi yakwaShell ifumene ipropathi yomyalelo wokugqibela. Isidingo sayo savela ngenxa yokuba xa i-ShellException yaphoswa ngumyalelo ngekhowudi yokubuyisela engekho zero, into yoMyalelo ayizange ibuyiswe kwi-__call__ () ukufowunela into yomyalelo. Ngoku kukho ithuba lokwenza oku:

try:
    command = Shell.touch('/foo.txt')
except ShellException:
    command = Shell.last_command

Uluhlu lweepropati ze-Command object nalo lwandisiwe. Kongezwe indawo yeempazamo ebuyisela imveliso yomyalelo kumsinga wemposiso.

Imiyalelo esebenzayo enamagama angasebenziyo ePython

Phantse yonke inkqubo inobuncinci inkqubo enye egama layo lingafanelanga njengesazisi kwiPython (umzekelo, into eyaziwayo eyi-2to3). Mfownele naye

Shell.2to3()

Ukuba ayisebenzi, itoliki ayiyi kuyivumela idlule.
Isisombululo kukufowunela umyalelo ngendlela ejikelezayo:

Shell("2to3")  # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Kubalulekile ukuqaphela ukuba ngendlela efanayo ungaqhuba imiyalelo esebenzayo ngokwembono yetoliki, eshiya ithuba lokudala izikripthi eziguquguqukayo njenge

cmd = "python{}".format(sys.version_info[0])
Shell(cmd)(*args, **kwargs)

Utshintsho oluncinci

  • I __repr__() kunye __str__() iindlela zenjongo yeklasi yoMyalelo ziphunyeziwe, ezivelisa amaxabiso anengqondo (umyalelo oneparameters kunye nemveliso yayo yestdout, ngokulandelanayo).
  • Ukulungiswa kwekhowudi encinci.
  • Ukongeza i-coverage yovavanyo, kunye nohlengahlengiso olukhoyo.
  • Ukongeza i-Subprocess kunye neeklasi zeNkqubo, injongo yayo kukudala inqanaba elongezelelweyo lokukhupha xa usebenza kunye nemodyuli ye-subprocess. Ifuneka kakhulu ukuphelisa ukuphindaphinda ikhowudi xa usebenza nePython 2/3, kodwa inokubonelela ngezinye iibhonasi ngokunjalo.

Yintoni entsha kwi-smart-env?

Ngokungafaniyo ne-python-shell, kukho utshintsho oluncinci kwilayibrari ye-smart-env. Isizathu soku silula - ukungabikho kwexesha lamahhala, apho ezinye izinto ezinokuthi ziphuculwe (umzekelo, ukugqiba ngokuzenzekelayo kwezinto eziguquguqukayo zendalo) zihanjiswe kukhupho olulandelayo.

Enyanisweni, olu tshintsho lulandelayo lwenziwe kwithala leencwadi:

  • Ukulungiswa kwekhowudi encinci.
  • Refactoring.
  • Uhlengahlengiso kunye nokucokisa iimvavanyo ezikhoyo.

Izicwangciso zokukhutshwa okulandelayo

ilayibrari ye-python-shell

  • Ukongeza inkxaso yeefowuni zomyalelo ongathinteliyo (i-parallelization of execution).

smart-env ilayibrari

  • Ukuphunyezwa kokugqitywa ngokuzenzekelayo kwezinto eziguquguqukayo zemo engqongileyo kwiklasi ye-ENV.
  • Inkxaso kumsebenzisi ongaphakathi ukujonga ubukho benguquko ye-env.
  • Ukuphunyezwa kwenkxaso ye-str () kunye ne-repr () imisebenzi yodidi lwe-ENV.

Imihla yokukhutshwa okulandelayo iya kubhengezwa ngakumbi kula majelo onxibelelwano alandelayo:

umthombo: www.habr.com

Yongeza izimvo