Skip to content

Commit c3519d8

Browse files
committed
Merge branch 'main' into mrtgenet/main
2 parents 26c1cd9 + 6b332fc commit c3519d8

8 files changed

Lines changed: 74 additions & 90 deletions

File tree

.github/environment.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ name: testenv
22
channels:
33
- conda-forge
44
dependencies:
5-
- scikit-build-core
6-
- numpy
5+
- scikit-build-core >=1.0
6+
- numpy >=1.24
77
- compilers
8-
- pybind11
8+
- ninja
9+
- pybind11 >=2.12
910
- libpdal-core
10-
- pytest
11-
- meshio
11+
- pytest >=8
12+
- meshio >=5.3
1213
- geopandas
14+
- uv

.github/workflows/build.yml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,15 @@ jobs:
2424
fail-fast: true
2525
matrix:
2626
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
27-
python-version: ['3.10', '3.11', '3.12', '3.13']
28-
numpy-version: ['1.24', '2.1']
27+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
28+
numpy-version: ['2.2', '2.5']
2929
exclude:
30-
- python-version: '3.12'
31-
numpy-version: '1.24'
32-
- python-version: '3.13'
33-
numpy-version: '1.24'
30+
- python-version: '3.14'
31+
numpy-version: '2.2'
32+
- python-version: '3.11'
33+
numpy-version: '2.5'
34+
- python-version: '3.10'
35+
numpy-version: '2.5'
3436

3537
steps:
3638
- name: Check out python-pdal
@@ -59,11 +61,12 @@ jobs:
5961
6062
- name: Install python-pdal
6163
run: |
62-
pip install -vv . --no-deps --no-build-isolation
64+
uv pip install -vv . --no-deps
6365
6466
- name: Install python-pdal-plugins
6567
working-directory: ./plugins
66-
run: pip install -vv . --no-deps --no-build-isolation
68+
run: |
69+
uv pip install -vv . --no-deps --no-build-isolation
6770
6871
- name: Test
6972
run: |
@@ -75,4 +78,3 @@ jobs:
7578
python -m pdal
7679
pdal --drivers --debug
7780
python -m pytest -v test/
78-

.github/workflows/release.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,10 @@ jobs:
4444
auto-update-conda: true
4545
environment-file: .github/environment.yml
4646

47-
- name: Install dependencies
47+
- name: Build sdist
4848
shell: bash -l {0}
4949
run: |
50-
python -m pip install build pipx twine
51-
pipx run build --sdist -Ccmake.define.CMAKE_BUILD_WITH_INSTALL_RPATH=ON
50+
uv build --sdist
5251
5352
- uses: actions/upload-artifact@v4
5453
with:
@@ -59,4 +58,3 @@ jobs:
5958
if: github.event_name == 'release' && github.event.action == 'published'
6059
uses: pypa/gh-action-pypi-publish@release/v1
6160

62-

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ endif()
2323
# find Python3
2424
find_package(Python3 COMPONENTS Interpreter ${DEVELOPMENT_COMPONENT} NumPy REQUIRED)
2525

26-
# find PDAL. Require 2.1+
26+
# find PDAL. Require 2.7+
2727
find_package(PDAL 2.7 REQUIRED)
2828

2929
# find PyBind11

README.rst

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,12 @@ using `scikit-build-core <https://scikit-build-core.readthedocs.io>`_ settings:
3535
--no-deps \
3636
--no-build-isolation
3737
38+
3839
GitHub
3940
................................................................................
4041

4142
The repository for PDAL's Python extension is available at https://github.com/PDAL/python
4243

43-
Python support released independently from PDAL itself as of PDAL 1.7.
44-
4544
Usage
4645
--------------------------------------------------------------------------------
4746

@@ -91,7 +90,7 @@ Stage Objects
9190
- A stage is an instance of ``pdal.Reader``, ``pdal.Filter`` or ``pdal.Writer``.
9291
- A stage can be instantiated by passing as keyword arguments the options
9392
applicable to the respective PDAL stage. For more on PDAL stages and their
94-
options, check the PDAL documentation on `Stage Objects <https://pdal.io/pipeline.html#stage-objects>`__.
93+
options, check the PDAL documentation on `Stage Objects <https://pdal.org/pipeline.html#stage-objects>`__.
9594

9695
- The ``filename`` option of ``Readers`` and ``Writers`` as well as the ``type``
9796
option of ``Filters`` can be passed positionally as the first argument.
@@ -417,8 +416,8 @@ Method:
417416
#. read point cloud file
418417
#. remove noise
419418
#. clean up invalid values
420-
#. classify ground points using `SMRF <https://pdal.io/en/2.9.2/stages/filters.smrf.html>`__
421-
#. write with `GDAL writer <https://pdal.io/en/2.9.2/stages/writers.gdal.html>`__
419+
#. classify ground points using `SMRF <https://pdal.org/en/latest/stages/filters.smrf.html>`__
420+
#. write with `GDAL writer <https://pdal.io/en/stable/stages/writers.gdal.html>`__
422421

423422
.. note:: If your pointcloud already has ground classified, you can skip all but
424423
the reader and writer and achieve the same result.
@@ -479,11 +478,11 @@ Method:
479478
480479
481480
.. _`Numpy`: http://www.numpy.org/
482-
.. _`schema`: http://www.pdal.io/dimensions.html
483-
.. _`metadata`: http://www.pdal.io/development/metadata.html
481+
.. _`schema`: http://www.pdal.org/dimensions.html
482+
.. _`metadata`: http://www.pdal.org/development/metadata.html
484483
.. _`TileDB`: https://tiledb.com/
485484
.. _`TileDB-PDAL integration`: https://docs.tiledb.com/geospatial/pdal
486-
.. _`TileDB writer plugin`: https://pdal.io/stages/writers.tiledb.html
485+
.. _`TileDB writer plugin`: https://pdal.org/stages/writers.tiledb.html
487486

488487
.. image:: https://github.com/PDAL/python/workflows/Build/badge.svg
489488
:target: https://github.com/PDAL/python/actions?query=workflow%3ABuild
@@ -493,6 +492,6 @@ Requirements
493492

494493
* PDAL 2.7+
495494
* Python >=3.9
496-
* Pybind11 (eg :code:`pip install pybind11[global]`)
497-
* Numpy >= 1.22 (eg :code:`pip install numpy`)
498-
* scikit-build-core (eg :code:`pip install scikit-build-core`)
495+
* Pybind11 >= 2.12 (eg :code:`pip install pybind11[global]`)
496+
* Numpy >= 1.24 at runtime and >= 2.0 for isolated builds (eg :code:`pip install numpy`)
497+
* scikit-build-core >= 1.0 (eg :code:`pip install scikit-build-core`)

pyproject.toml

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,48 +22,76 @@ classifiers = [
2222
"Programming Language :: Python :: 3.10",
2323
"Programming Language :: Python :: 3.11",
2424
"Programming Language :: Python :: 3.12",
25+
"Programming Language :: Python :: 3.13",
2526
"Topic :: Scientific/Engineering :: GIS",
2627
]
2728

2829
dependencies = [
29-
"numpy >= 1.22"
30+
"numpy >= 1.24"
3031
]
3132

3233
dynamic = ["version"]
3334

3435
[project.optional-dependencies]
3536
test = [
36-
"pandas",
37-
"meshio"
37+
"geopandas",
38+
"meshio >= 5.3",
39+
"pandas >= 2",
40+
"pytest >= 8",
3841
]
3942

40-
[tool.setuptools]
41-
package-dir = {"" = "src"}
42-
zip-safe = false
43-
4443
[project.urls]
45-
homepage = "https://pdal.io"
46-
documentation = "https://pdal.io"
44+
homepage = "https://pdal.org"
45+
documentation = "https://pdal.org"
4746
repository = "https://github.com/PDAL/Python"
4847
changelog = "https://github.com/PDAL/python/blob/main/README.rst"
4948

5049
[build-system]
51-
requires = ["scikit-build-core >= 0.9", "numpy >= 1.22", "pybind11[global]"]
50+
requires = [
51+
"scikit-build-core >= 1.0",
52+
"numpy >= 2.0",
53+
"pybind11[global] >= 2.12",
54+
]
5255
build-backend = "scikit_build_core.build"
5356

5457

5558
[tool.scikit-build]
59+
minimum-version = "build-system.requires"
5660
build-dir = "build/{wheel_tag}"
57-
sdist.exclude = [".github"]
58-
sdist.cmake = true
61+
sdist.exclude = [
62+
".github",
63+
"**/__pycache__/**",
64+
"**/*.pyc",
65+
]
66+
sdist.cmake = false
67+
sdist.inclusion-mode = "explicit"
5968
cmake.build-type = "Release"
6069
sdist.include = [
70+
"CHANGES.txt",
71+
"CMakeLists.txt",
72+
"LICENSE.txt",
73+
"pyproject.toml",
74+
"README.rst",
6175
"src",
62-
"CMakeLists.txt"
76+
]
77+
wheel.packages = ["src/pdal"]
78+
wheel.exclude = [
79+
"pdal/*.cpp",
80+
"pdal/*.hpp",
81+
"pdal/export.hpp",
82+
"**/__pycache__/**",
83+
"**/*.pyc",
6384
]
6485
build.verbose = false
6586
logging.level = "ERROR"
6687

67-
[tool.scikit-build.metadata.version]
88+
[tool.uv]
89+
no-build-isolation = true
90+
91+
[tool.uv.pip]
92+
no-build-isolation = true
93+
94+
[[tool.dynamic-metadata]]
6895
provider = "scikit_build_core.metadata.regex"
96+
field = "version"
6997
input = "src/pdal/__init__.py"

setup.py.off

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/pdal/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
__all__ = ["Pipeline", "Stage", "Reader", "Filter", "Writer", "dimensions", "info"]
2-
__version__ = '3.5.3'
2+
__version__ = '3.5.4'
33

44
from . import libpdalpython
55
from .drivers import inject_pdal_drivers

0 commit comments

Comments
 (0)