diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 48b9fb1d..3070cc33 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -257,7 +257,7 @@ jobs: "macos-13", "macos-latest", ] - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] include: - os: "ubuntu-latest" artifact: pyogrio-wheel-linux-manylinux2014_x86_64 diff --git a/CHANGES.md b/CHANGES.md index e6702e2a..6d46eb05 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -23,6 +23,7 @@ - The GDAL library included in the wheels is upgraded from 3.10.3 to 3.11.4 (#578). - Add libkml driver to the wheels for more recent Linux platforms supported by manylinux_2_28, MacOS, and Windows (#561). +- Add libspatialite to the wheels (#546). - Wheels are now available for Python 3.14. ## 0.11.1 (2025-08-02) diff --git a/ci/vcpkg-manylinux2014.json b/ci/vcpkg-manylinux2014.json index c8b96c2e..a19b1381 100644 --- a/ci/vcpkg-manylinux2014.json +++ b/ci/vcpkg-manylinux2014.json @@ -2,10 +2,17 @@ "name": "pyogrio", "version": "0.12.0", "dependencies": [ + { + "name": "libspatialite", + "default-features": false, + "features": [ + "rttopo" + ] + }, { "name": "gdal", "default-features": false, - "features": ["recommended-features", "curl", "geos", "iconv", "openssl"] + "features": ["recommended-features", "curl", "geos", "iconv", "libspatialite", "openssl"] } ], "builtin-baseline": "da096fdc67db437bee863ae73c4c12e289f82789" diff --git a/ci/vcpkg.json b/ci/vcpkg.json index 41f5259d..7796dbb0 100644 --- a/ci/vcpkg.json +++ b/ci/vcpkg.json @@ -2,11 +2,18 @@ "name": "pyogrio", "version": "0.12.0", "dependencies": [ + { + "name": "libspatialite", + "default-features": false, + "features": [ + "rttopo" + ] + }, { "name": "gdal", "default-features": false, "features": [ - "recommended-features", "curl", "geos", "iconv", "libkml", "openssl" + "recommended-features", "curl", "geos", "iconv", "libkml", "libspatialite", "openssl" ] } ], diff --git a/pyogrio/tests/test_geopandas_io.py b/pyogrio/tests/test_geopandas_io.py index e9a71aac..1ff9ff3f 100644 --- a/pyogrio/tests/test_geopandas_io.py +++ b/pyogrio/tests/test_geopandas_io.py @@ -106,14 +106,18 @@ def use_arrow_context(): del os.environ["PYOGRIO_USE_ARROW"] -def spatialite_available(path): +@pytest.mark.skipif( + not GDAL_GE_350, + reason="GDAL Docker images with GDAL < 3.5 don't contain SpatiaLite", +) +def test_spatialite_available(test_gpkg_nulls): + """Check if SpatiaLite is available by running a simple SQL query.""" try: _ = read_dataframe( - path, sql="select spatialite_version();", sql_dialect="SQLITE" + test_gpkg_nulls, sql="select spatialite_version();", sql_dialect="SQLITE" ) - return True - except Exception: - return False + except Exception as ex: + raise AssertionError(f"SpatiaLite not available: {ex}") @pytest.mark.parametrize(