1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
name: Build
on:
push:
branches:
- '*'
pull_request:
branches:
- '*'
jobs:
build:
name: Python ${{ matrix.python-version }} - ${{ matrix.os }} - laz=${{ matrix.laz-backend }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
python-version: [ "3.10", "3.11", "3.12", "3.13" ]
laz-backend: [ None, lazrs, laszip ]
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
- shell: bash -l {0}
run: |
conda info
conda list
- name: Display Python version
run: |
python -c "import sys; print(sys.version)"
- name: Install With LAZ backend
if: matrix.laz-backend != 'None'
run: pip install .[${{ matrix.laz-backend }},dev,pyproj,cli]
- name: Install Without LAZ backend
if: matrix.laz-backend == 'None'
run: pip install .[dev,pyproj,cli]
# Install dependencies which are optional
# so that the tests corresponding to them runs.
- name: Install Optional depencencies
run: pip install requests rangehttpserver
# Some crs tests require pdal
- name: Install pdal
if: matrix.python-version != '3.13'
shell: bash -l {0}
run: |
conda install -c conda-forge pdal "gdal<=3.8"
pdal --version
- name: Install pdal
if: matrix.python-version == '3.13'
shell: bash -l {0}
run: |
conda install -c conda-forge pdal "gdal>=3.9"
pdal --version
- name: Run Tests
shell: bash -l {0}
run: |
pytest -v
# Check that we can import laspy in an environment that does
# not have dev deps installed to make sure there are no wrong imports
import:
name: Python ${{ matrix.python-version }} - ${{ matrix.os }} - laz=${{ matrix.laz-backend }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ]
python-version: [ "3.13" ]
laz-backend: [ None, lazrs, laszip ]
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
- shell: bash -l {0}
run: |
conda info
conda list
- name: Display Python version
run: |
python -c "import sys; print(sys.version)"
- name: Install With LAZ backend
if: matrix.laz-backend != 'None'
run: pip install .[${{ matrix.laz-backend }},pyproj,cli]
- name: Install Without LAZ backend
if: matrix.laz-backend == 'None'
run: pip install .[pyproj,cli]
- name: Import laspy
run: |
python -c "import laspy"
linting:
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Install black & isort
run: |
python3 -m pip install setuptools
python3 -m pip install black==22.3.0 isort==5.11.5
- name: Run black check
run: python3 -m black --check .
- name: Run isort check
run: python3 -m isort --check laspy tests
coverage:
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Install
run: |
python3 -m pip install .[dev]
- name: Run coverage
run: |
nox -s coverage
coverage combine
coverage report
|