pola-rs/polars · error
didn't expect argument {a}
Error message
didn't expect argument {a} What it means
Compile-time panic in the polars_expr proc macro (create_expression_function): the decorated function has exactly one special parameter whose name is neither 'kwargs' nor 'context', which are the only recognised special-cased argument names.
Source
Thrown at pyo3-polars/pyo3-polars-derive/src/lib.rs:123
pat.ident.to_string()
} else {
panic!("expected an argument")
}
} else {
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 (View on GitHub (pinned to 9b5d73fd00)
Solutions
- Remove the unexpected argument from the attribute; only the documented arguments are accepted.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at pyo3-polars/pyo3-polars-derive/src/lib.rs:123 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/fcaf584eac41a959.
Report an issue: GitHub.