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

  1. 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.