Add Pyodide support (#12731)
This includes some initial work on adding Pyodide support (issue #12729). It is enough to get ``` uv pip compile -p /path/to/pyodide --extra-index-url file:/path/to/simple-index ``` to work which should already be quite useful. ## Test Plan * added a unit test for `pyodide_platform` * integration tested manually with: ``` cargo run pip install \ -p /home/rchatham/Documents/programming/tmp/pyodide-venv-test/.pyodide-xbuildenv-0.29.3/0.27.4/xbuildenv/pyodide-root/dist/python \ --extra-index-url file:/home/rchatham/Documents/programming/tmp/pyodide-venv-test/.pyodide-xbuildenv-0.29.3/0.27.4/xbuildenv/pyodide-root/package_index \ --index-strategy unsafe-best-match --target blah --no-build \ numpy pydantic ``` --------- Co-authored-by: konsti <konstin@mailbox.org> Co-authored-by: Zanie Blue <contact@zanie.dev>
This commit is contained in:
@@ -1294,6 +1294,45 @@ jobs:
|
||||
run: |
|
||||
.\uv.exe pip install anyio
|
||||
|
||||
integration-test-pyodide-linux:
|
||||
timeout-minutes: 10
|
||||
needs: build-binary-linux-libc
|
||||
name: "integration test | pyodide on ubuntu"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: "Download binary"
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: uv-linux-libc-${{ github.sha }}
|
||||
|
||||
- name: "Prepare binary"
|
||||
run: chmod +x ./uv
|
||||
|
||||
- name: "Create a native virtual environment"
|
||||
run: |
|
||||
./uv venv venv-native -p 3.12
|
||||
# We use features added in 0.30.3 but there is no known breakage in
|
||||
# newer versions.
|
||||
./uv pip install -p venv-native/bin/python pyodide-build==0.30.3 pip
|
||||
|
||||
- name: "Install pyodide interpreter"
|
||||
run: |
|
||||
source ./venv-native/bin/activate
|
||||
pyodide xbuildenv install 0.27.5
|
||||
PYODIDE_PYTHON=$(pyodide config get interpreter)
|
||||
PYODIDE_INDEX=$(pyodide config get package_index)
|
||||
echo "PYODIDE_PYTHON=$PYODIDE_PYTHON" >> $GITHUB_ENV
|
||||
echo "PYODIDE_INDEX=$PYODIDE_INDEX" >> $GITHUB_ENV
|
||||
|
||||
- name: "Create pyodide virtual environment"
|
||||
run: |
|
||||
./uv venv -p $PYODIDE_PYTHON venv-pyodide
|
||||
source ./venv-pyodide/bin/activate
|
||||
./uv pip install --extra-index-url=$PYODIDE_INDEX --no-build numpy
|
||||
python -c 'import numpy'
|
||||
|
||||
integration-test-github-actions:
|
||||
timeout-minutes: 10
|
||||
needs: build-binary-linux-libc
|
||||
|
||||
Reference in New Issue
Block a user