pola-rs/polars · error
'kwargs', 'context' order should be reversed
Error message
'kwargs', 'context' order should be reversed
What it means
Compile-time panic in the polars_expr proc macro: with two special parameters the order was ('kwargs', 'context'), but the macro only accepts them as ('context', 'kwargs') — context must come first in the function signature.
Source
Thrown at pyo3-polars/pyo3-polars-derive/src/lib.rs:127
} 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 (
e: *mut polars_ffi::version_0::SeriesExport,
input_len: usize,
kwargs_ptr: *const u8,
kwargs_len: usize,View on GitHub (pinned to 9b5d73fd00)
Solutions
- Reverse the order so that 'context' comes before 'kwargs' in the argument list.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at pyo3-polars/pyo3-polars-derive/src/lib.rs:127 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/74331c1ed0b64e44.
Report an issue: GitHub.