Am 10.06.2014 18:02, schrieb John Ralls:
> On Jun 10, 2014, at 8:24 AM, David Osguthorpe wrote:
>
>> On Mon, Jun 09, 2014 at 12:53:38AM +0200, Christoph Holtermann wrote:
>>> Hello,
>>>
>>> for my python latex invoice script I tried to access the owners data. I 
>>> tried
>>> to work my way to it and came across the kvp system. I made a rude
>>> path through there with a working example to access the companies data.
>>>
>>> If someone is interested in clarifying the swig qof_instance and kvp_frame
>>> stuff for python it would be nice to cooperate.
>>>
>>> My branch on github about this is
>>> https://github.com/c-holtermann/gnucash/tree/python-kvp
>>>
>> Hi
>>
>> I have been working with the python bindings but all my knowledge is from my 
>> human introspection
>> of the existing code
>>
>> I have worked on adding the budget - as you have done you add the include 
>> files to the
>> swig interface file gnucash_core.i and most objects get a base swig interface
>>
>> My analysis shows that the bindings then wrap the raw swig objects inside 
>> more pythonic classes
>> using GnuCashCoreClass as the base object
>>
>> so eg in your your case you might want to define     class 
>> KvpFrame(GnuCashCoreClass):
>>
>> you then add methods by calling the add_methods function
>>
>> eg
>>
>> KvpFrame.add_methods_with_prefix('kvp_frame_')
>>
>> where any c function that starts with the string kvp_frame_ gets added to 
>> the class
>> This does add all methods that begin with this string - the only methods you 
>> can actually
>> use in the class though are those where the C kvpframe structure is the 
>> first argument
>>
>> if methods return special objects the should use methods_return_instances
>> to add the return object type
>>
>> I have messed a little with the Kvp stuff - one problem is that it tends to 
>> return multiple
>> types which is not so easy to handle - may have to follow the GList typemap 
>> as defined
>> in base-typemaps.i
> Note that in master, KVP is converted to a private implementation detail of 
> the class that it's attached to, and once C++ conversion gets to the 
> KVP-using classes it will probably get pushed even further down so that it's 
> a persistence detail, existing only in the backends.
>
> In other words, any KVP code you write will break in the next version.
>
> Regards,
> John Ralls
>
Even now i find it a bit difficult to get to the kvp layer. I tried to get to 
the transactions kvps
( 
https://github.com/c-holtermann/gnucash/commit/636631027d0f8833b3d1b7d8a8c1271ce5f8449e
 )
and ended up writing a function xaccTransGetFrame.

If i get the frame object I'm happy at the moment. Is it intentional that you 
put it private and which is
the intended way to get the kvps of an(y) object ?

regards,

Christoph Holtermann

-- 
--- Nachricht gesendet von C. Holtermann ---
-                                          -
-  Verschlüsselte Nachrichten können über  -
- den öffentlichen Schlüssel auf folgendem -
- Keyserver an mich gesendet werden:       -
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x4DD9CF0482B0620B

_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to