David Lechner 0430d34002 mpy/sagas: Get imported modules from compiled .mpy.
We were parsing Python in JavaScript to find imports, using a jison
parser that allocated memory proportional to lines times file size, so
large programs could exhaust browser memory. The grammar also rejected
f-strings containing the same quote character and decimal literals with
a leading zero, and since parse errors were swallowed, any such program
silently downloaded with no modules at all.

Read the imports back out of the .mpy instead. Each module is already
compiled by mpy-cross, so this removes a pass rather than adding one,
and MicroPython's own compiler decides what an import is.

Fixes: https://github.com/pybricks/support/issues/1804
Fixes: https://github.com/pybricks/support/issues/1954
Fixes: https://github.com/pybricks/support/issues/1981
Assisted-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 13:24:22 -05:00
2024-02-19 22:57:31 -06:00
2022-06-02 19:09:07 -05:00
2024-02-19 22:50:14 -06:00
2023-03-08 15:07:16 -06:00
2021-02-01 13:02:06 -06:00
2021-01-08 13:09:14 -06:00
2022-03-14 15:15:29 -05:00
2022-03-14 15:15:29 -05:00
2020-04-08 19:23:19 -05:00
2022-11-18 19:28:00 -06:00
2024-02-19 22:50:14 -06:00
2025-02-26 13:08:59 +01:00
2022-06-03 10:25:05 -05:00

CI test status codecov

pybricks-code

A Web App for programming LEGO® Powered Up smart hubs using Pybricks MicroPython.

Try it at https://code.pybricks.com or the latest updates https://beta.pybricks.com.

screenshot

Contributing

If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.

For more details, see the file CONTRIBUTING.md.


LEGO® is a trademark of the LEGO Group of companies which does not sponsor, authorize or endorse this project.
S
Description
Web IDE for Pybricks
https://code.pybricks.com/
Readme MIT
52 MiB
Languages
TypeScript 90%
JavaScript 7.6%
SCSS 2.1%
HTML 0.2%
Python 0.1%