fix(geoarrow-pyarrow): Fix roundtrip to C and back for WkbView array … #231
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: test | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
permissions: | |
contents: read | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13'] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
- name: Install (geoarrow-pyarrow) | |
run: | | |
pushd geoarrow-pyarrow | |
pip install ".[test]" | |
- name: Install (geoarrow-types) | |
run: | | |
pushd geoarrow-types | |
pip install ".[test]" | |
- name: Install (geoarrow-pandas) | |
run: | | |
pushd geoarrow-pandas | |
pip install ".[test]" | |
- name: Run tests (geoarrow-pyarrow) | |
run: | | |
pytest geoarrow-pyarrow/tests -v -s | |
- name: Run tests (geoarrow-types) | |
run: | | |
pytest geoarrow-types/tests -v -s | |
- name: Run tests (geoarrow-pandas) | |
run: | | |
pytest geoarrow-pandas/tests -v -s | |
- name: Run doctests (geoarrow-pyarrow) | |
if: success() && matrix.python-version == '3.13' | |
run: | | |
cd geoarrow-pyarrow | |
pytest --pyargs geoarrow.pyarrow --doctest-modules --import-mode=importlib | |
- name: Run doctests (geoarrow-types) | |
if: success() && matrix.python-version == '3.13' | |
run: | | |
cd geoarrow-types | |
pytest --pyargs geoarrow.types --doctest-modules --import-mode=importlib | |
- name: Run doctests (geoarrow-pandas) | |
if: success() && matrix.python-version == '3.13' | |
run: | | |
cd geoarrow-pandas | |
pytest --pyargs geoarrow.pandas --doctest-modules --import-mode=importlib | |
# This is a test of geoarrow-types on Python 3.7 (which implies pyarrow 12 | |
# since this is the last supported version there). Python 3.7 is still the | |
# runtime available on some hosted platforms (e.g., it is the minimum required | |
# version for apache-sedona Python) | |
oldest-supported: | |
runs-on: ubuntu-latest | |
container: | |
image: python:3.7 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Check git setup | |
run: | | |
git config --global --add safe.directory "$(pwd)" | |
git describe --long --match='geoarrow-types-*' | |
# setuptools_scm available for Python 3.7 does not support version_file | |
# (it can still be installed on Python 3.7, it just can't be built there | |
# without this modification) | |
- name: Patch pyproject.toml | |
run: | | |
cd geoarrow-types | |
sed -i.bak '/^version_file/d' pyproject.toml | |
echo '__version__ = "0.0.0"' > src/geoarrow/types/_version.py | |
echo '__version_tuple__ = (0, 0, 0)' >> src/geoarrow/types/_version.py | |
- name: Install (geoarrow-types) | |
run: | | |
pip install --upgrade setuptools setuptools_scm | |
cd geoarrow-types | |
pip install ".[test]" | |
- name: Run tests (geoarrow-types) | |
run: | | |
pytest geoarrow-types/tests -v -s | |
coverage: | |
needs: [test] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.13' | |
cache: 'pip' | |
- name: Install (geoarrow-pyarrow) | |
run: | | |
pushd geoarrow-pyarrow | |
pip install -e ".[test]" | |
- name: Install (geoarrow-types) | |
run: | | |
pushd geoarrow-types | |
pip install -e ".[test]" | |
- name: Install (geoarrow-pandas) | |
run: | | |
pushd geoarrow-pandas | |
pip install -e ".[test]" | |
- name: Install coverage dependencies | |
run: | | |
pip install pytest-cov | |
- name: Install editable | |
run: | | |
pip install -e geoarrow-pyarrow/ | |
pip install -e geoarrow-types/ | |
pip install -e geoarrow-pandas/ | |
- name: Coverage | |
run: | | |
pushd geoarrow-pyarrow | |
python -m pytest --cov ./src/geoarrow tests --import-mode=importlib | |
python -m coverage xml | |
popd | |
pushd geoarrow-types | |
python -m pytest --cov ./src/geoarrow tests --import-mode=importlib | |
python -m coverage xml | |
popd | |
pushd geoarrow-pandas | |
python -m pytest --cov ./src/geoarrow tests --import-mode=importlib | |
python -m coverage xml | |
popd | |
- name: Upload coverage to codecov | |
uses: codecov/codecov-action@v2 | |
with: | |
files: 'geoarrow-pyarrow/coverage.xml,geoarrow-types/coverage.xml,geoarrow-pandas/coverage.xml' | |
token: ${{ secrets.CODECOV_TOKEN }} |