Skip to content

DEP: Support Python 3.10-3.12 #1006

DEP: Support Python 3.10-3.12

DEP: Support Python 3.10-3.12 #1006

Workflow file for this run

name: Tests
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
schedule:
- cron: '0 0 * * 0'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
env:
PIP_NO_BINARY: rasterio
DEBIAN_FRONTEND: noninteractive
jobs:
linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: pre-commit/[email protected]
docker_tests:
needs: linting
runs-on: ubuntu-latest
name: Docker | GDAL=${{ matrix.gdal-version }} | python=${{ matrix.python-version }} | rasterio${{ matrix.rasterio-version }} | scipy ${{ matrix.run-with-scipy }}
container: ghcr.io/osgeo/gdal:ubuntu-full-${{ matrix.gdal-version }}
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.11', '3.12']
rasterio-version: ['']
xarray-version: ['']
pandas-version: ['']
run-with-scipy: ['YES']
gdal-version: ['3.6.4']
include:
- python-version: '3.10'
rasterio-version: ''
xarray-version: '==0.17'
pandas-version: '<2'
run-with-scipy: 'YES'
gdal-version: '3.4.3'
- python-version: '3.10'
rasterio-version: ''
xarray-version: ''
pandas-version: ''
run-with-scipy: 'NO'
gdal-version: '3.5.3'
steps:
- uses: actions/checkout@v4
- name: Remove unused apt repo
if: ${{ matrix.gdal-version }} == '3.5.3'
run: |
rm -f /etc/apt/sources.list.d/apache-arrow.sources
- name: Update
run: |
apt-get update
apt-get -y install software-properties-common
add-apt-repository -y ppa:deadsnakes/ppa
apt-get update
- name: Set up Python ${{ matrix.python-version }}
run: |
apt-get install -y --no-install-recommends \
python${{ matrix.python-version }} \
python${{ matrix.python-version }}-dev \
python${{ matrix.python-version }}-venv \
python3-pip \
g++
chown -R $(whoami) /github/home/
- name: Install dependencies
run: |
python${{ matrix.python-version }} -m venv testenv
. testenv/bin/activate
python -m pip install --upgrade pip
export INSTALL_DEPS='rasterio${{ matrix.rasterio-version }} xarray${{ matrix.xarray-version }} pandas${{ matrix.pandas-version }}'
[ "${{ matrix.run-with-scipy }}" = "YES" ] && export INSTALL_DEPS="${INSTALL_DEPS} scipy"
python -m pip install $INSTALL_DEPS
python -m pip install -e .[dev,doc]
- name: run tests
run: |
. testenv/bin/activate
python -m pytest --cov-report term-missing --cov=rioxarray --cov-report xml
- uses: codecov/codecov-action@v3
conda_test:
needs: linting
name: ${{ matrix.os }} | ${{ matrix.python-version }} | rasterio-${{ matrix.rasterio-version }} | scipy ${{ matrix.run-with-scipy }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.10', '3.11', '3.12']
rasterio-version: ['*']
xarray-version: ['*']
run-with-scipy: ['YES']
steps:
- uses: actions/checkout@v4
- name: Setup Conda
uses: s-weigand/setup-conda@v1
with:
python-version: ${{ matrix.python-version }}
conda-channels: conda-forge
- name: Install Env
shell: bash
run: |
conda config --prepend channels conda-forge
conda config --set channel_priority strict
export INSTALL_DEPS='python=${{ matrix.python-version }} rasterio=${{ matrix.rasterio-version }} xarray=${{ matrix.xarray-version }} pyproj netcdf4 dask pandoc'
[ "${{ matrix.run-with-scipy }}" = "YES" ] && export INSTALL_DEPS="${INSTALL_DEPS} scipy"
conda create -n test $INSTALL_DEPS
source activate test
python -m pip install -e .[dev,doc]
- name: Check and Log Environment
shell: bash
run: |
source activate test
python -V
python -c "import rioxarray; rioxarray.show_versions();"
conda info
- name: pylint
if: matrix.python-version == '3.10'
shell: bash
run: |
source activate test
pylint rioxarray/
- name: mypy
shell: bash
if: matrix.python-version == '3.10'
run: |
source activate test
mypy rioxarray/
- name: Test
shell: bash
run: |
source activate test
pytest --cov-report term-missing --cov=rioxarray --cov-report xml
- name: Test Build docs
shell: bash
if: contains(matrix.os, 'ubuntu')
run: |
source activate test
sphinx-build -b html docs/ docs/_build/
- uses: codecov/codecov-action@v3
test_latest:
needs: linting
name: Test latest dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Conda
uses: s-weigand/setup-conda@v1
with:
python-version: '3.10'
conda-channels: conda-forge
- name: Install Env
shell: bash
run: |
conda config --prepend channels conda-forge
conda config --set channel_priority strict
conda create -n test python=3.10 proj libgdal cython netcdf4
source activate test
python -m pip install \
--index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \
--no-deps --pre --upgrade \
numpy \
pandas \
scipy;
python -m pip install --upgrade \
git+https://github.com/dask/dask.git@main \
git+https://github.com/dask/distributed.git@main \
git+https://github.com/mapbox/rasterio.git@main \
git+https://github.com/pyproj4/pyproj.git@main \
git+https://github.com/pydata/xarray.git@main;
python -m pip install -e .[all]
- name: Check and Log Environment
shell: bash
run: |
source activate test
python -V
python -c "import rioxarray; rioxarray.show_versions();"
conda info
- name: Test
shell: bash
run: |
source activate test
pytest --cov-report term-missing --cov=rioxarray --cov-report xml