Open bollwyvl opened 1 year ago
The micropip
options were a bit too complex to solve in the otherwise-small #103. While these could still be added to piplite
configuration somehow, it may be moot if we can get a closed form, build-time solution that generated a well-formed pyodide-lock.json
, currently under investigation.
Ok, I've got an (unreleased) jupyterlite-pyodide-lock up to a working state. There are some temporary docs with demo up, which also includes a deployed lockfile and wheel.
Right now it works with well-known locations of firefox
and chrom(e|ium)
over either:
subprocess
(sadly couldn't reuse much of the cpython gubbins, as they punt to open
, etc)selenium
contrib
Due to the hard dependency on (alpha) pyodide-lock
, and the general flakiness of browser automation, this should probably not land in pyodide-kernel
itself any time soon, though likely should be mentioned in the appropriate docs.
Other techniques (nodejs
, playwright
, pyppetteer
, an embedded qt
browser) are certainly possible, and could be added via the jupyterlite_pyodide_lock.locker.v0
entrypoint, but... I personally have no interest in maintaining them.
and of course not precious about where this actually gets released from, if it makes more sense for it to be in the org.
Problem
We still carry a lot of patches, managed as full-fat wheel builds, #27 adds more.
Proposed Solution
Investigate whether new micropip features make this more reasonable.
micropip.add_mock_package
widgetsnbextension {x|y}
micropip.install(..., index_urls)
pyodide-lock.json
%pip
loadPyodide
optionslockFileURL
${indexUrl}/pyodide-lock.json
data:
URI (unknown)packages
--pyodide-preload-packages-blocklist
for kernel depsAdditional context
extracted from #39