Ƙirƙirar Python da Abokan Bash: Sakin dakunan karatu na python-shell da smart-env v. 1.0.1

Barka da rana kowa!

29 Fabrairu 2020 shekaru Karamin sakin dakunan karatu na hukuma ya faru smart-env и python-harsashi. Ga wadanda ba su da masaniya, ina ba da shawarar ku karanta shi tukuna farkon post.

A takaice, canje-canjen sun haɗa da kammala umarni, faɗaɗa damar yin umarni don gudanar da umarni, wasu gyarawa da gyaran kwaro.

Don cikakkun bayanai don Allah duba cat.

Menene sabo a cikin Python-shell?

Zan fara nan da nan da kayan zaki.

Kammala umarni

Yarda - yana dacewa lokacin da edita/IDE/tashar ta sa ku ga sunan umarnin, kuma wani lokacin har ma da sigogin kira? Don haka python-shell sannu a hankali yana samun ci gaba wajen samar da irin wannan aiki. Saboda gaskiyar cewa filayen ajin Shell da ke ƙarƙashin hular ba su da tushe ba filayensa (na ko'ina __getattr__), an kuma ƙirƙiri autocompletion daga karce (ta hanyar yin lodin hanyar __dir__, bi da bi). Kammalawar atomatik a halin yanzu yana aiki a cikin mahallin BPython da IPython. Tabbas, Ina so in ga haɗin kai tare da ƙarin samfuran girmamawa kamar PyCharm, kuma ana nazarin yuwuwar aiwatarwa ta wannan hanyar.

Ƙara Properties

A matsayin wani ɓangare na sakin, ajin Shell ya sami sabon kadara ta ƙarshe. Bukatar ta taso ne saboda lokacin da aka jefa ShellException ta hanyar umarni tare da lambar dawo da mara sifili, ba a dawo da abin Umurnin daga kiran __call__() zuwa abin umarni ba. Yanzu akwai damar yin wannan:

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

Jerin kaddarorin abin Umurnin shima ya fadada. Ƙara filin kurakurai wanda ke mayar da fitarwar umarni zuwa rafin kuskure.

Gudun umarni tare da sunayen Python mara inganci

Kusan kowane tsarin yana da aƙalla shirin guda ɗaya wanda sunansa bai dace ba a matsayin mai ganowa a Python (misali, sanannen 2to3 utility). Kira ta da

Shell.2to3()

Idan bai yi aiki ba, mai fassara ba zai bari ta wuce ba.
Magani shine a kira umarni ta hanyar kewayawa:

Shell("2to3")  # возвращает объект команды

Yana da kyau a lura cewa ta wannan hanya za ku iya gudanar da umarnin da suka dace daga ma'anar fassarar, wanda ya ba da damar ƙirƙirar rubutun sassauƙa kamar su.

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

Ƙananan canje -canje

  • An aiwatar da hanyoyin __repr__() da __str__() na abun ajin Umurni, waɗanda a yanzu suna samar da ƙima mai ƙima (umarni tare da sigogi da fitowar sa mai ƙarfi, bi da bi).
  • Ƙananan gyare-gyaren code.
  • Ƙara ɗaukar hoto, da kuma sake tsara waɗanda ke akwai.
  • Ƙara azuzuwan Subprocess da Tsari, wanda manufarsa shine ƙirƙirar ƙarin matakin abstraction lokacin aiki tare da ƙaramin tsari. Yawanci ana buƙata don kawar da kwafin lambar yayin aiki tare da Python 2/3, amma yana iya samar da wasu kari kuma.

Menene sabo a cikin smart-env?

Ba kamar python-shell ba, an sami ƙarancin canje-canje a cikin ɗakin karatu na smart-env. Dalilin wannan abu ne mai sauƙi - rashin lokacin kyauta, lokacin da wasu abubuwan haɓakawa (alal misali, ƙaddamar da canjin yanayi ta atomatik) an koma saki na gaba.

A haƙiƙa, an yi canje-canje masu zuwa ga ɗakin karatu:

  • Ƙananan gyare-gyaren code.
  • Refactoring.
  • Sake tsarawa da kuma inganta gwaje-gwajen da ke akwai.

Shirye-shiryen sakewa na gaba

python-shell library

  • Ƙara goyon baya don kiran umarni mara toshewa (daidaitawar aiwatarwa).

smart-env library

  • Aiwatar da atomatik kammala masu canjin yanayi a cikin aji na ENV.
  • Goyon baya ga mai aiki don bincika wanzuwar canjin env.
  • Aiwatar da tallafi don ayyukan str() da repr() don aji na ENV.

Za a ci gaba da bayyana ranakun fitowar masu zuwa a cikin tashoshin sadarwa kamar haka:

source: www.habr.com

Add a comment