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.
Split out from #1577 (item 5).
The inline decode that item 5 points at (
register_table_factoryincontext.rs) calls__datafusion_table_provider_factory__with the logical-extension-codec capsule as an argument. The existingfrom_pycapsule!/try_from_pycapsule!macros always call the dunder withcall0(), 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 liketable_provider_from_pycapsuleincrates/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.