ProHoster > Log > administrasjon > Making Python and Bash Friendship: Utgivelse av python-shell- og smart-env v-bibliotekene. 1.0.1
Making Python and Bash Friendship: Utgivelse av python-shell- og smart-env v-bibliotekene. 1.0.1
Ønsker dere alle en god dag!
Februar 29 2020 år offisiell mikroutgivelse av biblioteker fant sted smart-env и python-skall. For de som ikke vet, foreslår jeg at du leser den først første innlegg.
Kort fortalt inkluderer endringene fullføring av kommandoer, utvidede muligheter for å kjøre kommandoer, noen refaktorisering og feilrettinger.
For detaljer, se kat.
Hva er nytt i python-shell?
Jeg begynner med en gang med dessert.
Kommandofullføring
Enig - det er praktisk når editoren/IDE/terminalen ber deg om navnet på kommandoen, og noen ganger til og med anropsparametrene? Så python-shell gjør gradvis fremskritt i å tilby lignende funksjonalitet. På grunn av det faktum at feltene til Shell-klassen under panseret de facto ikke er feltene (den allestedsnærværende __getattr__), ble autofullføring også opprettet fra bunnen av (ved å overbelaste __dir__-metoden, henholdsvis). Autofullføring fungerer for tiden i BPython- og IPython-miljøer. Selvfølgelig skulle jeg gjerne sett integrasjon med mer ærverdige produkter som PyCharm, og implementeringsmuligheter studeres i denne retningen.
Legger til egenskaper
Som en del av utgivelsen mottok Shell-klassen en ny last_command-egenskap. Behovet for det oppsto fordi når et ShellException ble kastet av en kommando med en returkode som ikke var null, ble ikke Command-objektet returnert fra __call__()-kallet til kommandoobjektet. Nå er det en mulighet til å gjøre dette:
Listen over egenskaper til Command-objektet er også utvidet. Lagt til et feilfelt som returnerer kommandoutgangen til feilstrømmen.
Kjører kommandoer med ugyldige Python-navn
Nesten hvert system har minst ett program hvis navn ikke er egnet som identifikator i Python (for eksempel det velkjente 2to3-verktøyet). Ring henne med
Shell.2to3()
Hvis det ikke fungerer, vil ikke tolken slippe det gjennom.
Løsningen er å kalle kommandoen i en rundkjøringsmåte:
Shell("2to3") # возвращает объект команды
Det er verdt å merke seg at på samme måte kan du kjøre kommandoer som er gyldige fra tolkens synspunkt, noe som gir muligheten til å lage fleksible skript som f.eks.
Metodene __repr__() og __str__() til Command-klasseobjektet er implementert, som nå produserer intuitive verdier (en kommando med henholdsvis parametere og dens stdout-utgang).
Mindre koderettinger.
Legge til testdekning, samt omorganisere eksisterende.
Legge til underprosess- og prosessklassene, hvis formål er å skape et ekstra abstraksjonsnivå når du arbeider med underprosessmodulen. Mest nødvendig for å eliminere kodeduplisering når du arbeider med Python 2/3, men kan potensielt gi andre bonuser også.
Hva er nytt i smart-env?
I motsetning til python-shell, har det vært færre endringer i smart-env-biblioteket. Årsaken til dette er enkel - mangel på ledig tid, hvor noen potensielle forbedringer (for eksempel autofullføring av miljøvariabler) ble flyttet til neste utgivelse.
Faktisk er følgende endringer gjort i biblioteket:
Mindre koderettinger.
Refaktorering.
Omorganisering og foredling av eksisterende tester.
Planer for neste utgivelser
python-shell-bibliotek
Legger til støtte for ikke-blokkerende kommandoanrop (parallellisering av utførelse).
smart-env-bibliotek
Implementering av autofullføring av miljøvariabler i ENV-klassen.
Støtte for in-operatøren for å sjekke eksistensen av en env-variabel.
Implementering av støtte for str()- og repr()-funksjonene for ENV-klassen.
Datoene for de neste utgivelsene vil bli ytterligere annonsert i følgende kommunikasjonskanaler: