generate_python_variadic_binding

Macro generate_python_variadic_binding 

Source
generate_python_variadic_binding!() { /* proc-macro */ }
Expand description

Generate Python (PyO3) binding for a variadic mathematical function

§Arguments

  • name - The function name (e.g., add)

§Examples

generate_python_variadic_binding!(add);

Generates:

#[pyfunction]
#[pyo3(signature = (*args))]
pub fn add(args: &Bound<'_, PyTuple>) -> PyResult<PyExpression> {
    let mut exprs = Vec::new();
    for arg in args {
        exprs.push(sympify_python(&arg)?);
    }
    Ok(PyExpression {
        inner: Expression::function("add", exprs),
    })
}