Достъпен е релизът на проекта Brython 3.15.0 (Browser Python) с реализация на езика за програмиране Python 3 за уеб браузъри, което позволява използването на Python вместо JavaScript за разработка на скриптове за уеб. В версията Brython 3.15 е осигурена съвместимост с CPython 3.15 и е реализирана по-голямата част от новите възможности на това издание, включително отложен импорт на модули, типове frozendict и sentinel, оператори „*“ и „**“ за разопаковане на списъчни включвания. Кодът на проекта е написан на Python и се разпространява под лицензия BSD.
Чрез включването на библиотеките brython.js и brython_stdlib.js, уеб разработчикът може да използва Python за определяне на логиката на работа на сайта от страна на клиента, прилагайки Python вместо JavaScript. За вграждане на Python код в страниците се използва етикет с mime тип «text/python». Поддържа се както вграждане на код в страницата, така и зареждане на външни скриптове (). От скрипта се предоставя пълен достъп до елементите и събитията на DOM. Освен достъпа до стандартната библиотека на Python, се предлагат специализирани библиотеки за взаимодействие с DOM и JavaScript библиотеки като jQuery, D3, Highcharts и Raphael. Поддържа се използването на CSS рамки Bootstrap3, LESS и SASS.
Изпълнение на Python код от блокове <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера.
Крайната производителност на повечето операции в Python скриптове, интегрирани в уеб страници, е близка до производителността на CPython. Забавянето възниква само на етапа на компилация, но за неговото отстраняване се предлага възможност за зареждане на предварително компилиран JavaScript код, който се използва за ускоряване на зареждането на стандартната библиотека (Brython предоставя инструменти за създаване на JavaScript библиотеки на базата на Python модули).
Източник: opennet.ru
