ProHoster > Օրագիր > Վարչակազմը > Python-ի և Bash-ի բարեկամության ստեղծում. python-shell և smart-env v գրադարանների թողարկում: 1.0.1
Python-ի և Bash-ի բարեկամության ստեղծում. python-shell և smart-env v գրադարանների թողարկում: 1.0.1
Բարի օր բոլորին!
Փետրվարի 29 2020 տարի տեղի ունեցավ գրադարանների պաշտոնական միկրոթողարկում smart-env и python-shell. Նրանց համար, ովքեր տեղյակ չեն, առաջարկում եմ նախ կարդալ այն առաջին գրառումը.
Մի խոսքով, փոփոխությունները ներառում են հրամանների լրացում, հրամանների գործարկման ընդլայնված հնարավորություններ, որոշ վերամշակում և սխալների շտկում:
Մանրամասների համար տես կատ.
Ի՞նչ նորություն կա python-shell-ում:
Ես անմիջապես կսկսեմ դեսերտից:
Հրամանի ավարտ
Համաձայն եք. հարմար է, երբ խմբագրիչը/IDE/տերմինալը ձեզ հուշում է հրամանի անունը, իսկ երբեմն նույնիսկ զանգի պարամետրերը: Այսպիսով, python-shell-ը աստիճանաբար առաջընթաց է գրանցում նմանատիպ ֆունկցիոնալության ապահովման հարցում: Հաշվի առնելով այն հանգամանքը, որ գլխարկի տակ գտնվող Shell դասի դաշտերը դե-ֆակտո ոչ թե նրա դաշտերն են (համատարած __getattr__), ինքնալրացումը նույնպես ստեղծվել է զրոյից (համապատասխանաբար՝ __dir__ մեթոդը ծանրաբեռնելով): Ավտոլրացումն այժմ աշխատում է BPython և IPython միջավայրերում: Իհարկե, ես կցանկանայի տեսնել PyCharm-ի նման ավելի հարգված ապրանքների հետ ինտեգրում, և այս ուղղությամբ ուսումնասիրվում են իրականացման հնարավորությունները:
Հատկությունների ավելացում
Որպես թողարկման մաս, Shell դասը ստացավ նոր last_command հատկություն: Դրա անհրաժեշտությունը ծագեց, քանի որ երբ ShellException-ը նետվում էր ոչ զրոյական վերադարձի կոդով հրամանով, Command օբյեկտը չէր վերադարձվում __call__() կանչից դեպի հրամանի օբյեկտ: Այժմ հնարավորություն կա անելու սա.
Ընդլայնվել է նաև Command օբյեկտի հատկությունների ցանկը։ Ավելացվեց սխալների դաշտ, որը վերադարձնում է հրամանի ելքը սխալի հոսքին:
Անվավեր Python անուններով հրամանների գործարկում
Գրեթե յուրաքանչյուր համակարգ ունի առնվազն մեկ ծրագիր, որի անունը հարմար չէ որպես նույնացուցիչ Python-ում (օրինակ՝ հայտնի 2to3 կոմունալ ծրագիրը): Զանգահարեք նրան
Shell.2to3()
Եթե դա չի աշխատում, թարգմանիչը թույլ չի տա այն անցնել:
Լուծումն այն է, որ զանգահարեք հրամանը շրջանաձև ձևով.
Shell("2to3") # возвращает объект команды
Հարկ է նշել, որ նույն կերպ դուք կարող եք գործարկել հրամաններ, որոնք վավեր են թարգմանչի տեսանկյունից, ինչը հնարավորություն է տալիս ստեղծելու ճկուն սցենարներ, ինչպիսիք են.
Իրականացվել են Command դասի օբյեկտի __repr__() և __str__() մեթոդները, որոնք այժմ արտադրում են ինտուիտիվ արժեքներ (համապատասխանաբար պարամետրերով հրաման և դրա stdout ելքը):
Կոդի փոքր ուղղումներ:
Թեստային ծածկույթի ավելացում, ինչպես նաև գոյություն ունեցողների վերակազմավորում:
Subprocess և Process դասերի ավելացում, որի նպատակը ենթապրոցեսի մոդուլի հետ աշխատելիս վերացականության լրացուցիչ մակարդակ ստեղծելն է։ Հիմնականում անհրաժեշտ է կոդերի կրկնօրինակումը վերացնելու համար Python 2/3-ի հետ աշխատելիս, բայց կարող է նաև այլ բոնուսներ տրամադրել:
Ի՞նչ նորություն կա smart-env-ում:
Ի տարբերություն python-shell-ի, smart-env գրադարանում ավելի քիչ փոփոխություններ են եղել: Սրա պատճառը պարզ է՝ ազատ ժամանակի բացակայություն, որի ընթացքում որոշ պոտենցիալ բարելավումներ (օրինակ՝ միջավայրի փոփոխականների ավտոմատ լրացում) տեղափոխվեցին հաջորդ թողարկում։
Փաստորեն, գրադարանում կատարվել են հետևյալ փոփոխությունները.
Կոդի փոքր ուղղումներ:
Refactoring.
Գոյություն ունեցող թեստերի վերակազմավորում և ճշգրտում: