Gerðu Python og Bash vináttu: Gefa út python-skel og smart-env v bókasöfnin. 1.0.1

Góðan daginn allir!

Febrúar 29 2020 ár opinber örútgáfa bókasafna fór fram smart-env и python-skel. Fyrir þá sem ekki vita það, mæli ég með að þú lesir hana fyrst fyrsta færsla.

Í stuttu máli eru breytingarnar meðal annars að ljúka skipunum, aukinn möguleika til að keyra skipanir, nokkrar endurstillingar og villuleiðréttingar.

Fyrir frekari upplýsingar vinsamlegast sjá kött.

Hvað er nýtt í Python-shell?

Ég byrja strax á eftirrétti.

Skipun lokið

Sammála - það er þægilegt þegar ritstjórinn/IDE/stöðin biður þig um nafn skipunarinnar og stundum jafnvel símtalsbreyturnar? Svo python-shell tekur smám saman framförum í að bjóða upp á svipaða virkni. Vegna þess að reitir Shell-flokksins undir hettunni eru í raun og veru ekki reitir hans (hinn alls staðar nálægi __getattr__), var sjálfvirk útfylling einnig búin til frá grunni (með því að ofhlaða __dir__ aðferðina, í sömu röð). Sjálfvirk útfylling virkar eins og er í BPython og IPython umhverfi. Auðvitað myndi ég vilja sjá samþættingu við virðulegri vörur eins og PyCharm og verið er að kanna útfærslumöguleika í þessa átt.

Bætir við eiginleikum

Sem hluti af útgáfunni fékk Shell bekkurinn nýjan last_command eiginleika. Þörfin fyrir það kom upp vegna þess að þegar ShellException var hent með skipun með skilakóða sem ekki var núll, var Command hlutnum ekki skilað frá __call__() kallinu í skipunarhlutinn. Nú er tækifæri til að gera þetta:

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

Listi yfir eiginleika Command hlutarins hefur einnig stækkað. Bætt við villureit sem skilar skipunarúttakinu í villustrauminn.

Keyrir skipanir með ógildum Python nöfnum

Næstum hvert kerfi hefur að minnsta kosti eitt forrit sem heitir ekki hentugur sem auðkenni í Python (til dæmis hið vel þekkta 2to3 tól). Hringdu í hana með

Shell.2to3()

Ef það virkar ekki mun túlkurinn ekki hleypa því í gegn.
Lausnin er að kalla skipunina í hringtorg:

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

Þess má geta að á sama hátt er hægt að keyra skipanir sem eru gildar frá sjónarhóli túlksins, sem gefur tækifæri til að búa til sveigjanleg forskrift eins og

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

Smávægilegar breytingar

  • __repr__() og __str__() aðferðir Command Class hlutarins hafa verið innleiddar, sem nú framleiða leiðandi gildi (skipun með breytum og stdout úttak þess, í sömu röð).
  • Minniháttar kóða lagfæringar.
  • Bætir prófumfjöllun, auk þess að endurskipuleggja núverandi.
  • Að bæta við undirferlis- og ferlisflokkunum, en tilgangurinn með þeim er að búa til aukið útdráttarstig þegar unnið er með undirferliseininguna. Aðallega þörf til að koma í veg fyrir tvíverknað kóða þegar unnið er með Python 2/3, en getur hugsanlega veitt aðra bónus líka.

Hvað er nýtt í smart-env?

Ólíkt python-skel hafa verið færri breytingar á snjall-env bókasafninu. Ástæðan fyrir þessu er einföld - skortur á frítíma, þar sem nokkrar hugsanlegar endurbætur (til dæmis sjálfvirk útfylling umhverfisbreyta) voru færðar í næstu útgáfu.

Reyndar hafa eftirfarandi breytingar verið gerðar á bókasafninu:

  • Minniháttar kóða lagfæringar.
  • Endurnýjun.
  • Endurskipulagning og betrumbætur á fyrirliggjandi prófum.

Áætlanir um næstu útgáfur

python-skel bókasafn

  • Bætir við stuðningi við ólokandi skipanasímtöl (samsíða framkvæmd).

smart-env bókasafn

  • Innleiðing á sjálfvirkri útfyllingu umhverfisbreyta í ENV flokki.
  • Stuðningur við rekstraraðilann til að athuga hvort env breytu sé til.
  • Innleiðing á stuðningi fyrir str() og repr() aðgerðir fyrir ENV flokkinn.

Dagsetningar næstu útgáfur verða nánar auglýstar á eftirfarandi samskiptaleiðum:

Heimild: www.habr.com

Bæta við athugasemd