Commit graph

20 commits

Author SHA1 Message Date
Classic298
6d73780fd1
fix: bundle seaborn and give black its dependencies in the Pyodide lock (#30148)
seaborn was listed among the Pyodide distribution packages, but it is not part of that distribution, so the build wrote no wheel for it. Since seaborn is on the code interpreter's package list, it was quietly downloaded from pypi.org in the user's browser instead, which is what bundling the wheels is meant to avoid. It now takes the PyPI wheel path, like openpyxl.

The code editor's Format button was broken for non-admin users, with or without internet, because black's bundled lock entry declared no dependencies and the hand-written list next to the caller was missing packaging. black's dependencies are now declared in the lock, so that list goes back to black alone and every future caller gets them too.

Both of these shipped unnoticed because nothing checked that a listed package produced a wheel. The build now fails when one did not, naming it.

Verified offline with the network cut at undici's dispatcher: seaborn, black, the Excel roundtrip and the other listed packages all install from the bundled wheels, and a deleted wheel, a missing lock entry or a non-canonical key each fail the build.

Fixes #30145
2026-09-18 19:30:54 -04:00
Classic298
655337f7bf
fix: vendor openpyxl so Excel I/O works in the Pyodide code interpreter (#30140)
openpyxl has been listed as a Pyodide package since March, but it is not part of the Pyodide distribution, so the build never wrote a wheel for it and never warned about it. In the browser code interpreter every Excel operation failed with ModuleNotFoundError: import openpyxl, pd.read_excel() and DataFrame.to_excel() alike.

It now takes the PyPI wheel path together with its dependency et-xmlfile, and the code interpreter installs it when a snippet imports openpyxl or calls pandas' Excel helpers, which need it without importing it by name.

Injected lock entries are now keyed by the canonical dashed package name, the only spelling pyodide resolves them by. As a side effect black's mypy-extensions now resolves from the bundled wheel too, so formatting Python in the editor no longer reaches out to PyPI at runtime.

Verified offline against a built static/pyodide with every network call blocked: a to_excel then read_excel roundtrip loads openpyxl and et-xmlfile from the local directory and returns the frame.

Fixes #30130
2026-09-18 10:38:02 -05:00
Timothy Jaeryang Baek
2beddbe49f refac 2026-07-27 04:58:46 -04:00
Timothy Jaeryang Baek
602004dd5f refac 2026-07-27 03:44:13 -04:00
Timothy Jaeryang Baek
0367ad54c5 chore: pyodide 2026-05-19 20:21:01 +04:00
Timothy Jaeryang Baek
5bc80b145f refac 2026-05-04 23:57:20 +09:00
Timothy Jaeryang Baek
678c44c7cd refac 2026-04-24 16:17:46 +09:00
Timothy Jaeryang Baek
8507e5eb0d refac: include black 2026-03-24 17:18:52 -05:00
Timothy Jaeryang Baek
40e40d1ddd enh/sec: verify folder data integrity
#17182
2025-09-07 01:04:56 +04:00
Timothy Jaeryang Baek
d7e9b0828b refac 2025-08-10 02:17:54 +04:00
Timothy Jaeryang Baek
e9c93d082e chore: format 2025-08-10 02:15:53 +04:00
tarmst
0033b3fe4e Add OpenAI package to pyodide code blocks 2025-07-08 19:28:43 +00:00
Timothy Jaeryang Baek
b5e74f4eae refac 2025-03-15 16:15:37 +00:00
Timothy Jaeryang Baek
09cd95bffe enh: pyodide 2025-02-02 23:08:37 -08:00
Timothy J. Baek
a4748af822 chore: bump pyodide 2024-06-17 14:26:10 -07:00
Jun Siang Cheah
781c904c91 refac: fetch pyodide deps at build time, not checked into git 2024-05-18 14:30:42 +08:00
Timothy J. Baek
ef300248ba feat: matplotlib support 2024-05-16 22:54:37 -10:00
Timothy J. Baek
01a656cc80 feat: numpy, pandas support 2024-05-16 20:25:55 -10:00
Timothy J. Baek
8f8ce26948 refac: migrated to pyodide from pyscript 2024-05-16 19:21:08 -10:00
Timothy J. Baek
58a13aec7e feat: python code execution 2024-05-16 17:49:28 -10:00