Ukwenza Ubungane be-Python ne-Bash: Ukukhishwa kwemitapo yolwazi ye-python-shell kanye ne-smart-env v. 1.0.1

Usuku oluhle nonke!

I-29 Februwari iminyaka engu-2020 ukukhishwa okusemthethweni kwemitapo yolwazi kwenzeka smart-env ΠΈ igobolondo le-python. Kulabo abangenalo ulwazi, ngiphakamisa ukuthi uyifunde kuqala okuthunyelwe kokuqala.

Ngamafuphi, izinguquko zibandakanya ukuqedwa komyalo, amandla anwetshiwe okusebenzisa imiyalo, okunye ukulungisa kabusha nokulungiswa kweziphazamisi.

Ukuze uthole imininingwane sicela ubone ikati.

Yini entsha kugobolondo le-python?

Ngizoqala manje nge-dessert.

Ukuqedwa komyalo

Vuma - kulula uma umhleli/IDE/itheminali ikutshela igama lomyalo, futhi ngezinye izikhathi ngisho namapharamitha wekholi? Ngakho-ke i-python-shell ithuthuka kancane kancane ekunikezeni ukusebenza okufanayo. Ngenxa yokuthi izinkambu zesigaba sakwaShell ngaphansi kwe-hood azizona izinkambu zayo (indawo yonke __getattr__), ukuqedela okuzenzakalelayo nakho kwadalwa kusukela ekuqaleni (ngokulayisha ngokweqile indlela __dir__, ngokulandelana). Ukuqedela ngokuzenzakalela okwamanje kusebenza ezindaweni ze-BPython ne-IPython. Vele, ngingathanda ukubona ukuhlanganiswa nemikhiqizo ehlonishwa kakhulu njenge-PyCharm, futhi amathuba okuqalisa afundwa ngale ndlela.

Ukwengeza izakhiwo

Njengengxenye yokukhululwa, ikilasi lakwaShell lithole indawo entsha ye-last_command. Isidingo saso saphakama ngoba lapho i-ShellException iphonswa ngomyalo onekhodi yokubuyisa engeyona iqanda, into yoMyalo ayizange ibuyiswe ukusuka ku-__call__() ucingo entweni yomyalo. Manje kukhona ithuba lokwenza lokhu:

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

Uhlu lwezakhiwo ze-Command object nalo lunwetshiwe. Kwengezwe inkambu yamaphutha ebuyisela umyalo ophumayo ekusakazweni kwephutha.

Isebenzisa imiyalo enamagama ePython angavumelekile

Cishe lonke uhlelo lunohlelo okungenani olulodwa olugama lalo lingafaneleki njengesihlonzi kuPython (isibonelo, insiza eyaziwa kakhulu ye-2to3). Amfonele naye

Shell.2to3()

Uma kungasebenzi, umhumushi ngeke akuvumele kudlule.
Isixazululo ukubiza umyalo ngendlela ezungezayo:

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

Kuyaphawuleka ukuthi ngendlela efanayo ungakwazi ukusebenzisa imiyalo esebenzayo ngokombono womhumushi, okushiya ithuba lokudala imibhalo eguquguqukayo njenge

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

Izinguquko ezincane

  • Izindlela __repr__() kanye __str__() zento ye-Command class ziye zasetshenziswa, manje ezikhiqiza amanani anembile (umyalo onamapharamitha kanye nokuphuma kwawo kwe-stdout, ngokulandelana).
  • Ukulungiswa kwamakhodi amancane.
  • Ukwengeza ukuhlolwa, kanye nokuhlela kabusha ezikhona.
  • Ukwengeza amakilasi e-Subprocess kanye ne-Process, inhloso yawo okungukudala izinga elingeziwe lokungafinyeleli lapho usebenza nemojula ye-subprocess. Idingeka kakhulu ukuqeda ukuphindaphinda kwekhodi lapho usebenza nePython 2/3, kodwa ingase inikeze namanye amabhonasi.

Yini entsha ku-smart-env?

Ngokungafani ne-python-shell, kube nezinguquko ezimbalwa kulabhulali ye-smart-env. Isizathu salokhu silula - ukungabi nesikhathi samahhala, lapho okunye ukuthuthukiswa okungenzeka (isibonelo, ukuqedela ngokuzenzakalela okuguquguqukayo kwemvelo) kuhanjiswe ekukhishweni okulandelayo.

Eqinisweni, izinguquko ezilandelayo zenziwe kulabhulali:

  • Ukulungiswa kwamakhodi amancane.
  • Ukwenza kabusha.
  • Ukuhlelwa kabusha nokuthuthukiswa kwezivivinyo ezikhona.

Izinhlelo zokukhishwa okulandelayo

umtapo wezincwadi we-python-shell

  • Ukwengeza usekelo lwezingcingo ezingavimbeli zomyalo (ukufana kokwenza).

umtapo wezincwadi we-smart-env

  • Ukuqaliswa kokuqedela ngokuzenzakalela okuguquguqukayo kwemvelo esigabeni se-ENV.
  • Usekelo lwe-opharetha ekuhloleni ubukhona bokuguquguquka kwe-env.
  • Ukwenziwa kosekelo lwemisebenzi ye-str() kanye ne-repr() yesigaba se-ENV.

Izinsuku zokukhishwa okulandelayo zizophinde zimenyezelwe eziteshini zokuxhumana ezilandelayo:

Source: www.habr.com

Engeza amazwana