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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.