Новая версия Brython 3.15, реализации языка Python для web-браузеров

Доступен релиз проекта Brython 3.15.0 (Browser Python) с реализацией языка программирования Python 3 для web-браузеров, позволяющей использовать Python вместо JavaScript для разработки скриптов для Web. В ветке Brython 3.15 обеспечена совместимости с CPython 3.15 и реализована большая часть новых возможностей данного выпуска, включая отложенный импорт модулей, типы frozendict и sentinel, операторы «*» и «**» для распаковки списочных включений. Код проекта написан на языке Python и распространяется под лицензией BSD.

Подключив библиотеки brython.js и brython_stdlib.js, web-разработчик может использовать язык Python для определения логики работы сайта на стороне клиента, применяя Python вместо JavaScript. Для включения Python-кода на страницы используется тег ‹script› с mime-типом «text/python». Допускается как встраивание кода на страницу, так и загрузка внешних скриптов (‹script type=»text/python» src=»test.py»›). Из скрипта предоставляется полный доступ к элементам и событиям DOM. Помимо доступа к стандартной библиотеке Python предлагаются специализированные библиотеки для взаимодействия с DOM и JavaScript-библиотеками, такими как jQuery, D3, Highcharts и Raphael. Поддерживается использование CSS-фреймворков Bootstrap3, LESS и SASS.

Выполнение Python-кода из блоков ‹script› производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «‹body onload=»brython()»›». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера.

Итоговая производительность большинства операций в Python-сценариях, встроенных в web-страницы, близка к производительности CPython. Задержка возникает только на этапе компиляции, но для её устранения предоставляется возможность загрузки предварительно скомпилированного в JavaScript кода, которая применяется для ускорения загрузки стандартной библиотеки (Brython предоставляет инструментарий для создания JavaScript-библиотек на основе модулей Python).

Источник: http://www.opennet.ru/opennews/art.shtml?num=66441