File tree Expand file tree Collapse file tree 6 files changed +52
-11
lines changed Expand file tree Collapse file tree 6 files changed +52
-11
lines changed Original file line number Diff line number Diff line change @@ -13,11 +13,11 @@ Using PyScript is as simple as:
13
13
<title >PyScript!</title >
14
14
<link
15
15
rel =" stylesheet"
16
- href =" https://pyscript.net/releases/2025.7.1 /core.css"
16
+ href =" https://pyscript.net/releases/2025.7.2 /core.css"
17
17
/>
18
18
<script
19
19
type =" module"
20
- src =" https://pyscript.net/releases/2025.7.1 /core.js"
20
+ src =" https://pyscript.net/releases/2025.7.2 /core.js"
21
21
></script >
22
22
</head >
23
23
<body >
Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " @pyscript/core" ,
3
- "version" : " 0.6.62 " ,
3
+ "version" : " 0.6.63 " ,
4
4
"type" : " module" ,
5
5
"description" : " PyScript" ,
6
6
"module" : " ./index.js" ,
70
70
"@webreflection/utils" : " ^0.1.1" ,
71
71
"add-promise-listener" : " ^0.1.3" ,
72
72
"basic-devtools" : " ^0.1.6" ,
73
- "polyscript" : " ^0.17.33 " ,
73
+ "polyscript" : " ^0.17.34 " ,
74
74
"sticky-module" : " ^0.1.1" ,
75
75
"to-json-callback" : " ^0.1.1" ,
76
76
"type-checked-collections" : " ^0.1.7"
Original file line number Diff line number Diff line change 14
14
a : hover { opacity : 1 ; }
15
15
</ style >
16
16
</ head >
17
- < body > < ul > < li > < strong > < span > javascript</ span > </ strong > < ul > < li > < a href ="./javascript/async-listener.html "> async-listener< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/config-url.html "> config-url< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/config_type.html "> config_type< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/fetch/index.html "> fetch</ a > </ strong > </ li > < li > < a href ="./javascript/ffi.html "> ffi< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/hooks.html "> hooks< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/issue-2093/index.html "> issue-2093</ a > </ strong > </ li > < li > < a href ="./javascript/js-storage.html "> js-storage< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/js_modules.html "> js_modules< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/loader/index.html "> loader</ a > </ strong > </ li > < li > < a href ="./javascript/media.html "> media< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy-error.html "> mpy-error< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy-no-error.html "> mpy-no-error< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy.html "> mpy< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal-main.html "> py-terminal-main< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal-worker.html "> py-terminal-worker< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal.html "> py-terminal< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminals.html "> py-terminals< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/pyodide-cache/index.html "> pyodide-cache</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/pyodide-lockfile/index.html "> pyodide-lockfile</ a > </ strong > </ li > < li > < a href ="./javascript/storage.html "> storage< small > .html</ small > </ a > </ li > < li > < strong > < span > workers</ span > </ strong > < ul > < li > < strong > < a href ="./javascript/workers/create_named/index.html "> create_named</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/workers/mpy/index.html "> mpy</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/workers/py/index.html "> py</ a > </ strong > </ li > </ ul > </ li > </ ul > </ li > < li > < strong > < a href ="./manual/index.html "> manual</ a > </ strong > < ul > < li > < a href ="./manual/all-done.html "> all-done< small > .html</ small > </ a > </ li > < li > < a href ="./manual/async.html "> async< small > .html</ small > </ a > </ li > < li > < a href ="./manual/camera.html "> camera< small > .html</ small > </ a > </ li > < li > < a href ="./manual/click.html "> click< small > .html</ small > </ a > </ li > < li > < a href ="./manual/code-a-part.html "> code-a-part< small > .html</ small > </ a > </ li > < li > < a href ="./manual/combo.html "> combo< small > .html</ small > </ a > </ li > < li > < a href ="./manual/config.html "> config< small > .html</ small > </ a > </ li > < li > < a href ="./manual/create-element.html "> create-element< small > .html</ small > </ a > </ li > < li > < a href ="./manual/dialog.html "> dialog< small > .html</ small > </ a > </ li > < li > < a href ="./manual/display.html "> display< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/donkey/index.html "> donkey</ a > </ strong > </ li > < li > < a href ="./manual/emoji.html "> emoji< small > .html</ small > </ a > </ li > < li > < a href ="./manual/error.html "> error< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/ffi_timeout/index.html "> ffi_timeout</ a > </ strong > </ li > < li > < strong > < a href ="./manual/fs/index.html "> fs</ a > </ strong > </ li > < li > < strong > < a href ="./manual/game/index.html "> game</ a > </ strong > </ li > < li > < a href ="./manual/html-decode.html "> html-decode< small > .html</ small > </ a > </ li > < li > < a href ="./manual/input.html "> input< small > .html</ small > </ a > </ li > < li > < a href ="./manual/interpreter.html "> interpreter< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/issue-2228/index.html "> issue-2228</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2246/index.html "> issue-2246</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2302/index.html "> issue-2302</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2304/index.html "> issue-2304</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-7015/index.html "> issue-7015</ a > </ strong > </ li > < li > < a href ="./manual/multi.html "> multi< small > .html</ small > </ a > </ li > < li > < a href ="./manual/multiple-editors.html "> multiple-editors< small > .html</ small > </ a > </ li > < li > < a href ="./manual/no-error.html "> no-error< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/no_sab/index.html "> no_sab</ a > </ strong > </ li > < li > < strong > < a href ="./manual/piratical/index.html "> piratical</ a > </ strong > </ li > < li > < a href ="./manual/py-editor.html "> py-editor< small > .html</ small > </ a > </ li > < li > < a href ="./manual/py-editor-failure.html "> py-editor-failure< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/py-terminals/index.html "> py-terminals</ a > </ strong > < ul > < li > < a href ="./manual/py-terminals/no-repl.html "> no-repl< small > .html</ small > </ a > </ li > < li > < a href ="./manual/py-terminals/repl.html "> repl< small > .html</ small > </ a > </ li > </ ul > </ li > < li > < a href ="./manual/py_modules.html "> py_modules< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/service-worker/index.html "> service-worker</ a > </ strong > </ li > < li > < a href ="./manual/split-config.html "> split-config< small > .html</ small > </ a > </ li > < li > < a href ="./manual/submit.html "> submit< small > .html</ small > </ a > </ li > < li > < a href ="./manual/target.html "> target< small > .html</ small > </ a > </ li > < li > < a href ="./manual/test_display_HTML.html "> test_display_HTML< small > .html</ small > </ a > </ li > < li > < a href ="./manual/test_when.html "> test_when< small > .html</ small > </ a > </ li > < li > < a href ="./manual/worker.html "> worker< small > .html</ small > </ a > </ li > </ ul > </ li > < li > < strong > < a href ="./python/index.html "> python</ a > </ strong > </ li > </ ul > </ body >
17
+ < body > < ul > < li > < strong > < span > javascript</ span > </ strong > < ul > < li > < a href ="./javascript/async-listener.html "> async-listener< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/config-url.html "> config-url< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/config_type.html "> config_type< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/fetch/index.html "> fetch</ a > </ strong > </ li > < li > < a href ="./javascript/ffi.html "> ffi< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/hooks.html "> hooks< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/issue-2093/index.html "> issue-2093</ a > </ strong > </ li > < li > < a href ="./javascript/js-storage.html "> js-storage< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/js_modules.html "> js_modules< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/loader/index.html "> loader</ a > </ strong > </ li > < li > < a href ="./javascript/media.html "> media< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy-error.html "> mpy-error< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy-no-error.html "> mpy-no-error< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/mpy.html "> mpy< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal-main.html "> py-terminal-main< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal-worker.html "> py-terminal-worker< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminal.html "> py-terminal< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/py-terminals.html "> py-terminals< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./javascript/pyodide-cache/index.html "> pyodide-cache</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/pyodide-lockfile/index.html "> pyodide-lockfile</ a > </ strong > </ li > < li > < a href ="./javascript/storage.html "> storage< small > .html</ small > </ a > </ li > < li > < a href ="./javascript/worker-symbols.html "> worker-symbols< small > .html</ small > </ a > </ li > < li > < strong > < span > workers</ span > </ strong > < ul > < li > < strong > < a href ="./javascript/workers/create_named/index.html "> create_named</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/workers/mpy/index.html "> mpy</ a > </ strong > </ li > < li > < strong > < a href ="./javascript/workers/py/index.html "> py</ a > </ strong > </ li > </ ul > </ li > </ ul > </ li > < li > < strong > < a href ="./manual/index.html "> manual</ a > </ strong > < ul > < li > < a href ="./manual/all-done.html "> all-done< small > .html</ small > </ a > </ li > < li > < a href ="./manual/async.html "> async< small > .html</ small > </ a > </ li > < li > < a href ="./manual/camera.html "> camera< small > .html</ small > </ a > </ li > < li > < a href ="./manual/click.html "> click< small > .html</ small > </ a > </ li > < li > < a href ="./manual/code-a-part.html "> code-a-part< small > .html</ small > </ a > </ li > < li > < a href ="./manual/combo.html "> combo< small > .html</ small > </ a > </ li > < li > < a href ="./manual/config.html "> config< small > .html</ small > </ a > </ li > < li > < a href ="./manual/create-element.html "> create-element< small > .html</ small > </ a > </ li > < li > < a href ="./manual/dialog.html "> dialog< small > .html</ small > </ a > </ li > < li > < a href ="./manual/display.html "> display< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/donkey/index.html "> donkey</ a > </ strong > </ li > < li > < a href ="./manual/emoji.html "> emoji< small > .html</ small > </ a > </ li > < li > < a href ="./manual/error.html "> error< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/ffi_timeout/index.html "> ffi_timeout</ a > </ strong > </ li > < li > < strong > < a href ="./manual/fs/index.html "> fs</ a > </ strong > </ li > < li > < strong > < a href ="./manual/game/index.html "> game</ a > </ strong > </ li > < li > < a href ="./manual/html-decode.html "> html-decode< small > .html</ small > </ a > </ li > < li > < a href ="./manual/input.html "> input< small > .html</ small > </ a > </ li > < li > < a href ="./manual/interpreter.html "> interpreter< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/issue-2228/index.html "> issue-2228</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2246/index.html "> issue-2246</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2302/index.html "> issue-2302</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-2304/index.html "> issue-2304</ a > </ strong > </ li > < li > < strong > < a href ="./manual/issue-7015/index.html "> issue-7015</ a > </ strong > </ li > < li > < a href ="./manual/multi.html "> multi< small > .html</ small > </ a > </ li > < li > < a href ="./manual/multiple-editors.html "> multiple-editors< small > .html</ small > </ a > </ li > < li > < a href ="./manual/no-error.html "> no-error< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/no_sab/index.html "> no_sab</ a > </ strong > </ li > < li > < strong > < a href ="./manual/piratical/index.html "> piratical</ a > </ strong > </ li > < li > < a href ="./manual/py-editor.html "> py-editor< small > .html</ small > </ a > </ li > < li > < a href ="./manual/py-editor-failure.html "> py-editor-failure< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/py-terminals/index.html "> py-terminals</ a > </ strong > < ul > < li > < a href ="./manual/py-terminals/no-repl.html "> no-repl< small > .html</ small > </ a > </ li > < li > < a href ="./manual/py-terminals/repl.html "> repl< small > .html</ small > </ a > </ li > </ ul > </ li > < li > < a href ="./manual/py_modules.html "> py_modules< small > .html</ small > </ a > </ li > < li > < strong > < a href ="./manual/service-worker/index.html "> service-worker</ a > </ strong > </ li > < li > < a href ="./manual/split-config.html "> split-config< small > .html</ small > </ a > </ li > < li > < a href ="./manual/submit.html "> submit< small > .html</ small > </ a > </ li > < li > < a href ="./manual/target.html "> target< small > .html</ small > </ a > </ li > < li > < a href ="./manual/test_display_HTML.html "> test_display_HTML< small > .html</ small > </ a > </ li > < li > < a href ="./manual/test_when.html "> test_when< small > .html</ small > </ a > </ li > < li > < a href ="./manual/worker.html "> worker< small > .html</ small > </ a > </ li > </ ul > </ li > < li > < strong > < a href ="./python/index.html "> python</ a > </ strong > </ li > </ ul > </ body >
18
18
</ html >
Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html lang ="en ">
3
+ < head >
4
+ < meta charset ="UTF-8 ">
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0 ">
6
+ < title > PyScript VS Symbols</ title >
7
+ < script >
8
+ globalThis . hasSymbol = ( symbol , ref ) => symbol in ref ;
9
+ globalThis . getSymbol = ( symbol , ref ) => ref [ symbol ] ;
10
+
11
+ // some 3rd party JS library might use symbols to brand-check
12
+ // so it's not about symbols traveling from MicroPython
13
+ // it's about MicroPython proxies traps not understanding symbols
14
+ globalThis . hasIterator = ref => Symbol . iterator in ref ;
15
+ </ script >
16
+ < link rel ="stylesheet " href ="../../dist/core.css ">
17
+ < script type ="module " src ="../../dist/core.js "> </ script >
18
+ < script type ="mpy ">
19
+ import js
20
+
21
+ symbol = js . Symbol . iterator
22
+
23
+ if js . getSymbol ( symbol , [ ] ) and js . hasSymbol ( symbol , [ ] ) and js . hasIterator ( [ ] ) :
24
+ js . document . documentElement . classList . add ( "main" )
25
+ </ script >
26
+ < script type ="mpy " worker >
27
+ from pyscript import window
28
+ import js
29
+
30
+ symbol = js . Symbol . iterator
31
+
32
+ if window . getSymbol ( symbol , [ ] ) and window . hasSymbol ( symbol , [ ] ) and window . hasIterator ( [ ] ) :
33
+ window . document . documentElement . classList . add ( "worker" )
34
+ </ script >
35
+ </ head >
36
+ </ html >
Original file line number Diff line number Diff line change @@ -59,6 +59,11 @@ test('MicroPython + configURL', async ({ page }) => {
59
59
await page . waitForSelector ( 'html.main.worker' ) ;
60
60
} ) ;
61
61
62
+ test ( 'MicroPython + Symbols' , async ( { page } ) => {
63
+ await page . goto ( 'http://localhost:8080/tests/javascript/worker-symbols.html' ) ;
64
+ await page . waitForSelector ( 'html.main.worker' ) ;
65
+ } ) ;
66
+
62
67
test ( 'Pyodide + terminal on Main' , async ( { page } ) => {
63
68
await page . goto ( 'http://localhost:8080/tests/javascript/py-terminal-main.html' ) ;
64
69
await page . waitForSelector ( 'html.ok' ) ;
You can’t perform that action at this time.
0 commit comments