Cython 0.27 ubrzava Python i odustaje od svoje čudne sintakse

Najnovija verzija alatke za konverziju Python-u-C koristi Pythonovu vlastitu sintaksu za nagoveštaj tipa i tako ubrzava procesa konverzije. Cython, komplet alatki koji omogućava da se Python kôd konvertuje u veoma brzi C-kôd, ima novu verziju 0.27 koja sada može da koristi Pythonovu vlastitu sintaksu za nagoveštaj tipa i tako ubrzava proces konverzije Python-u-C. Ranije su korisnici Cythona mogli da ubrzaju Python samo pomoću dekoratora koda sa anotacijama o tipu na dijalektu koji je svojstven Cython-u. Python ima svoju vlastitu opcionu sintaksu za anotacije sa promenljivim tipom, ali Cython je nije koristio.

Sa Cythonom 0.27, Cython sada može da prepozna deklaracije tipova u stilu PEP 526 za matične Python tipove, kao što su str ili list. Ista sintaksa može se koristiti i za eksplicitno definisanje matičnih C tipova, koristeći deklaracije kao što je var: cython.int = 32.

Postojeći Python alati — IDE-ovi, proveravači koda i tako dalje — već koriste PEP 526 za proveru tipa i analizu koda. Promene u Cythonu olakšavaju ubrzavanje koda koji je već dekorisan ovim anotacijama — i takođe olakšava da prednosti Cythona mogu da koriste mejnstrim Python programeri, a ne samo entuzijasti Cythona koji su već navikli na Cythonovu čudnu sintaksu.

Trenutno su podržane samo osnovne varijante deklaracija tipa, tako da ne možete koristiti Pythonove deklaracije tipa za opis stvari kao što su strukture u C-stilu. Međutim, postojeća sintaksa Cythona to već predviđa, pa njena verzija sintakse neće uskoro da se zameni markacijom tipa PEP-526.

Takođe, novo u Cythonu 0.27: Cython sada prevodi u C i Pithonove asinhrone generatore i skraćeno generisanje. Na taj način mogu da se ubrzaju i konstrukcije async/await nedavno uvedene u Python. Imajte na umu da ove funkcije najbolje funkcionišu kada se Cython koristi sa Pythonom 3.6 ili novijim, jer im je potrebna podrška Pythonove izvršne platforme da bi ispravno radili.

Ako koristite Cython sa IPython/Jupyter noutbukom, nova opcija %% cython -pgo koristi optimizaciju usmerenu profilom za generisanje C modula koji je optimiziran na osnovu njegovog izvršnog profila. Međutim, ova mogućnost je dostupna samo ako se koristi GCC kompajler; ako kao alat koristite MSVC, morate da čekate ili da podnesete pull zahtev.

Python je oduvek bio, i oduvek nameravao da bude, dinamičan jezik, nešto što je njegov tvorac Guido van Rossum naglašavao u diskusijama o funkcijama kao što je anotacija o tipu. Međutim, ništa ne sprečava druge da koriste ovaj način nagoveštavanja tipova koji olakšava pred-kompilaciju, kako to Cython sada radi.

Izvor: IT WORLD (prvobitno InfoWorld)

4571-xa-cython-0-27-ubrzava-python-i-odustaje-od-svoje-cudne-sintakse-xa