Skip to content

ENH: capture all errors logged by gdal when opening a file fails #1979

ENH: capture all errors logged by gdal when opening a file fails

ENH: capture all errors logged by gdal when opening a file fails #1979

Workflow file for this run

name: Docker GDAL Test
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
# cancel running jobs on new commit to PR
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
TestLinux:
name: GDAL ${{ matrix.container }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
container:
- "ghcr.io/osgeo/gdal:ubuntu-small-latest" # >= python 3.12.3
- "ghcr.io/osgeo/gdal:ubuntu-small-3.9.2" # python 3.12.3
- "ghcr.io/osgeo/gdal:ubuntu-small-3.8.5" # python 3.10.12
- "ghcr.io/osgeo/gdal:ubuntu-small-3.7.3" # python 3.10.12
- "ghcr.io/osgeo/gdal:ubuntu-small-3.6.4" # python 3.10.6
- "osgeo/gdal:ubuntu-small-3.5.3" # python 3.9.20 (installed manually)
- "osgeo/gdal:ubuntu-small-3.4.3" # python 3.9.20 (installed manually)
container:
image: ${{ matrix.container }}
steps:
- name: Install packages
run: |
apt-get update && apt-get install -y build-essential git python3-dev
- name: Install Python
# the GDAL 3.4 and 3.5 images do have Python 3.8 installed, so have to
# install a more recent Python version manually
if: matrix.container == 'osgeo/gdal:ubuntu-small-3.5.3' || matrix.container == 'osgeo/gdal:ubuntu-small-3.4.3'
run: |
apt-get update && apt-get install -y software-properties-common
add-apt-repository -y ppa:deadsnakes/ppa
apt-get update && apt-get install -y python3.9-dev
- uses: actions/checkout@v4
- name: Create virtual environment
# install uv and use it to create a virtual environment, then add it to
# environment variables so that it is automatically activated and can be
# used for tests below
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
. $HOME/.cargo/env
uv venv .venv
echo "VIRTUAL_ENV=.venv" >> $GITHUB_ENV
echo "$PWD/.venv/bin" >> $GITHUB_PATH
- name: Install Python Dependencies
run: |
uv pip install -e .[dev,test,geopandas]
- name: Install pyarrow
# GDAL>=3.6 required to use Arrow API
if: matrix.container != 'osgeo/gdal:ubuntu-small-3.5.3' && matrix.container != 'osgeo/gdal:ubuntu-small-3.4.3'
run: |
uv pip install pyarrow
- name: Test with pytest
run: |
pytest --cov=pyogrio --cov-report term-missing pyogrio/tests