jupyterlite / jupyterlite/pyodide-kernel

Add minimal novel package discovery

Open
#29 2 comments 1 reaction 0 assignees View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.