jupyterlite / jupyterlite/pyodide-kernel
Add minimal novel package discovery
- Dominant language
- Python
- Stars
- 90
- Forks
- 47
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 11
Description
### Problem
At present, it is hard to calculate the exact package versions and URLs needed to build a reproducible site.
### Proposed Solution
Given a kernel session has installed a couple packages, offer something like `piplite.freeze` which would:
- call `micripip.freeze`
- weed out all of the packages that _weren't_ actually installed (not everyone needs `galpy` and `scipy`, but some _will_)
- inject the packages needed to get up to `pyodide-kernel`
- emit a `repodata.json` that can be dropped into `{lite_dir}/pypi/repodata.json`
- enjoy getting `import foo` without having to `%pip install foo`
### Additional context
- extracted from https://github.com/jupyterlite/pyodide-kernel/pull/27#issuecomment-1466231352
A much-heavier-duty version of this might try to use `micropip`, `depfinder` and/or `conda-lock` (which bundles poetry) to do this in a browserless, nodejs-less command line setting, but interactive-first is never the wrongest way to go.
Contributor guide
Assessment
This issue has not been assessed yet.