Skip to content

test: add docstrings mypy check #2900

test: add docstrings mypy check

test: add docstrings mypy check #2900

name: Test Downstream Libraries - Fast
on:
pull_request:
push:
branches: [main]
jobs:
altair:
strategy:
matrix:
python-version: ["3.12"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: "true"
cache-suffix: ${{ matrix.python-version }}
cache-dependency-glob: "**requirements*.txt"
- name: clone-altair
run: |
git clone https://github.com/vega/altair.git --depth=1
cd altair
git log
- name: install-basics
run: uv pip install --upgrade tox virtualenv setuptools --system
- name: install-altair-dev
run: |
cd altair
uv pip install -e ".[dev, all]" --system
- name: install-narwhals-dev
run: |
uv pip uninstall narwhals --system
uv pip install -e . --system
- name: show-deps
run: uv pip freeze
- name: Run pytest
run: |
cd altair
pytest tests
- name: Run mypy
run: |
cd altair
mypy altair tests
marimo:
strategy:
matrix:
python-version: ["3.12"]
os: [ubuntu-latest]
dependencies: ["core,optional"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: "true"
cache-suffix: ${{ matrix.python-version }}
cache-dependency-glob: "**requirements*.txt"
- name: clone-marimo
run: |
git clone https://github.com/marimo-team/marimo.git --depth=1
cd marimo
uv venv -p 3.12
git log
- name: install-basics
run: uv pip install --upgrade tox virtualenv setuptools hatch --system
- name: install-marimo-dev
run: |
cd marimo
. .venv/bin/activate
uv pip install -e ".[dev]"
which python
- name: install-narwhals-dev
run: |
cd marimo
. .venv/bin/activate
uv pip uninstall narwhals
uv pip install -e ./..
# temporary pin
uv pip install "altair<5.5"
- name: show-deps
run: |
cd marimo
. .venv/bin/activate
uv pip freeze
- name: Create assets directory, copy over index.html
continue-on-error: true
run: |
mkdir -p marimo/marimo/_static/assets
cp marimo/frontend/index.html marimo/marimo/_static/index.html
cp marimo/frontend/public/favicon.ico marimo/marimo/_static/favicon.ico
- name: Run tests with full dependencies
if: ${{ matrix.dependencies == 'core,optional' }}
run: |
cd marimo
. .venv/bin/activate
# make sure that we use the .venv when running tests, so that
# the local narwhals install is picked up
sed -i '/^\[tool.hatch.envs.default\]/a path = ".venv"' pyproject.toml
hatch run python -c "import narwhals; print(narwhals.__file__)"
hatch run test-optional:test-narwhals
timeout-minutes: 15
scikit-lego:
strategy:
matrix:
python-version: ["3.11"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: "true"
cache-suffix: ${{ matrix.python-version }}
cache-dependency-glob: "**requirements*.txt"
- name: clone-scikit-lego
run: git clone https://github.com/koaning/scikit-lego.git --depth 1
- name: install-basics
run: uv pip install --upgrade tox virtualenv setuptools --system
- name: install-scikit-lego-dev
run: |
cd scikit-lego
uv pip install -e ".[test]" --system
- name: install-narwhals-dev
run: |
uv pip uninstall narwhals --system
uv pip install -e . --system
- name: show-deps
run: uv pip freeze
- name: Run pytest
run: |
cd scikit-lego
pytest -n auto --disable-warnings --cov=sklego -m "not cvxpy and not formulaic and not umap"
shiny:
strategy:
matrix:
python-version: ["3.12"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: "true"
cache-suffix: ${{ matrix.python-version }}
cache-dependency-glob: "**requirements*.txt"
- name: clone-shiny
run: |
git clone https://github.com/posit-dev/py-shiny.git
cd py-shiny
git log
- name: install-basics
run: uv pip install --upgrade tox virtualenv setuptools --system
- name: install-shiny-dev
env:
UV_SYSTEM_PYTHON: 1
run: |
cd py-shiny
make narwhals-install-shiny
- name: install-narwhals-dev
run: |
uv pip uninstall narwhals --system
uv pip install -e . --system
# temporarily pin ollama to get CI green
uv pip install "ollama<0.4.0" --system
- name: show-deps
run: uv pip freeze
- name: Run `make narwhals-test-integration`
run: |
cd py-shiny
make narwhals-test-integration
tubular:
strategy:
matrix:
python-version: ["3.12"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: "true"
cache-suffix: ${{ matrix.python-version }}
cache-dependency-glob: "**requirements*.txt"
- name: clone-tubular
run: |
git clone https://github.com/lvgig/tubular --depth=1
cd tubular
git log
- name: install-basics
run: uv pip install --upgrade tox virtualenv setuptools pytest-env --system
- name: install-tubular-dev
run: |
cd tubular
uv pip install -e .[dev] --system
- name: install-narwhals-dev
run: |
uv pip uninstall narwhals --system
uv pip install -e . --system
- name: show-deps
run: uv pip freeze
- name: Run pytest
run: |
cd tubular
pytest tests --config-file=pyproject.toml
plotly:
strategy:
matrix:
python-version: ["3.12"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: "true"
cache-suffix: ${{ matrix.python-version }}
cache-dependency-glob: "**requirements*.txt"
- name: clone-plotly
run: |
git clone https://github.com/plotly/plotly.py --depth=1
cd plotly.py
git log
- name: install-basics
run: uv pip install --upgrade tox virtualenv setuptools --system
- name: install-deps
run: |
cd plotly.py
uv pip install -r packages/python/plotly/test_requirements/requirements_312_optional.txt --system
- name: install-narwhals-dev
run: |
uv pip uninstall narwhals --system
uv pip install -e . --system
- name: show-deps
run: uv pip freeze
- name: Run pytest on plotly express
run: |
cd plotly.py
pytest packages/python/plotly/plotly/tests/test_optional/test_px