„Meta“ ir „Quantsight“ patobulino pagrindines „Python“ ekosistemos bibliotekas. Yra dar daug ką nuveikti, ir mes kviečiame bendruomenę padėti mūsų pastangoms.
Pažvelgsime į dvi pagrindines „Python“ pakuočių ekosistemos pastangas, kad pakuotės būtų greitesnės ir lengviau naudojamos:
- 🚀 „Atrakinti našumą“ laimi kūrėjams per laisvai segtuką „Python“-kur mes panaudojame „Python 3.13“ palaikymą tuo pačiu metu vykstančiam programavimui (įmanoma pašalinti pasaulinį vertėjo užraktą (GIL)).
- ✅ Padidinkite kūrėjo greitį IDE, naudodami patobulintus tipo anotacijas.
Patobulintas įvestas python „Python Scientific Stack“
Tipo užuominos, pristatytos „Python 3.5“ su PEP-484leiskite kūrėjams nurodyti kintamus tipus, sustiprinti kodų supratimą, nepadarydami įtakos vykdymo laiko elgsenai. Tipo tikrintojai patvirtina šias anotacijas, padeda išvengti klaidų ir pagerinti IDE funkcijas, tokias kaip automatinis užbaigimas ir peršokimas į apibrėžimą. Nepaisant jų naudos, įvaikinimas yra nenuoseklus atvirojo kodo ekosistemai, atsižvelgiant į įvairius metodus, nurodant ir palaikant tipų anotacijas.
Atvirojo kodo programinės įrangos kraštovaizdis yra suskaidytas atsižvelgiant į tai, kaip tipo anotacijos yra nurodytos, prižiūrimos ir paskirstytos galutiniams vartotojams. Kai kurie projektai turi internetinius komentarus (tipai, tiesiogiai deklaruojami šaltinio kode), kiti laikosi tipų STAB failuose, o daugelis projektų neturi jokių tipų, remdamiesi trečiųjų šalių saugyklomis, tokiomis kaip „TypeShed“ pateikti bendruomenės prižiūrimus kamščius. Kiekvienas požiūris turi savo privalumus ir trūkumus, tačiau jų pritaikymas ir priežiūra buvo nenuoseklus.
Meta ir Quansight atkreipia dėmesį į šį nenuoseklumą:
- Tiesioginis indėlis: Mes patobulinome „Pandas-Stubs“ ir „Numpy“ tipo aprėptį ir norime išplėsti pastangas, kad būtų daugiau paketų.
- Bendruomenės įsitraukimas: Skatinti tipo anotacijos pastangas skatinti bendruomenės įsitraukimą, klausytis atsiliepimų ir sukurti veiksmingus būdus, kaip pagerinti ekosistemą.
- Įrankiai ir automatizavimas: Įrankių kūrimas, skirtas spręsti įprastus iššūkius, pridedant tipus ir atnaujinant tipus, naudojant šaltinio kodą.
Patobulintos tipo komentarai pandose
Tl; Dr: „Pandas“ yra antras labiausiai atsisiųstas paketas iš „Python Scientific Stack“. Patobulinome „Pandas-Stubs“ Pakuotės tipo anotacijos aprėptis nuo 36% iki daugiau nei 50%.
Fonas
„Pandas“ bendruomenė prižiūri savo pakabas atskirame saugykloje, kurią reikia įdiegti norint gauti tipo anotacijas. Nors šie stulpai yra tikrinami atskirai nuo šaltinio kodo, tai leidžia bendruomenei naudoti tipus su savo tipo tikrinimu ir IDE.
Tobulinimo tipo aprėptis
Kai pradėjome savo darbą „Pandas-Stubs“, aprėptis buvo apie 36%, matuojant parametrų, grąžos ir atributų, turinčių išsamų tipo anotaciją, procentinė dalis (anotacija yra ir visi generiniai vaistai turi tipo argumentus). Po kelių savaičių darbo ir maždaug 30 PRS tipo išsamumas dabar matuojamas daugiau nei 50%. Didžioji dalis mūsų įmokų buvo pridedami anotacijos prie anksčiau netvarko parametrų, pridedant tipo argumentus prie neapdorotų generinių vaistų tipų ir pašalinant nebenaudotas/be dokumentų sąsajas. Mes taip pat patobulinome keletą netikslių anotacijų ir atnaujinome kitus, kad atitiktume „Pandas“ šaltinio kodą įterptų komentarų.
Pagrindiniai įvadai
Du pagrindiniai įvadai žymiai padidino aprėptį:
- Pakeičiant žalią Serija tipai su Nežinomosnaujo tipas, slapyvardis Serija (bet kuri). Kai kreipiamasi grąžinti tipo anotacijas, tai sumažina tipo tikrinimo priemonių klaidingų teigiamų asmenų skaičių, kai skambinama funkcija.
- Pagerinantys pagrindinių duomenų įregimo operacijų, tokių kaip įterpti, sujungti, pakeisti, pakeisti ir priskirti, tobulinimas, taip pat daugelis laiko žymos ir laiko zonos susijusių API.
Įrankių kūrimas
Be tiesioginio aprėpties patobulinimo, mes sukūrėme įrankius, kad būtų galima kataloguoti viešąsias sąsajas, kuriose trūksta anotacijų. Mes taip pat papildėme savo įrankius, skirtus išmatuoti tipo aprėptį, kad būtų galima susitvarkyti su situacija, kai kamščiai pasiskirsto savarankiškai, o ne supakuoti į pagrindinį bibliotekos ratą.
Kas yra laisvai dedamas „Python“?
Laisvojo defekto „Python“ (FTP) yra eksperimentinis CPYTHON kūrimas, leidžiantis lygiagrečiai sąveikauti su keliais siūlais sąveikauti su VM. Anksčiau prieigai prie VM reikėjo laikyti pasaulinį vertėjo užraktą (GIL), tokiu būdu serijuojant vykdyti tuo pačiu metu veikiančias gijas. Kai „Gil“ taps neprivaloma, kūrėjai galės visiškai pasinaudoti daugialypiais procesoriais ir parašyti tikrai lygiagrečią kodą.
Laisvos spalvos python pranašumai
Nemokamų python pranašumų yra daugybė:
- Tikras paralelizmas viename procese: Pašalinus „Gil“, kūrėjai gali parašyti „Python“ kodą, kuris visapusiškai išnaudoja kelių branduolių procesorius, nereikia naudoti kelių procesų. CPU surištas kodas gali būti vykdomas lygiagrečiai keliose brandose.
- Patobulintas našumas: Leidžiant vienu metu atlikti kelis gijas vykdyti „Python“ kodą, darbą galima efektyviai paskirstyti keliuose gijos vieno proceso viduje.
- Supaprastinta suderinamumas: Nemokamas rašymas kūrėjams suteikia ergonomiškesnį būdą rašyti lygiagrečias programas „Python“. Praėjo dienos, kai reikia naudoti daugiaprocessing.pool ir (arba) pasinaudojant pasirinktinėmis bendrų atminties duomenų struktūromis, kad būtų galima efektyviai dalytis duomenimis tarp darbuotojų procesų.
Paruoškite „Python“ ekosistemą FTP
„Python“ pakuočių ekosistema turi gerai veikti su laisvai segtuku „Python“, kad jis būtų praktiškai naudingas; Programų savininkai negali naudoti laisvo dažymo, nebent jų priklausomybės gerai veiktų. Tuo tikslu mes ėmėmės „dugno aukštyn“ požiūrio, kad išspręstume sunkiausius/populiariausius paketus ekosistemoje. Mes pridėjome laisvos srities palaikymą Daugeliui populiariausių paketų, naudojamų moksliniam skaičiavimui (pvz.
Tiesiog pradedu
Kartu mes padarėme didelę pažangą tobulindami tipo anotacijas ir laisvai besidomintį suderinamumą Python bibliotekose. Negalėjome to padaryti be „Python“ bendruomenės ir prašome kitų prisijungti prie mūsų pastangų. Nesvarbu, ar tai Tolesni tipo anotacijų atnaujinimai arba Paruoškite savo kodą FTPMes vertiname jūsų pagalbą perkeliant „Python“ ekosistemą į priekį!
Norėdami sužinoti daugiau apie „Meta“ atvirojo kodo, apsilankykite mūsų atvirojo kodo svetainėPrenumeruokite mūsų „YouTube“ kanalasarba sekite mus „Facebook“Ar SiūlaiAr X ir „LinkedIn“.