chore(python): Include s2geography in Python wheel#17
Conversation
c51a3d5 to
9c06b9f
Compare
fc61572 to
f28264b
Compare
cde6c83 to
078e234
Compare
…ck the wheel locally
784ecd0 to
68908e9
Compare
There was a problem hiding this comment.
Pull Request Overview
This PR packages geography support into Python wheels for Linux and macOS, making s2geography functionality available through the Python interface. It enables geographic operations like ST_GeogPoint and ST_Intersects in sedonadb.
Key Changes
- Integrates s2geography kernels with proper null handling for scalar operations
- Extends Python wheel builds to include ARM Linux architecture and adds nightly upload functionality
- Updates build infrastructure with aligned VCPKG versions and improved Windows/multi-platform support
Reviewed Changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| rust/sedona-expr/src/scalar_udf.rs | Adds types_if_null() method and type_if_null() trait method for handling null arguments in UDF type matching |
| python/sedonadb/Cargo.toml | Enables s2geography feature and adds extension-module feature to pyo3 |
| ci/scripts/wheels-build-windows.ps1 | Adds NASM download, vcpkg bootstrap, and improves wheel repair command |
| ci/scripts/wheels-build-macos.sh | Adds ARM64 platform targeting and s2geography feature flag |
| ci/scripts/wheels-build-linux.sh | Adds perl dependency and s2geography feature flag for builds |
| ci/scripts/wheels-bootstrap-vcpkg.sh | Adds VCPKG_REF checkout and additional dependencies (abseil, openssl) |
| ci/scripts/custom-triplets/x64-windows-dynamic-release.cmake | Adds blank line formatting |
| ci/scripts/.gitignore | Adds gitignore for NASM compiler artifacts |
| c/sedona-tg/src/tg/tg.c | Patches MSVC byte order detection issue with explicit defines |
| c/sedona-s2geography/src/scalar_kernel.rs | Implements proper null handling in s2geography scalar kernels |
| c/sedona-s2geography/src/s2geography.rs | Updates error message assertions to be more flexible |
| c/sedona-s2geography/build.rs | Improves cross-platform build support with better library detection and UTF-16 handling |
| c/sedona-s2geography/CMakeLists.txt | Adds Windows-specific linker flag handling |
| c/.gitignore | Adds CMakeUserPresets.json to gitignore |
| .github/workflows/rust.yml | Updates VCPKG reference and cache key |
| .github/workflows/python.yml | Adds path filtering, VCPKG setup, and s2geography feature flag |
| .github/workflows/python-wheels.yml | Adds ARM64 Linux support and nightly package upload functionality |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <[email protected]>
|
This patch breaks my local cargo build outputI think I am running into this problem documented by PyO3: https://pyo3.rs/main/faq#i-cant-run-cargo-test-or-i-cant-build-in-a-cargo-workspace-im-having-linker-issues-like-symbol-not-found-or-undefined-reference-to-_pyexc_systemerror Would you like to explain why we have to enable |
|
Feng reported this as well and it should be fixed by #50 . The problem was that when I passed |
This PR packages geography support into the Python wheels for Linux and MacOS. For Windows it works for me locally but the built wheel in CI fails to load and I ran out of time to debug the DLL issue. I'd hoped to package this separately and connect everything via FFI but in the meantime this will do.
This also: