Skip to content

Replace polars with curated data-analysis packages in embeddable Python workflow#3

Merged
toyfer merged 2 commits intomainfrom
copilot/update-data-analysis-packages
Jan 16, 2026
Merged

Replace polars with curated data-analysis packages in embeddable Python workflow#3
toyfer merged 2 commits intomainfrom
copilot/update-data-analysis-packages

Conversation

Copy link
Contributor

Copilot AI commented Jan 16, 2026

Swap out polars (requires Rust toolchain) for a set of pure-Python-compatible data-analysis packages suitable for embeddable distributions.

Changes

  • Dependency installation: Replace single polars install with 9 packages: pandas, numpy, matplotlib, seaborn, scikit-learn, openpyxl, xlrd, ipykernel, jupyterlab
  • Release metadata: Update package list in release body to reflect actual installed packages
- name: Python Embeddable Setup Dependencies
  run: |
    .\Python\Python.exe -m pip install \
      pandas \
      numpy \
      matplotlib \
      seaborn \
      scikit-learn \
      openpyxl \
      xlrd \
      ipykernel \
      jupyterlab

All packages selected to avoid native compilation dependencies (no Rust/C++ toolchains needed).

Original prompt

Modify the workflow file .github/workflows/init-python.yml to install a curated set of data-analysis packages that do not require extra native toolchains (Rust/C/C++). The current workflow downloads and prepares the Python 3.13.7 embeddable distribution, bootstraps pip, installs dependencies, compresses the folder and uploads it as a GitHub Release latest asset. Change only the dependency installation step to install the following packages (no polars, no pyarrow):

  • pandas
  • numpy
  • matplotlib
  • seaborn
  • scikit-learn
  • openpyxl
  • xlrd
  • ipykernel
  • jupyterlab

Requirements for the change:

  • Keep the rest of the workflow identical (checkout, download, expand, enable site, get-pip, pip upgrade, compress, release upload).
  • Use the Windows PowerShell pip install command already present: .\Python\Python.exe -m pip install \ with the list of packages.
  • Update the release body to list the added packages (as in the sample provided in the conversation).
  • Do not add or remove other steps, permissions, or actions versions.

Provide the modified file contents for .github/workflows/init-python.yml exactly as it should be committed.

Modified file contents:

name: init-python

on:
  push:

jobs:
  build:
    runs-on: windows-latest

    # Release作成に必要
    permissions:
      contents: write

    steps:
      - name: Check out code
        uses: actions/checkout@v5

      - name: Python Embeddable Download
        run: Invoke-WebRequest -Uri https://www.python.org/ftp/python/3.13.7/python-3.13.7-embed-amd64.zip -OutFile Python.zip

      - name: Python Embeddable Setup
        run: |
          Expand-Archive .\Python.zip -DestinationPath .\Python\
          (Get-Content .\Python\Python313._pth) -replace '#import site', 'import site' | Set-Content .\Python\Python313._pth

          Invoke-WebRequest -Uri https://bootstrap.pypa.io/get-pip.py -OutFile .\Python\get-pip.py
          .\Python\Python.exe .\Python\get-pip.py
          .\Python\Python.exe -m pip install -U pip

      - name: Python Embeddable Setup Dependencies
        run: |
          .\Python\Python.exe -m pip install \
            pandas \
            numpy \
            matplotlib \
            seaborn \
            scikit-learn \
            openpyxl \
            xlrd \
            ipykernel \
            jupyterlab

      - name: Compress Python
        run: Compress-Archive -Path .\Python\* -DestinationPath .\Python_Embeddable.zip

      - name: Update Release (always update latest release)
        uses: softprops/action-gh-release@v2
        with:
          tag_name: latest
          name: Python Embeddable
          body: |
            ## Python Embeddable

            - **Python Version**: 3.13.7
            - **Package Manager**: pip
            - **Added Package**: pandas, numpy, matplotlib, seaborn, scikit-learn, openpyxl, xlrd, ipykernel, jupyterlab
            - **Build Date**: ${{ github.event.head_commit.timestamp }}
            - **Commit**: ${{ github.sha }}

            *This release is automatically updated on every push*
          files: |
            ./Python_Embeddable.zip
          make_latest: true
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

This pull request was created from Copilot chat.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@coderabbitai
Copy link

coderabbitai bot commented Jan 16, 2026

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

Co-authored-by: toyfer <15968477+toyfer@users.noreply.github.com>
Copilot AI changed the title [WIP] Modify workflow to install specified data-analysis packages Replace polars with curated data-analysis packages in embeddable Python workflow Jan 16, 2026
Copilot AI requested a review from toyfer January 16, 2026 01:08
@toyfer toyfer marked this pull request as ready for review January 16, 2026 01:09
Copilot AI review requested due to automatic review settings January 16, 2026 01:09
@toyfer toyfer merged commit a63c829 into main Jan 16, 2026
0 of 2 checks passed
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR replaces the single polars package dependency with a curated set of nine pure-Python data analysis packages that don't require Rust toolchain compilation, making the embeddable Python distribution more compatible with environments lacking native build tools.

Changes:

  • Updated dependency installation to include pandas, numpy, matplotlib, seaborn, scikit-learn, openpyxl, xlrd, ipykernel, and jupyterlab
  • Updated release body metadata to reflect the new package list

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +32 to +41
.\Python\Python.exe -m pip install \
pandas \
numpy \
matplotlib \
seaborn \
scikit-learn \
openpyxl \
xlrd \
ipykernel \
jupyterlab
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Installing multiple packages in separate lines can be slower than installing them all in a single command. While PowerShell line continuation with backslash works, this approach may result in multiple pip resolution passes. However, since this appears to be the intended formatting per the PR description, this is informational rather than a required change.

Suggested change
.\Python\Python.exe -m pip install \
pandas \
numpy \
matplotlib \
seaborn \
scikit-learn \
openpyxl \
xlrd \
ipykernel \
jupyterlab
.\Python\Python.exe -m pip install pandas numpy matplotlib seaborn scikit-learn openpyxl xlrd ipykernel jupyterlab

Copilot uses AI. Check for mistakes.
- **Python Version**: 3.13.7
- **Package Manager**: pip
- **Added Package**: -
- **Added Package**: pandas, numpy, matplotlib, seaborn, scikit-learn, openpyxl, xlrd, ipykernel, jupyterlab
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The label 'Added Package' is singular but lists multiple packages. Consider changing to 'Added Packages' for grammatical correctness.

Suggested change
- **Added Package**: pandas, numpy, matplotlib, seaborn, scikit-learn, openpyxl, xlrd, ipykernel, jupyterlab
- **Added Packages**: pandas, numpy, matplotlib, seaborn, scikit-learn, openpyxl, xlrd, ipykernel, jupyterlab

Copilot uses AI. Check for mistakes.
seaborn \
scikit-learn \
openpyxl \
xlrd \
Copy link

Copilot AI Jan 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The package xlrd is primarily used for reading old Excel files (.xls format). Since openpyxl handles modern Excel formats (.xlsx), consider documenting why xlrd is needed, or evaluate if it's necessary given that xlrd development has been discontinued and only supports .xls files up to Excel 2003 format.

Copilot uses AI. Check for mistakes.
@toyfer toyfer deleted the copilot/update-data-analysis-packages branch January 16, 2026 01:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants