pola-rs/polars · error
didn't expect arguments {a}, {b}
Error message
didn't expect arguments {a}, {b} What it means
Compile-time panic in the polars_expr proc macro: with two special parameters, the (name, name) pair is not the only valid combination ('context', 'kwargs'); any other pair of argument names is rejected.
Source
Thrown at pyo3-polars/pyo3-polars-derive/src/lib.rs:128
panic!("expected a type argument")
}
})
.collect::<Vec<_>>();
let fn_name = &ast.sig.ident;
// Get the tokenstream of the call logic.
let quote_call = match args.len() {
0 => quote_call_no_kwargs(&ast, fn_name),
1 => match args[0].as_str() {
"kwargs" => quote_call_kwargs(&ast, fn_name),
"context" => quote_call_context(&ast, fn_name),
a => panic!("didn't expect argument {a}"),
},
2 => match (args[0].as_str(), args[1].as_str()) {
("context", "kwargs") => quote_call_context_kwargs(&ast, fn_name),
("kwargs", "context") => panic!("'kwargs', 'context' order should be reversed"),
(a, b) => panic!("didn't expect arguments {a}, {b}"),
},
_ => panic!("didn't expect so many arguments"),
};
let quote_process_result = quote_process_results();
let fn_name = get_expression_function_name(fn_name);
quote!(
use ::pyo3_polars::export::*;
// create the outer public function
#[no_mangle]
pub unsafe extern "C" fn #fn_name (
e: *mut polars_ffi::version_0::SeriesExport,
input_len: usize,
kwargs_ptr: *const u8,
kwargs_len: usize,
return_value: *mut polars_ffi::version_0::SeriesExport,View on GitHub (pinned to 9b5d73fd00)
Solutions
- Remove the two unexpected arguments; the attribute does not accept them.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at pyo3-polars/pyo3-polars-derive/src/lib.rs:128 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of pola-rs/polars@9b5d73fd00 (2026-08-19).
Data as JSON: /api/errors/b9a97c7adfbf875d.
Report an issue: GitHub.