Skip to content

Fix accidental requirement of Pandas 1.5. Bump minimum Pandas version to 0.25. Run tests with it #1786

Fix accidental requirement of Pandas 1.5. Bump minimum Pandas version to 0.25. Run tests with it

Fix accidental requirement of Pandas 1.5. Bump minimum Pandas version to 0.25. Run tests with it #1786

Workflow file for this run

name: build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11"]
jsonschema-version: ["3.0", "4.17"]
name: py ${{ matrix.python-version }} js ${{ matrix.jsonschema-version }}
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
# - name: Set Up Chromedriver
# run: |
# sudo apt-get update
# sudo apt-get --only-upgrade install google-chrome-stable
# sudo apt-get -yqq install chromium-chromedriver
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install jsonschema==${{ matrix.jsonschema-version }}
pip install .[dev]
# pip install "selenium<4.3.0"
# pip install altair_saver
- name: Maybe uninstall optional dependencies
# We uninstall pyarrow and vegafusion for one job to test that we have not
# accidentally introduced a hard dependency on these libraries.
# Uninstalling for Python 3.9 is an arbitrary choice.
# Also see https://github.com/altair-viz/altair/pull/3114
if: ${{ matrix.python-version }}=="3.9"
run: |
pip uninstall -y pyarrow vegafusion vegafusion-python-embed
- name: Maybe install lowest supported Pandas version
# We install the lowest supported Pandas version for one job to test that
# it still works. We do this for Python 3.8 as that is the last Python version
# to work with this Pandas version.
if: ${{ matrix.python-version }}=="3.8"
run: |
pip install pandas==0.18
- name: Test that schema generation has no effect
run: |
python tools/generate_schema_wrapper.py
# This gets the paths of all files which were either deleted, modified
# or are not yet tracked by Git
files=`git ls-files --deleted --modified --others --exclude-standard`
# Depending on the shell it can happen that 'files' contains empty
# lines which are filtered out in the for loop below
files_cleaned=()
for i in "${files[@]}"; do
# Skip empty items
if [ -z "$i" ]; then
continue
fi
# Add the rest of the elements to a new array
files_cleaned+=("${i}")
done
if [ ${#files_cleaned[@]} -gt 0 ]; then
echo "The code generation modified the following files:"
echo $files
exit 1
fi
- name: Test with pytest
run: |
pytest --doctest-modules tests
# - name: Selected tests without vl-convert-python
# run: |
# pip uninstall vl-convert-python --yes
# pytest -m save_engine --doctest-modules tests
# - name: Selected tests without vl-convert-python and altair_saver
# run: |
# pip uninstall altair_saver --yes
# pytest -m save_engine --doctest-modules tests
- name: Selected tests with vl-convert-python and without altair_saver
run: |
# pip install vl-convert-python
pytest -m save_engine --doctest-modules tests
- name: Validate Vega-Lite schema
run: |
# We install all 'format' dependencies of jsonschema as check-jsonschema
# only does the 'format' checks which are installed.
# We can always use the latest jsonschema version here.
# uri-reference check is disabled as the URIs in the Vega-Lite schema do
# not conform RFC 3986.
pip install 'jsonschema[format]' check-jsonschema --upgrade
check-jsonschema --check-metaschema altair/vegalite/v5/schema/vega-lite-schema.json --disable-formats uri-reference