Gwneud Python a Bash Cyfeillgarwch: Rhyddhau'r python-cragen a smart-env v llyfrgelloedd. 1.0.1

Diwrnod da pawb!

Blynyddoedd Chwefror 29 2020 digwyddodd micro-ryddhad swyddogol llyfrgelloedd smart-env ΠΈ python-cragen. I'r rhai nad ydyn nhw'n gwybod, rwy'n awgrymu eich bod chi'n ei ddarllen yn gyntaf post cyntaf.

Yn fyr, mae'r newidiadau'n cynnwys cwblhau gorchymyn, galluoedd estynedig ar gyfer rhedeg gorchmynion, rhywfaint o ailffactorio a thrwsio nam.

Am fanylion gweler cath.

Beth sy'n newydd yn python-shell?

Dechreuaf ar unwaith gyda phwdin.

Cwblhau gorchymyn

Cytuno - mae'n gyfleus pan fydd y golygydd / IDE / terfynell yn eich annog am enw'r gorchymyn, ac weithiau hyd yn oed paramedrau'r alwad? Felly mae python-shell yn gwneud cynnydd graddol wrth ddarparu ymarferoldeb tebyg. Oherwydd bod meysydd dosbarth Shell o dan y cwfl yn de-facto nid ei feysydd (y __getattr__ hollbresennol), crΓ«wyd awtolenwi o'r dechrau hefyd (trwy orlwytho'r dull __dir__, yn y drefn honno). Ar hyn o bryd mae Autocompletion yn gweithio mewn amgylcheddau BPython ac IPython. Wrth gwrs, hoffwn weld integreiddio Γ’ chynhyrchion mwy hybarch fel PyCharm, ac mae posibiliadau gweithredu yn cael eu hastudio i'r cyfeiriad hwn.

Ychwanegu Priodweddau

Fel rhan o'r datganiad, derbyniodd y dosbarth Shell eiddo last_command newydd. Cododd yr angen amdano oherwydd pan gafodd ShellException ei daflu gan orchymyn gyda chod dychwelyd di-sero, ni ddychwelwyd y gwrthrych Gorchymyn o'r alwad __call__() i'r gwrthrych gorchymyn. Nawr mae cyfle i wneud hyn:

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

Mae'r rhestr o briodweddau'r gwrthrych Gorchymyn hefyd wedi ehangu. Ychwanegwyd maes gwallau sy'n dychwelyd yr allbwn gorchymyn i'r ffrwd gwall.

Rhedeg gorchmynion gydag enwau Python annilys

Mae gan bron bob system o leiaf un rhaglen nad yw ei henw yn addas fel dynodwr yn Python (er enghraifft, y cyfleustodau 2to3 adnabyddus). Galwch hi gyda

Shell.2to3()

Os na fydd yn gweithio, ni fydd y cyfieithydd yn gadael iddo drwodd.
Yr ateb yw galw'r gorchymyn mewn ffordd gylchfan:

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

Mae'n werth nodi yn yr un modd y gallwch redeg gorchmynion sy'n ddilys o safbwynt y cyfieithydd, sy'n gadael y cyfle i greu sgriptiau hyblyg fel

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

MΓ’n newidiadau

  • Mae'r dulliau __repr__() a __str__() o'r gwrthrych dosbarth Gorchymyn wedi'u gweithredu, sydd bellach yn cynhyrchu gwerthoedd greddfol (gorchymyn Γ’ pharamedrau a'i allbwn stdout, yn y drefn honno).
  • MΓ’n atgyweiriadau cod.
  • Ychwanegu sylw prawf, yn ogystal ag ad-drefnu rhai presennol.
  • Ychwanegu'r dosbarthiadau Is-broses a Phroses, a'u pwrpas yw creu lefel ychwanegol o dynnu wrth weithio gyda'r modiwl is-broses. Mae ei angen yn bennaf i ddileu dyblygu cod wrth weithio gyda Python 2/3, ond mae'n bosibl y gall ddarparu taliadau bonws eraill hefyd.

Beth sy'n newydd yn smart-env?

Yn wahanol i python-shell, bu llai o newidiadau yn y llyfrgell smart-env. Mae'r rheswm am hyn yn syml - diffyg amser rhydd, pan symudwyd rhai gwelliannau posibl (er enghraifft, awtolenwi newidynnau amgylchedd) i'r datganiad nesaf.

Mewn gwirionedd, mae'r newidiadau canlynol wedi'u gwneud i'r llyfrgell:

  • MΓ’n atgyweiriadau cod.
  • Ailffactorio.
  • Ad-drefnu a mireinio profion presennol.

Cynlluniau ar gyfer datganiadau nesaf

llyfrgell python-cragen

  • Ychwanegu cefnogaeth ar gyfer galwadau gorchymyn nad ydynt yn rhwystro (cyfatebiaeth cyflawni).

llyfrgell smart-env

  • Gweithredu awtolenwi newidynnau amgylchedd yn y dosbarth ENV.
  • Cefnogaeth i'r gweithredwr mewnol wirio bodolaeth newidyn env.
  • Gweithredu cymorth ar gyfer swyddogaethau str() a repr() ar gyfer y dosbarth ENV.

Bydd dyddiadau’r datganiadau nesaf yn cael eu cyhoeddi ymhellach yn y sianeli cyfathrebu a ganlyn:

Ffynhonnell: hab.com

Ychwanegu sylw