Kupanga Ubwenzi wa Python ndi Bash: Kutulutsidwa kwa malaibulale a python-shell ndi smart-env v. 1.0.1

Tsiku labwino nonse!

29 February 2020 zaka kutulutsidwa kovomerezeka kwa malaibulale kunachitika smart-env ΠΈ python-chipolopolo. Kwa omwe sakudziwa, ndikupangira kuti muwerenge kaye positi yoyamba.

Mwachidule, zosinthazo zikuphatikiza kumalizidwa kwamalamulo, kukulitsa luso loyendetsa malamulo, kukonza zina ndi kukonza zolakwika.

Kuti mudziwe zambiri, onani mphaka.

Chatsopano ndi chiyani mu chipolopolo cha python?

Ndiyamba pomwepo ndi mchere.

Kumaliza kwa lamulo

Gwirizanani - ndizosavuta pamene mkonzi/IDE/terminal ikukufunsani dzina la lamulo, ndipo nthawi zina ngakhale zoyimbira? Chifukwa chake python-shell ikupita patsogolo pang'onopang'ono popereka magwiridwe antchito ofanana. Chifukwa chakuti minda ya kalasi ya Shell pansi pa hood ndi de-facto osati minda yake (yomwe ili __getattr__), kukonzanso kunapangidwanso kuyambira pachiyambi (podzaza njira ya __dir__, motsatira). Autocompletion pakadali pano ikugwira ntchito m'malo a BPython ndi IPython. Zachidziwikire, ndikufuna kuwona kuphatikiza ndi zinthu zolemekezeka kwambiri monga PyCharm, ndi kuthekera kokhazikitsa zikuphunziridwa mbali iyi.

Kuwonjezera Properties

Monga gawo la kumasulidwa, kalasi ya Shell idalandira katundu watsopano wa last_command. Kufunika kwake kudayamba chifukwa ShellException itaponyedwa ndi lamulo lomwe silinabwerere zero, chinthu cha Command sichinabwezedwe kuchokera ku __call__() kuyitanira ku chinthu cholamula. Tsopano pali mwayi wochita izi:

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

Mndandanda wa katundu wa Command object wakulanso. Wonjeza gawo la zolakwika lomwe limabweza zomwe zatulutsidwa kumayendedwe olakwika.

Kuthamanga ndi mayina osavomerezeka a Python

Pafupifupi makina aliwonse ali ndi pulogalamu imodzi yomwe dzina lake siliyenera kuzindikiritsa ku Python (mwachitsanzo, chida chodziwika bwino cha 2to3). Muyimbireni naye

Shell.2to3()

Ngati sichigwira ntchito, womasulirayo sangalole.
Yankho ndikuyitanitsa lamulo m'njira yozungulira:

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

Ndizofunikira kudziwa kuti momwemonso mutha kuyendetsa malamulo omwe ali ovomerezeka kuchokera pakuwona kwa womasulira, zomwe zimasiya mwayi wopanga zolemba zosinthika monga

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

Zosintha zazing'ono

  • Njira za __repr__() ndi __str__() za chinthu cha Command class zakhazikitsidwa, zomwe tsopano zimatulutsa zikhalidwe zodziwika bwino (lamulo lokhala ndi magawo ndi kutulutsa kwake, motsatana).
  • Zokonza zazing'ono zamakhodi.
  • Kuonjezera kuphimba mayesero, komanso kukonzanso zomwe zilipo kale.
  • Kuonjezera makalasi a Subprocess ndi Process, cholinga chake ndikupanga mulingo wowonjezera wowonjezera mukamagwira ntchito ndi gawo la subprocess. Chofunika kwambiri kuti muchepetse kubwereza kachidindo mukamagwira ntchito ndi Python 2/3, koma mutha kuperekanso mabonasi ena.

Chatsopano mu smart-env ndi chiyani?

Mosiyana ndi chipolopolo cha python, pakhala zosintha zochepa mu library ya smart-env. Chifukwa chake ndi chosavuta - kusowa kwa nthawi yaulere, pomwe zosintha zina (mwachitsanzo, kumalizitsa zosintha zachilengedwe) zidasunthidwa kumasulidwa kotsatira.

M'malo mwake, zosintha zotsatirazi zapangidwa ku laibulale:

  • Zokonza zazing'ono zamakhodi.
  • Refactoring.
  • Kukonzekeranso ndi kukonzanso mayesero omwe alipo.

Mapulani azotulutsa zina

python-shell library

  • Kuonjezera chithandizo cha mafoni oletsa oletsa (kufanana kwa kuphedwa).

smart-env library

  • Kukhazikitsa kwa autocompletion ya zosintha zachilengedwe m'gulu la ENV.
  • Thandizo kwa ogwiritsira ntchito kuti awone kukhalapo kwa env variable.
  • Kukhazikitsa kwa chithandizo cha str () ndi repr () ntchito za gulu la ENV.

Madeti omwe adzatulutsidwenso adzalengezedwanso munjira zotsatirazi:

Source: www.habr.com

Kuwonjezera ndemanga