Ho lokolloa ha Brython 3.10, ts'ebetsong ea puo ea Python bakeng sa libatli tsa marang-rang

Ho lokolloa ha morero oa Brython 3.10 (Browser Python) ho fanoe ka ts'ebetsong ea puo ea lenaneo la Python 3 bakeng sa ts'ebetsong lehlakoreng la sebatli sa marang-rang, e lumellang ts'ebeliso ea Python sebakeng sa JavaScript ho nts'etsapele mangolo a Marang-rang. Khoutu ea projeke e ngotsoe ka Python mme e ajoa tlasa laesense ea BSD.

Ka ho kenyelletsa lilaebrari tsa brython.js le brython_stdlib.js, moqapi oa marang-rang a ka sebelisa puo ea Python ho hlalosa mohopolo oa sebaka ka lehlakoreng la bareki, a sebelisa Python sebakeng sa JavaScript. Ho kenyelletsa khoutu ea Python maqepheng, sebelisa tag с mime-Ρ‚ΠΈΠΏΠΎΠΌ Β«text/pythonΒ». ДопускаСтся ΠΊΠ°ΠΊ встраиваниС ΠΊΠΎΠ΄Π° Π½Π° страницу, Ρ‚Π°ΠΊ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π²Π½Π΅ΡˆΠ½ΠΈΡ… скриптов (). Из скрипта прСдоставляСтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ элСмСнтам ΠΈ событиям DOM. Помимо доступа ΠΊ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Python ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ спСциализированныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для взаимодСйствия с DOM ΠΈ JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ jQuery, D3, Highcharts ΠΈ Raphael. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ использованиС CSS-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Bootstrap3, LESS ΠΈ SASS.

Ho phethahatsa Khoutu ea Python ho tsoa ho li-blocks производится Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ этого ΠΊΠΎΠ΄Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Brython послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ инициируСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ brython(), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ «». На основС Python-ΠΊΠΎΠ΄Π° формируСтся прСдставлСниС Π½Π° языкС JavaScript, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ выполняСтся ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌ JavaScript-Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (для сравнСния, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ PyPy.js ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ для выполнСния Python-ΠΊΠΎΠ΄Π° Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ скомпилированный Π² asm.js ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ CPython, Π° Skulpt Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° JavaScript).

Ts'ebetso ea ho qetela ea ts'ebetso e mengata ho lingoloa tsa Python tse kentsoeng maqepheng a webo e haufi le ts'ebetso ea CPython. Ho lieha ho etsahala feela sethaleng sa ho bokella, empa ho e felisa, ho fanoa ka bokhoni ba ho kenya khoutu ea JavaScript e hlophisitsoeng esale pele, e sebelisetsoang ho potlakisa ho kenya laeborari e tloaelehileng (Brython e fana ka lisebelisoa tsa ho theha lilaebrari tsa JavaScript tse thehiloeng ho li-module tsa Python. ).

Tokollo e ncha e fana ka ts'ebelisano le Python 3.10, ho kenyelletsa le ts'ehetso bakeng sa basebelisi ba ho bapisa mohlala (match / case). Phetolelo e ncha e boetse e fana ka ts'ebetsong ea pele ea sefate sa syntax se sa bonahaleng (AST, Abstract Syntax Tree) bakeng sa puo ea Python, e ka sebelisoang ho hlahisa khoutu ea JavaScript ho tsoa ho AST ea bokahohle.

Source: opennet.ru

Eketsa ka tlhaloso