Skip to content

Conversation

w1th0utnam3
Copy link
Member

This adds Python bindings to the splashsurf project. The bindings provide a function that can be used like the CLI of splashsurf as well as access to parts of splashsurf_lib.. The PR also contains infrastructure to build wheels and a workflow to release them to PIP.

Thanks @Fek04 for your contribution!

@w1th0utnam3 w1th0utnam3 requested a review from Copilot June 6, 2025 12:50
Copilot

This comment was marked as outdated.

@w1th0utnam3 w1th0utnam3 requested a review from Copilot June 6, 2025 13:33
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Adds Python bindings and packaging infrastructure for the splashsurf library.

  • Introduces Rust-to-Python binding code (lib.rs, aabb.rs)
  • Adds build configs (Conda env, pyproject.toml, CI workflow) and documentation
  • Integrates .bgeo reader via meshio and updates README.md and Sphinx docs

Reviewed Changes

Copilot reviewed 36 out of 36 changed files in this pull request and generated no comments.

Show a summary per file
File Description
pysplashsurf/src/lib.rs Registers Python module classes and functions
pysplashsurf/src/aabb.rs Implements Aabb3dF32/Aabb3dF64 Python wrappers
pysplashsurf/python_environment.yaml Defines Conda environment for docs/tests
pysplashsurf/pysplashsurf/docs/source/methods.rst Lists bound functions in Sphinx documentation
pysplashsurf/pysplashsurf/docs/source/introduction.md Includes main README.md
pysplashsurf/pysplashsurf/docs/source/index.rst Sphinx index with toctree
pysplashsurf/pysplashsurf/docs/source/conf.py Sphinx project configuration
pysplashsurf/pysplashsurf/docs/source/classes.rst Autogenerates class docs
pysplashsurf/pysplashsurf/docs/source/api.rst Autosummaries for functions and classes
pysplashsurf/pysplashsurf/docs/requirements.txt Requirements for building docs
pysplashsurf/pysplashsurf/docs/make.bat Windows build script for docs
pysplashsurf/pysplashsurf/docs/Makefile Unix build script for docs
pysplashsurf/pysplashsurf/bgeo.py Adds bgeo reader integration with meshio
pysplashsurf/pyproject.toml Python packaging metadata
pysplashsurf/README.md Top-level usage instructions and examples
pysplashsurf/MANIFEST.in Includes Rust and Python sources in sdist
pysplashsurf/Cargo.toml Rust crate configuration
pysplashsurf/.gitignore Excludes build artifacts
.github/workflows/pysplashsurf_CI.yml CI workflow to build, test, and publish wheels
Comments suppressed due to low confidence (4)

pysplashsurf/pysplashsurf/docs/source/methods.rst:12

  • The docs reference create_aabb_object and create_aabb_object_from_points, but no such functions are bound in lib.rs. Either add those bindings or remove/update these entries.
.. autofunction:: create_aabb_object

pysplashsurf/src/lib.rs:116

  • The write_to_file function is documented in the Python API but not registered here. Add a m.add_function(wrap_pyfunction!(write_to_file, m)?) call to expose it.
Ok(())

pysplashsurf/Cargo.toml:3

  • Version in Cargo.toml (0.1.0) does not match the Python package version (0.11.0.0rc1 in pyproject.toml). Align these versions to avoid confusion.
version = "0.1.0"

pysplashsurf/pysplashsurf/bgeo.py:89

  • Typo in comment: change coordiante to coordinate.
# the 4th column is homogeneous coordiante, which is all 1, and will be ignored

@w1th0utnam3 w1th0utnam3 merged commit ad1a2f3 into main Jun 6, 2025
19 checks passed
@w1th0utnam3 w1th0utnam3 deleted the python_bindings branch June 10, 2025 09:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants