Re: [GNC-dev] Python-Bindings: issue when C expects GList argument
John Ralls <[email protected]>
| Newsgroups | gmane.comp.gnome.apps.gnucash.devel |
|---|---|
| Message-ID | <[email protected]> |
> On May 9, 2022, at 2:17 PM, Matteo Lasagni <[email protected]> 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