From b22f384d7393f92ed810e3e0ef9e237c40f12ea8 Mon Sep 17 00:00:00 2001 From: Andrea Giammarchi Date: Tue, 11 Mar 2025 11:32:30 +0100 Subject: [PATCH] PyGame - TOML + JSON absolute URL + input patch (#2313) * Make config URL canonical * Better baseURL + input patch --- core/package-lock.json | 4 ++-- core/package.json | 2 +- core/src/plugins/py-game.js | 14 +++++++++++++- core/tests/manual/game/config.toml | 0 core/tests/manual/game/index.html | 2 +- 5 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 core/tests/manual/game/config.toml diff --git a/core/package-lock.json b/core/package-lock.json index 4bac6d11..8a482846 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@pyscript/core", - "version": "0.6.36", + "version": "0.6.39", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@pyscript/core", - "version": "0.6.36", + "version": "0.6.39", "license": "APACHE-2.0", "dependencies": { "@ungap/with-resolvers": "^0.1.0", diff --git a/core/package.json b/core/package.json index 51601f7d..2645078d 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@pyscript/core", - "version": "0.6.36", + "version": "0.6.39", "type": "module", "description": "PyScript", "module": "./index.js", diff --git a/core/src/plugins/py-game.js b/core/src/plugins/py-game.js index e95b0851..7ceb7652 100644 --- a/core/src/plugins/py-game.js +++ b/core/src/plugins/py-game.js @@ -11,6 +11,17 @@ import { getText } from "../fetch.js"; const progress = createProgress("py-game"); +const inputPatch = ` +import builtins +def input(prompt=""): + import js + return js.prompt(prompt) + +builtins.input = input +del builtins +del input +`; + let toBeWarned = true; const hooks = { @@ -45,7 +56,7 @@ const hooks = { progress, wrap.interpreter, config, - url || location.href, + url ? new URL(url, location.href).href : location.href, ); } @@ -63,6 +74,7 @@ const hooks = { }); await wrap.interpreter.runPythonAsync(stdlib); + wrap.interpreter.runPython(inputPatch); let code = dedent(script.textContent); if (script.src) code = await fetch(script.src).then(getText); diff --git a/core/tests/manual/game/config.toml b/core/tests/manual/game/config.toml new file mode 100644 index 00000000..e69de29b diff --git a/core/tests/manual/game/index.html b/core/tests/manual/game/index.html index 27eb4db4..17489f38 100644 --- a/core/tests/manual/game/index.html +++ b/core/tests/manual/game/index.html @@ -8,7 +8,7 @@ - +
pygame.examples.aliens