Split out from #1577 (item 5).
The inline decode that item 5 points at (register_table_factory in context.rs) calls __datafusion_table_provider_factory__ with the logical-extension-codec capsule as an argument. The existing from_pycapsule! / try_from_pycapsule! macros always call the dunder with call0(), so this call site can't be folded into them as-is.
Fitting it into the macro would need either a variant that accepts call arguments, or a separate Option-returning helper like table_provider_from_pycapsule in crates/util/src/lib.rs, which already has the same argument-passing shape.
Leaving this open rather than changing the behavior of that registration path without input from whoever knows the intended macro shape.
Reactions are currently unavailable
Split out from #1577 (item 5).
The inline decode that item 5 points at (register_table_factory in context.rs) calls __datafusion_table_provider_factory__ with the logical-extension-codec capsule as an argument. The existing from_pycapsule! / try_from_pycapsule! macros always call the dunder with call0(), so this call site can't be folded into them as-is.
Fitting it into the macro would need either a variant that accepts call arguments, or a separate Option-returning helper like table_provider_from_pycapsule in crates/util/src/lib.rs, which already has the same argument-passing shape.
Leaving this open rather than changing the behavior of that registration path without input from whoever knows the intended macro shape.