Kutengeneza Urafiki wa Python na Bash: Kutolewa kwa maktaba ya python-shell na smart-env v. 1.0.1

Siku njema kila mtu!

Februari 29 2020 miaka kutolewa rasmi kwa maktaba kulifanyika smart-env ΠΈ ganda la chatu. Kwa wale ambao hawajui, napendekeza uisome kwanza chapisho la kwanza.

Kwa kifupi, mabadiliko ni pamoja na kukamilika kwa amri, uwezo uliopanuliwa wa amri zinazoendesha, kurekebisha tena na kurekebisha hitilafu.

Kwa maelezo tafadhali tazama paka.

Ni nini kipya kwenye ganda la python?

Nitaanza mara moja na dessert.

Kukamilika kwa amri

Kubali - ni rahisi wakati kihariri/IDE/terminal inakuomba jina la amri, na wakati mwingine hata vigezo vya kupiga simu? Kwa hivyo ganda la python linafanya maendeleo hatua kwa hatua katika kutoa utendakazi sawa. Kwa sababu ya ukweli kwamba sehemu za darasa la Shell chini ya kofia ni de-facto sio nyuga zake (eneo lote __getattr__), ukamilishaji otomatiki pia uliundwa kutoka mwanzo (kwa kupakia njia ya __dir__, mtawaliwa). Kukamilisha kiotomatiki kwa sasa kunafanya kazi katika mazingira ya BPython na IPython. Kwa kweli, ningependa kuona ujumuishaji na bidhaa zinazoheshimika zaidi kama PyCharm, na uwezekano wa utekelezaji unasomwa katika mwelekeo huu.

Kuongeza sifa

Kama sehemu ya toleo, darasa la Shell lilipokea mali mpya ya last_command. Haja yake iliibuka kwa sababu ShellException ilipotupwa na amri iliyo na nambari ya kurudisha isiyo ya sifuri, kitu cha Amri hakikurudishwa kutoka kwa __call__() simu kwenda kwa kitu cha amri. Sasa kuna fursa ya kufanya hivi:

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

Orodha ya mali ya kitu cha Amri pia imepanuka. Imeongeza uga wa hitilafu ambao hurejesha pato la amri kwenye mkondo wa hitilafu.

Amri zinazoendesha na majina batili ya Python

Takriban kila mfumo una angalau programu moja ambayo jina lake halifai kama kitambulisho katika Python (kwa mfano, shirika linalojulikana la 2to3). Mwite na

Shell.2to3()

Ikiwa haifanyi kazi, mkalimani hatairuhusu.
Suluhisho ni kuita amri kwa njia ya kuzunguka:

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

Inafaa kumbuka kuwa kwa njia hiyo hiyo unaweza kuendesha amri ambazo ni halali kutoka kwa mtazamo wa mkalimani, ambayo huacha fursa ya kuunda maandishi rahisi kama vile.

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

Mabadiliko madogo

  • Njia za __repr__() na __str__() za kitu cha darasa la Amri zimetekelezwa, ambazo sasa hutoa maadili angavu (amri iliyo na vigezo na matokeo yake ya stdout, mtawaliwa).
  • Marekebisho madogo ya misimbo.
  • Kuongeza chanjo ya majaribio, pamoja na kupanga upya zilizopo.
  • Kuongeza madarasa ya Mchakato mdogo na Mchakato, madhumuni yake ambayo ni kuunda kiwango cha ziada cha uondoaji wakati wa kufanya kazi na moduli ndogo. Inahitajika sana kuondoa kurudiwa kwa nambari wakati wa kufanya kazi na Python 2/3, lakini inaweza kutoa mafao mengine pia.

Nini kipya katika smart-env?

Tofauti na ganda la python, kumekuwa na mabadiliko machache kwenye maktaba ya smart-env. Sababu ya hii ni rahisi - ukosefu wa muda wa bure, wakati ambapo baadhi ya maboresho yanayoweza kutokea (kwa mfano, kukamilisha kiotomatiki kwa vigezo vya mazingira) yalihamishiwa kwenye toleo linalofuata.

Kwa kweli, mabadiliko yafuatayo yamefanywa kwa maktaba:

  • Marekebisho madogo ya misimbo.
  • Kuunda upya.
  • Upangaji upya na uboreshaji wa majaribio yaliyopo.

Mipango ya matoleo yanayofuata

maktaba ya python-shell

  • Kuongeza usaidizi kwa simu za amri zisizozuia (usambamba wa utekelezaji).

maktaba ya smart-env

  • Utekelezaji wa ukamilishaji otomatiki wa anuwai za mazingira katika darasa la ENV.
  • Msaada kwa opereta katika kuangalia uwepo wa utofauti wa env.
  • Utekelezaji wa usaidizi wa kazi za str() na repr() za darasa la ENV.

Tarehe za matoleo yajayo yatatangazwa zaidi katika njia zifuatazo za mawasiliano:

Chanzo: mapenzi.com

Kuongeza maoni