Pas një viti zhvillimi, është publikuar një version i rëndësishëm i gjuhës së programimit Python 3.14. Një dega e re do të mbështetet për një periudhë njëqind e pesëmbëdhjetë muajsh, pas së cilës do të formohen ndreqje për të, për tre vite e gjysmë të tjera, me qëllim eliminimin e dobësive.
Nder të rejat e shtuara në Python 3.14 (1, 2, 3):
- ĂshtĂ« realizuar mbĂ«shtetje zyrtare pĂ«r ndĂ«rtimin e CPython pa bllokimin global tĂ« interpretorit (GIL, Global Interpreter Lock). NdĂ«rtimi pa GIL lejon tĂ« eliminohet problemi me paralelizimin e operacioneve nĂ« sisteme me shumĂ« bĂ«rthama, i shkaktuar nga fakti se bllokimi global nuk lejon akses tĂ« paralajmĂ«ruar nĂ« objekte tĂ« ndara nga tela tĂ« ndryshĂ«m. Ăaktivizimi i GIL rezulton nĂ« shpenzime shtesĂ« pĂ«r shkak tĂ« ndryshimeve nĂ« mbledhĂ«sin e mbetjeve, sistemin e menaxhimit tĂ« memorjes dhe primitivĂ«t pĂ«r organizimin e bllokimeve. PĂ«r shembull, pĂ«r shkak tĂ« pĂ«rdorimit tĂ« numĂ«rimit tĂ« referencave pĂ«r izolimin e telave, vĂ«rehet njĂ« ulje e performancĂ«s sĂ« skenarĂ«ve njĂ«-tela prej rreth 10%. MegjithatĂ«, kĂ«to kostot shtesĂ« mund tĂ« kompensohen me paralelizimin e operacioneve.
- Është shtuar mbështetje për t-vargjet (literale me prefiks 't') që lejojnë përdorimin e një sintaksë të ngjashme me f-vargjet për krijimin e përpunuesve të personalizuar të shablloneve në vargje. Në dallim nga f-vargjet, t-vargjet kthejnë një objekt që ruan veçmas të dhënat statike të vargut dhe vlerat e vendosura. Ruajtja e ndarë lejon lidhjen e përpunuesve të personalizuar që ndikojnë vetëm në vlerat e vendosura. Për shembull, mund të lidhet një përpunues për përkthimin e vlerës së vendosur në shkronja të mëdha ose për ekranuar karakteret speciale gjatë vendosjes në varg të të dhënave ekstern. variety = 'Stilton' template = t'Try some {variety} cheese!' print(list(template)) print(lower_upper(template)) ['Try some ', Interpolation('Stilton', 'variety', None, »), ' cheese!'] Try some STILTON cheese! attributes = {'src': 'limburger.jpg', 'alt': 'lovely cheese'} template = t'<img {attributes}>print (html(template)) <img src="»limburger.jpg»" alt="»e bukur" cheese» />
- Biblioteka standarde tani ka shtuar modulinn concurrent.interpreters, i cili lejon ekzekutimin e shumicës së kopjeve të izoluara të interpretuar Python në një proces të vetëm. Më parë, kjo mundësi ishte në dispozicion vetëm përmes C-API. Ekzekutimi i disa interpretueseve mund të përdoret për të paralelizuar operacione duke simuluar ekzekutimin e disa proceseve paralel, por ndryshe nga modeli i shumëproceseve, konsumon më pak burime. Në nivelin e aplikacioneve, për ndarjen e operacioneve midis interpretueseve mund të përdoren modeli i aktorëve dhe CSP (komunikimi ndërmjet proceseve të radhës).
- Në CPython është realizuar një lloj i ri interpretuese, i cili përdor thirrje bishtore midis funksioneve C që implementojnë bytecode të veçanta të Python, në vend të një funksioni të madh me një shprehje switch/case. Gjatë ndërtimit në Clang 19, interpretueseja e re tregon një rritje të performancës nga 3-5% gjatë kryerjes së testeve pyperformance. Kjo interpretuese e re aktualisht është në dispozicion si një opsion për arkitekturën x86-64 dhe AArch64, dhe kërkon të paktën versionin 19 të Clang për ndërtim (mbështetja për GCC është premtuar më vonë).
- Procesi i vonuar i annotimeve për funksione, klasa dhe modula është siguruar. Annotimet tani nuk përpunohen menjëherë, por ruhen në formën e funksioneve të specializuara dhe llogariten kur nevojitet. Kjo sjellje e re lejon thjeshtimin e punës me annotimet dhe reduktimin e ngarkesave për përpunimin e annotimeve gjatë ekzekutimit. Për inspektimin e annotimeve të vonuara, është propozuar moduli annotationlib.
- Në bibliotekën standarde është shtuar paketa compression, e cila ofron funksione për kompresimin dhe çkompresimin e të dhënave duke përdorur algoritme të ndryshme. Përveç moduleve compression.lzma, compression.bz2, compression.gzip dhe compression.zlib, të cilat ofrojnë akses në funksionalitetin që ishte më parë i disponueshëm në modulet lzma, bz2, gzip dhe zlib, është shtuar gjithashtu një modul i ri compression.zstd me implementimin e algoritmit ZSTD (Zstandard).
- NĂ« shprehjet «except» dhe «except*» Ă«shtĂ« lejuar qĂ« pĂ«rmbajtja tĂ« mos vendoset nĂ« shkronja, nĂ«se nĂ« shprehje jepen disa lloje pĂ«rjashtimesh dhe nuk pĂ«rdoret fjalĂ« kyçe «as». try: connect_to_server() except TimeoutError, ConnectionRefusedError: print(âNomĂ«tuar!â)
- NĂ« shellin interaktiv PyREPL Ă«shtĂ« implementuar theksimi i sintaksĂ«s. ĂshtĂ« aktivizuar dalja me ngjyra nĂ« mjetet CLI nga modulet unittest, argparse, json dhe calendar.
- ĂshtĂ« shtuar njĂ« ndĂ«rfaqe pĂ«r lidhjen e debuggerĂ«ve dhe profilerĂ«ve tĂ« jashtĂ«m me proceset CPython qĂ« janĂ« duke u ekzekutuar, pa kĂ«rkuar ndalesĂ« dhe rihapje, dhe pa ndikuar nĂ« performancĂ«n.
- Në modul që quhet pdb është shtuar mbështetje për lidhje të largët me proceset Python që janë duke u ekzekutuar. Për shembull, për t'u lidhur me një proces me numër 1234, mund të përdorni komandën «python -m pdb -p 1234».
- Në modul që quhet uuid janë shtuar funksionet uuid6(), uuid7() dhe uuid8() me implementimin e versioneve 6, 7 dhe 8 të identifikuesve UUID.
- ĂshtĂ« shtuar njĂ« paralajmĂ«rim kur pĂ«rdoren shprehjet «return», «break» dhe «continue» pĂ«r tĂ« dalĂ« nga blloku «finally».
- ĂshtĂ« shtuar API C PyInitConfig pĂ«r konfigurimin e inicializimit tĂ« Python pa u lidhur me strukturat nĂ« gjuhĂ«n C, duke lejuar ndryshime qĂ« nuk prishin ABI. Sigurohen funksionet Add PyConfig_Get() dhe PyConfig_Set() pĂ«r marrjen dhe vendosjen e konfigurimit, si dhe funksioni PyInitConfig_AddModule() pĂ«r shtimin e njĂ« moduli me zgjatje.
- Janë përmirësuar mesazhet e gabimeve. Janë shtuar rekomandime për zgjidhjen e gabimeve në rastin e shkrimeve të gabuara në fjalët kyçe.
- Integrimi përfshin rezultatet e punës për zëvendësimin në Python të implementimeve të algoritmeve kriptografikë, të ofruara në modulat hashlib dhe hmac, me variante me provim (formal) të qëndrueshmërisë, përgatitur nga projekti «HACL*». Të gjitha funksionet e hash-it dhe HMAC të ofruara si standard në Python janë zëvendësuar me variante për të cilat është ofruar provimi formal i pajtueshmërisë (verifikimi formal). Përveç të tjerave, është shtuar implementimi HMAC-BLAKE2, që përdor instrukcione SIMD AVX2 për të përshpejtuar llogaritjet.
- ĂshtĂ« shtuar njĂ« ndĂ«rfaqe e re komandash («python -m asyncio ps PID» dhe «python -m asyncio pstree PID») pĂ«r inspektimin e proceseve Python qĂ« po funksionojnĂ« me detyra asinkrone (asyncio).
- Në përbërjen e ndërtimeve të gatshme për macOS dhe Windows është përfshirë një kompilator JIT eksperimental. Menaxheri i instalimeve është zëvendësuar në instaluesin për Windows.
- Për verifikimin e integritetit të ndërtimeve, në vend të nënshkrimeve PGP është angazhuar sistemi i verifikimit kriptografik të kodit Sigstore.
- Janë ofruar ndërtimet zyrtare të binarëve për platformën Android.
Në orët në vijim do të fillojë testimi alfa i degës Python 3.15, e cila do të jetë në fazën e lëshimeve alfa për shtatë muaj, gjatë të cilëve do të shtohen mundësi të reja dhe do të kryhen rregullime gabimesh (sipas orarit të ri të zhvillimit, puna mbi degën e re fillon pesë muaj përpara lëshimit të degës paraprake dhe arrin fazën e testimit alfa deri në momentin e lëshimit të radhës). Pas kësaj, për tre muaj do të zhvillohet testimi i versiuneve beta, gjatë të cilit do të ndalohet shtimi i mundësive të reja dhe gjithë vëmendja do t'i kushtohet rregullimit të gabimeve. Dy muajt e fundit para lëshimit, dega do të jetë në fazën e kandidatëve për lëshim, ku do të kryhet stabilizimi përfundimtar.
Burimi: opennet.ru
