Ho etsa Setsoalle sa Python le Bash: Ho lokolloa ha python-shell le lilaebrari tse bohlale-env v. 1.0.1

Letsatsi le letle bohle!

29 February 2020 lilemo tokollo e nyane ea semmuso ea lilaeborari e etsahetse bohlale-env и khetla ea python. Bakeng sa ba sa tsebeng, ke khothaletsa hore u e bale pele poso ea pele.

Ka bokhutšoane, liphetoho li kenyelletsa ho phetheloa ha litaelo, bokhoni bo atolositsoeng ba ho tsamaisa litaelo, tse ling tsa refactoring le li-bug fixes.

Bakeng sa lintlha ka kopo bona katse.

Ke eng e ncha ho python-shell?

Ke tla qala hang-hang ka lijo tse theolelang.

Ho phethela taelo

Lumellana - ho bonolo ha mohlophisi/IDE/terminal e u botsa lebitso la taelo, 'me ka linako tse ling esita le litekanyetso tsa mohala? Kahoo python-shell butle-butle e ntse e tsoela pele ho fana ka ts'ebetso e ts'oanang. Ka lebaka la 'nete ea hore masimo a sehlopha sa Shell tlas'a hood ke de-facto eseng masimo a eona (e fumanehang hohle __getattr__), ho phetheloa ka boiketsetso ho boetse ho entsoe ho tloha qalong (ka ho jarisa mokhoa oa __dir__ ka ho latellana). Autocompletion hajoale e sebetsa tikolohong ea BPython le IPython. Ehlile, ke rata ho bona kopanyo le lihlahisoa tse hlomphuoang joalo ka PyCharm, mme menyetla ea ts'ebetsong e ntse e ithutoa ntlheng ena.

Ho Eketsa Thepa

E le karolo ea tokollo, sehlopha sa Shell se ile sa fumana thepa e ncha ea last_command. Tlhokahalo ea eona e ile ea hlaha hobane ha ShellException e lahleloa ka taelo e nang le khoutu ea ho khutlisa e seng zero, ntho ea Taelo ha ea ka ea khutlisoa ho tsoa __call__() pitso ho ntho ea taelo. Hona joale ho na le monyetla oa ho etsa sena:

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

Lethathamo la thepa ea ntho ea Taelo le eona e atolohile. E kentse sebaka sa liphoso se khutlisetsang tlhahiso ea taelo ho molapo oa phoso.

Ho fana ka litaelo tse nang le mabitso a fosahetseng a Python

Hoo e ka bang tsamaiso e 'ngoe le e' ngoe e na le bonyane lenaneo le le leng leo lebitso la lona le sa tšoaneleheng e le sekhetho ho Python (mohlala, sesebelisoa se tsebahalang sa 2to3). Mo letse le

Shell.2to3()

Haeba e sa sebetse, mofetoleli a ke ke a e lumella ho feta.
Tharollo ke ho letsetsa taelo ka tsela e potolohileng:

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

Ke habohlokoa ho hlokomela hore ka mokhoa o ts'oanang u ka tsamaisa litaelo tse nepahetseng ho tloha ponong ea mofetoleli, e leng se sieang monyetla oa ho theha mangolo a feto-fetohang joaloka

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

Liphetoho tse nyane

  • Mekhoa ea __repr__() le __str__() ea ntho ea sehlopha sa Command e se e kentsoe ts'ebetsong, e seng e hlahisa litekanyetso tse hlakileng (taelo e nang le li-parameter le tlhahiso ea eona ea stdout, ka ho latellana).
  • Litokiso tse nyane tsa khoutu.
  • Ho eketsa tšireletso ea liteko, hammoho le ho hlophisa bocha tse seng li ntse li le teng.
  • Ho kenyelletsa litlelase tsa Subprocess le Ts'ebetso, sepheo sa eona e leng ho theha boemo bo eketsehileng ba ho ikhula ha o sebetsa le mojule oa subprocess. Haholo-holo e hlokahalang ho felisa ho pheta-pheta ha khoutu ha o sebetsa le Python 2/3, empa e ka fana ka li-bonase tse ling hape.

Ke eng e ncha ho smart-env?

Ho fapana le python-shell, ho bile le liphetoho tse fokolang laebraring ea smart-env. Lebaka la sena le bonolo - khaello ea nako ea mahala, eo ka eona lintlafatso tse ling tse ka bang teng (mohlala, ho phetheloa ha maemo a fapaneng a tikoloho) li ile tsa isoa tokollong e latelang.

Ha e le hantle, ho entsoe liphetoho tse latelang laebraring:

  • Litokiso tse nyane tsa khoutu.
  • Refactoring.
  • Ho hlophisa bocha le ntlafatso ea liteko tse teng.

Merero ea litokollo tse latelang

laebrari ea python-shell

  • Ho eketsa tšehetso bakeng sa mehala ea taelo e sa thibeleng (parallelization of execution).

laeborari ea bohlale-env

  • Ho kenya ts'ebetsong ea ho ikakhela ka setotsoana ha mefuta e fapaneng ea tikoloho sehlopheng sa ENV.
  • Ts'ehetso ea in opareitara ho lekola boteng ba env variable.
  • Ts'ebetsong ea ts'ehetso bakeng sa mesebetsi ea str() le repr() bakeng sa sehlopha sa ENV.

Matsatsi a likhatiso tse latelang a tla phatlalatsoa hape mecheng e latelang ea likhokahano:

Source: www.habr.com

Eketsa ka tlhaloso