Dèanamh Python agus Càirdeas Bash: Sgaoileadh na leabharlannan python-shell agus smart-env v. 1.0.1

Latha math a h-uile duine!

29 Gearran 2020 bliadhnaichean Chaidh meanbh-fhoillseachadh oifigeil leabharlannan a chumail smart-env и python-slige. Dhaibhsan nach eil eòlach, tha mi a’ moladh gun leugh thu e an toiseach chiad phost.

Ann an ùine ghoirid, tha na h-atharrachaidhean a’ toirt a-steach crìochnachadh òrdughan, comasan leudaichte airson ruith òrdughan, beagan ath-shuidheachadh agus rèiteachadh bug.

Airson mion-fhiosrachadh faic an cat.

Dè a tha ùr ann am python-shell?

Tòisichidh mi sa bhad le milseag.

Crìochnachadh àithne

Aontaich - tha e goireasach nuair a bhios an neach-deasachaidh / IDE / Terminal gad bhrosnachadh airson ainm na h-àithne, agus uaireannan eadhon na paramadairean gairm? Mar sin tha python-shell a’ dèanamh adhartas mean air mhean ann a bhith a’ toirt seachad an aon seòrsa gnìomh. Leis gu bheil raointean clas Shell fon chochall de-facto chan e na h-achaidhean aige (an __getattr__ uile-làthaireach), chaidh fèin-choileanadh a chruthachadh bhon toiseach (le bhith a’ luchdachadh cus den dòigh __dir__, fa leth). Tha autocompletion an-dràsta ag obair ann an àrainneachdan BPython agus IPython. Gu dearbh, bu mhath leam amalachadh fhaicinn le toraidhean nas urramaiche mar PyCharm, agus thathas a’ sgrùdadh chothroman gnìomhachaidh a thaobh seo.

A' cur feartan ris

Mar phàirt den fhoillseachadh, fhuair clas Shell seilbh ùr last_command. Dh’ èirich feum air oir nuair a chaidh ShellException a thilgeil le àithne le còd tilleadh neo-neoni, cha deach an nì Command a thilleadh bhon ghairm __call__() chun an nì àithne. A-nis tha cothrom ann seo a dhèanamh:

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

Tha an liosta de fheartan an nì Command air leudachadh cuideachd. Chuir sinn raon mhearachdan ris a thilleas toradh an àithne chun t-sruth mearachd.

A’ ruith òrdughan le ainmean Python mì-dhligheach

Tha co-dhiù aon phrògram aig cha mhòr a h-uile siostam aig nach eil ainm freagarrach mar aithnichear ann am Python (mar eisimpleir, an goireas ainmeil 2to3). Cuir fòn rithe le

Shell.2to3()

Mura obraich e, cha leig an t-eadar-theangair troimhe.
Is e am fuasgladh an àithne a ghairm ann an dòigh cearcall-rathaid:

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

Is fhiach a bhith mothachail gum faod thu san aon dòigh òrdughan a ruith a tha dligheach bho shealladh an eadar-theangair, a dh’ fhàgas an cothrom sgriobtaichean sùbailte a chruthachadh mar

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

Mion-atharrachaidhean

  • Chaidh na dòighean __repr__() agus __str__() den nì clas Command a chuir an gnìomh, a tha a-nis a’ toirt a-mach luachan intuitive (òrdugh le paramadairean agus an toradh stdout aige, fa leth).
  • Ceartachaidhean beaga còd.
  • A’ cur còmhdach deuchainn ris, a bharrachd air ath-eagrachadh an fheadhainn a th’ ann mar-thà.
  • A’ cur ris na clasaichean Subprocess agus Pròiseas, is e an adhbhar ìre tarraing a bharrachd a chruthachadh nuair a bhios tu ag obair leis a’ mhodal subprocess. Mar as trice feumar cuir às do dhùblachadh còd nuair a bhios tu ag obair le Python 2/3, ach dh’ fhaodadh e bònasan eile a thoirt seachad cuideachd.

Dè tha ùr ann an smart-env?

Eu-coltach ri python-shell, tha nas lugha de dh'atharrachaidhean air a bhith anns an leabharlann smart-env. Tha an t-adhbhar airson seo sìmplidh - dìth ùine shaor, nuair a chaidh cuid de leasachaidhean a dh’ fhaodadh a bhith ann (mar eisimpleir, fèin-choileanadh caochladairean àrainneachd) a ghluasad chun ath fhoillseachadh.

Gu dearbh, chaidh na h-atharrachaidhean a leanas a dhèanamh air an leabharlann:

  • Ceartachaidhean beaga còd.
  • Refactoring.
  • Ath-eagrachadh agus ùrachadh nan deuchainnean a th’ ann mar-thà.

Planaichean airson an ath chuairtean

leabharlann python-slige

  • A’ cur taic ri fiosan àithne gun bhacadh (co-shìnteadh coileanadh).

leabharlann smart-env

  • Cur an gnìomh fèin-choileanadh caochladairean àrainneachd anns a’ chlas ENV.
  • Taic don ghnìomhaiche a-staigh gus dèanamh cinnteach gu bheil caochladair env ann.
  • Cur an gnìomh taic airson gnìomhan str() agus repr() airson a’ chlas ENV.

Thèid cinn-latha nan ath sgaoilidhean ainmeachadh anns na seanailean conaltraidh a leanas:

Source: www.habr.com

Cuir beachd ann