pola-rs/polars · error
didn't understand polars_expr attribute
Error message
didn't understand polars_expr attribute
What it means
Proc-macro parse failure for the #[polars_expr] attribute: the attribute TokenStream failed to parse as ExprsFunctionOptions (unrecognised option key or malformed syntax), so the input is rejected with this generic marker via parse_macro_input.
Source
Thrown at pyo3-polars/pyo3-polars-derive/src/lib.rs:275
let out = polars_arrow::ffi::export_field_to_c(&out.to_arrow(polars_core::datatypes::CompatLevel::newest()));
*return_value = out;
}
)
}
#[proc_macro_attribute]
pub fn polars_expr(attr: TokenStream, input: TokenStream) -> TokenStream {
let ast = parse_macro_input!(input as syn::ItemFn);
let options = parse_macro_input!(attr as attr::ExprsFunctionOptions);
let expanded_field_fn = if let Some(fn_name) = options.output_type_fn {
create_field_function(&ast.sig.ident, &fn_name, false)
} else if let Some(fn_name) = options.output_type_fn_kwargs {
create_field_function(&ast.sig.ident, &fn_name, true)
} else if let Some(dtype) = options.output_dtype {
create_field_function_from_with_dtype(&ast.sig.ident, dtype)
} else {
panic!("didn't understand polars_expr attribute")
};
let expanded_expr = create_expression_function(ast);
let expanded = quote!(
#expanded_field_fn
#expanded_expr
);
TokenStream::from(expanded)
}
View on GitHub (pinned to 9b5d73fd00)
Solutions
- Check the syntax of the `polars_expr` attribute against the documented forms and fix it.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at pyo3-polars/pyo3-polars-derive/src/lib.rs:275 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/fe229c1dbdc6ffa2.
Report an issue: GitHub.