Predstavljen je izid projekta Brython 3.11 (Browser Python) z implementacijo programskega jezika Python 3 za izvajanje na strani web-brskalnika, ki omogoča uporabo Pythona namesto JavaScripta za razvoj skript za splet. Koda projekta je napisana v programskem jeziku Python in se distribuira pod licenco BSD.
Povezivanjem biblioteka brython.js i brython_stdlib.js, web programer može koristiti jezik Python za definiranje logike rada stranice na klijentskoj strani, koristeći Python umjesto JavaScript-a. Za uključivanje Python koda na stranice koristi se oznaka s MIME tipom „text/python”. Moguće je kako umetanje koda u stranicu, tako i učitavanje vanjskih skripti (). Iz skripte je omogućen potpuni pristup elementima i događajima DOM-a. Osim pristupa standardnoj biblioteci Pythona, nude se specijalizirane biblioteke za interakciju s DOM-om i JavaScript bibliotekama, poput jQuery, D3, Highcharts i Raphael. Podržava se korištenje CSS framework-a Bootstrap3, LESS i SASS.
Izvršavanje Python koda iz blokova <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
Končna zmogljivost večine operacij v vdelanih Python skriptah za spletne strani je blizu zmogljivosti CPython. Zamuda nastane le v fazi kompilacije, za njeno odpravo pa je na voljo možnost nalaganja vnaprej kompajliranega JavaScript kode, kar se uporablja za pospešitev nalaganja standardne knjižnice (Brython nudi orodja za ustvarjanje JavaScript knjižnic na osnovi Python modulov).
Nova izdaja se ponaša z zagotavljanjem združljivosti s CPython 3.11 in implementacijo večine novih možnosti te različice, vključno s podporo za skupine izjem in izraz 'except*', podrobnostmi o problematičnih izrazih v diagnostičnih sporočilih in pripenjanjem opomb k izjemam.
Izvor: opennet.ru
