[GNC-dev] Python Binding: GncOwner fails to convert from C->Python->C

Steve Brown <[email protected]>
Newsgroups gmane.comp.gnome.apps.gnucash.devel
Message-ID <[email protected]>
I get a Python GncOwner object returned to Python. It appears well
formed.

owner:  <class 'gnucash.gnucash_core.GncOwner'> <gnucash.gnucash_core.GncOwner object at 0x7f33d4cc3050>
owner_instance:  <class 'tuple'> (4, <Swig Object of type 'GncVendor *' at 0x7f214b5a9500>)

It's not clear how to easily inspect the Swig object.

However, the object doesn't convert back to C. It's not recognized as
GncVendor.

I get:

ValueError: Python object passed to function with GncOwner * argument couldn't be converted back to pointer of that type

The out typemap for GncOwner looks correct. However, I can't see how
the in typemap gets the swig wrapper object from the tuple created by
the out typemap. 
 
I can recreate the problem in simple_business_create.py with the
attached patch.

If there is nothing obviously wrong with the typemaps, how should I go
about debugging this?

Thanks,
Steve

_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel
getaddr.patch (text/x-patch, 803 B)
diff --git a/bindings/python/example_scripts/simple_business_create.py b/bindings/python/example_scripts/simple_business_create.py
index 029a4f530..2b7e4d1c4 100644
--- a/bindings/python/example_scripts/simple_business_create.py
+++ b/bindings/python/example_scripts/simple_business_create.py
@@ -134,6 +134,11 @@ try:
 
     invoice_customer = Invoice(book, "5", CAD, new_customer)
     customer_extract = invoice_customer.GetOwner()
+    print('customer_extract: ', type(customer_extract), customer_extract)
+    owner = customer_extract.GetEndOwner()
+    print('owner: ', type(owner), owner, owner.get_instance())
+    addr = owner.GetAddr()
+    print('addr: ', type(addr))
     assert( isinstance(customer_extract, Customer) )
     assert( customer_extract.GetName() == new_customer.GetName() )
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.