[GNC-dev] Python-Bindings: issue when C expects GList argument

John Ralls jralls at ceridwen.us
Mon May 9 20:32:09 EDT 2022



> On May 9, 2022, at 2:17 PM, Matteo Lasagni <laser820 at gmail.com> wrote:
> 
> Hi,
> I am writing a python script to automatically associate a set of
> invoices to a single transaction.
> To this end, I am trying to use the function AutoApplyPaymentsWithLots
> with no success:
> 
> 
> lots = [lot1, lot2, lotn, ..]
> owner.AutoApplyPaymentsWithLots(lots)
> 
> This causes the following error:
> 
> TypeError: in method 'gncOwnerAutoApplyPaymentsWithLots', argument 2 of
> type 'GList *'
> 
> I have tried different solutions from passing different types of python
> objects, to updating the swig typemap and also to modifying the
> auto-generated gnucash_core.c...nothing worked out so far.
> I could write an additional c-wrapper, but I am sure there is a more
> general solution.

The fundamental problem is that there's only a Python out typemap for GList, that is one that converts from a GList* to a python list. Lacking an in typemap the gncOwner.AutoApplyPaymentsWithLots python wrapper expects an already constructed and Swig-wrapped GList*.

Regards,
John Ralls



More information about the gnucash-devel mailing list