Skip to content

Add ekore_py#554

Draft
AkshatRai07 wants to merge 17 commits into
masterfrom
ekore-py
Draft

Add ekore_py#554
AkshatRai07 wants to merge 17 commits into
masterfrom
ekore-py

Conversation

@AkshatRai07

@AkshatRai07 AkshatRai07 commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

A step for #519
In this PR we:

  • ekore_py crate, which exposes ekore crate using PyO3 and build the lib using maturin.
  • Expose anomalous_dimensions and operator_matrix_elements as Python functions.

TODO

  • Expose necessary functions and constants.
  • Add guards.
  • Add tests.
  • Add CI.
  • Add CD.
  • Add doc-strings.
  • Explore removal of duplicate code.
  • Add Changelog entry.

Copilot AI review requested due to automatic review settings July 21, 2026 20:22
@AkshatRai07

Copy link
Copy Markdown
Collaborator Author

Doubt, what should we name this python library?

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds a new ekore_py crate intended to provide Python bindings for ekore via PyO3, and wires it into the workspace/release metadata while updating crate READMEs to reference the new component.

Changes:

  • Introduces a new crates/ekore_py package with an initial PyO3 module scaffold plus Python packaging metadata (pyproject.toml).
  • Adds pyo3 to workspace dependencies and updates Cargo.lock accordingly.
  • Updates framework documentation and release crate list to include ekore_py.

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
crates/release.json Adds ekore_py to the crate release list.
crates/ekore/README.md Mentions the new ekore_py crate in the framework list.
crates/ekore_py/src/lib.rs Adds initial PyO3 module scaffold (currently a template function).
crates/ekore_py/README.md Introduces README for the Python binding crate.
crates/ekore_py/pyproject.toml Adds maturin-based Python build metadata for ekore_py.
crates/ekore_py/Cargo.toml Adds new Rust crate manifest for the PyO3 cdylib.
crates/ekore_capi/README.md Mentions ekore_py in the framework list.
crates/eko/README.md Mentions ekore_py in the framework list.
crates/dekoder/README.md Mentions ekore_py in the framework list.
Cargo.toml Adds pyo3 to workspace dependencies.
Cargo.lock Updates lockfile format/version and adds PyO3 dependency graph entries.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread crates/ekore_py/README.md Outdated
Comment thread crates/ekore_py/Cargo.toml Outdated
Comment thread crates/ekore_py/Cargo.toml
Comment thread crates/ekore_py/src/lib.rs Outdated
Comment thread crates/ekore_py/src/lib.rs
@felixhekhorn felixhekhorn added enhancement New feature or request rust Rust extension related gsoc26 labels Jul 22, 2026
@felixhekhorn
felixhekhorn marked this pull request as draft July 22, 2026 08:35
@felixhekhorn

Copy link
Copy Markdown
Collaborator

Doubt, what should we name this python library?

I guess there are two options: ekore_py (as in PineAPPL https://github.com/NNPDF/pineappl/tree/master/pineappl_py ) or ekore_pyapi (as in NeoPDF https://github.com/QCDLab/neopdf/tree/master/neopdf_pyapi) - I'm fine with either ... maybe the latter is slightly more consistent?

@AkshatRai07

Copy link
Copy Markdown
Collaborator Author

The crate name will be ekore_py only, I was asking the name of the python library. For eg. it's the eko crate but the python project is eko-rs (hence pip install eko-rs) and library is ekors (hence import ekors). For neopdf_pyapi it's neopdf-hep and neopdf, for pineappl_py it is pineappl and pineappl (both are same).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request gsoc26 rust Rust extension related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants