Kugadzira Python uye Bash Hushamwari: Kuburitswa kwepython-shell uye smart-env v maraibhurari. 1.0.1

Zuva rakanaka mose!

29 February 2020 makore kuburitswa kwepamutemo kwemaraibhurari kwakaitika smart-env ΠΈ python-goko. Kune avo vasingazive, ndinokurudzira kuti utange waiverenga yekutanga post.

Muchidimbu, shanduko dzinosanganisira kupedzwa kwekuraira, hunyanzvi hwakawedzerwa hwekumhanyisa mirairo, kumwe kudzoreredza uye kugadzirisa kwebug.

Kuti uwane rumwe ruzivo ndapota ona katsi.

Chii chitsva mupython-shell?

Ndichangotanga nekudyira.

Kupedzisa kwekuraira

Bvumirana - zviri nyore kana mupepeti/IDE/terminal ikakukurudzira zita remurairo, uye dzimwe nguva kunyange maparamita ekufona? Saka python-shell iri kufambira mberi zvishoma nezvishoma mukupa kushanda kwakafanana. Nekuda kwekuti minda yekirasi yeShell pasi pehodhi ndeye-de-facto kwete minda yayo (iyo ubiquitous __getattr__), autocompletion yakagadzirwawo kubva pakatanga (nekuwandisa iyo __dir__ nzira, zvichiteerana). Autocompletion parizvino inoshanda muBPython uye IPython nharaunda. Ehe, ndinoda kuona kubatanidzwa nezvimwe zvinoremekedzeka zvigadzirwa sePyCharm, uye mukana wekuita uri kudzidzwa munzira iyi.

Kuwedzera Properties

Sechikamu chekuburitswa, kirasi yeShell yakagamuchira chivakwa chitsva chekupedzisira_command. Kudiwa kwacho kwakasimuka nekuti ShellException payakandwa nemurairo ine isiri-zero kodhi yekudzoka, chinhu cheMurairo hachina kudzoserwa kubva ku__call__ () kufona kune chinhu chekuraira. Ikozvino pane mukana wekuita izvi:

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

Rondedzero yezvivakwa zveCommand object yakawedzerawo. Yakawedzera zvikanganiso izvo zvinodzosa murairo wakabuda kune kukanganisa kuyerera.

Kumhanya mirairo nemazita ePython asingaite

Anenge ese sisitimu ine chirongwa chimwechete chine zita risingakodzere sechiziviso muPython (semuenzaniso, inozivikanwa 2to3 utility). Mufonere naye

Shell.2to3()

Kana ikasashanda, muturikiri haaite kuti ipfuure.
Mhinduro ndeyekudaidza murairo nenzira inotenderera:

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

Zvakakosha kuziva kuti nenzira imwechete iwe unogona kumhanyisa mirairo inoshanda kubva pakuona kwemuturikiri, iyo inosiya mukana wekugadzira zvinyorwa zvinoshanduka senge.

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

Diki shanduko

  • Iyo __repr__() uye __str__() nzira dzeChinhu cheCommand class dzakaitwa, izvo zvino zvinoburitsa intuitive values ​​​​(murairo une parameter uye stdout yakabuda, zvichiteerana).
  • Madiki kodhi anogadzirisa.
  • Kuwedzera bvunzo yekuvhara, pamwe nekugadzirisa zvakare zviripo.
  • Kuwedzera iyo Subprocess uye Maitiro makirasi, chinangwa chiri kugadzira imwe nhanho yekubvisa kana uchishanda neiyo subprocess module. Inonyanyodiwa kubvisa kudzokorora kodhi kana uchishanda nePython 2/3, asi inogona kupa mamwe mabhonasi zvakare.

Chii chitsva mu smart-env?

Kusiyana nepython-shell, pakave neshanduko shoma muraibhurari yakangwara-env. Chikonzero cheizvi chiri nyore - kushaikwa kwenguva yemahara, panguva iyo zvimwe zvingango gadziridzwa (semuenzaniso, autocompletion yezvakasiyana siyana) zvakaendeswa kune inotevera kuburitswa.

Muchokwadi, shanduko dzinotevera dzakaitwa kuraibhurari:

  • Madiki kodhi anogadzirisa.
  • Refactoring.
  • Kuronga patsva uye kunatsiridza bvunzo dziripo.

Zvirongwa zvezvichaburitswa zvinotevera

python-shell raibhurari

  • Kuwedzera rutsigiro rwevasina-kuvharira kuraira mafoni (parallelization yekuuraya).

smart-env raibhurari

  • Kuita kwekuita otomatiki kwezvakasiyana siyana mukirasi yeENV.
  • Tsigiro kune in opareta kuti atarise kuvepo kweenv shanduko.
  • Kuitwa kwerutsigiro rweiyo str () uye repr () mabasa eiyo ENV kirasi.

Mazuva ekuburitswa kunotevera achazoziviswa zvakare mumatanho anotevera ekutaurirana:

Source: www.habr.com

Voeg