Hello, so KVPs should be accessed by objects they belong to and not from the outside. Some questions: * Is it legitimate to have KVP representation in Python at all or is this low-level und should remain to the c-api ? * The information that I'm interested in is the company data for invoices. As far as I' ve seen there is just KVP access to that. * It seems to me that there should be an object Company that is structured similar to Customer and has an assigned object Address identical to Customer. * When only the object should be able to access KVP, who is this object for the company address ? At the moment it's book, I guess. * I could create a python object Company and add getter functions that access the KVPs. But it seems better to me to not introduce objects in python that do not exist in c. * On the other hand it can still be changed afterwards if an object is introduced in c.
regards, Christoph Holtermann Am 12.06.2014 um 23:42 schrieb John Ralls: > On Jun 12, 2014, at 2:17 PM, Christoph Holtermann <[email protected]> wrote: >> 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 ? > Very intentional. Having object state that’s effectively invisible to the > object is an incredibly bad design and is largely to blame for the data > integrity problems we’ve had with the SQL backend. > > On master you can access all of the KVP data using gobject properties. > Qof_instance_get() and qof_instance_set() essentially wrap g_object_get and > set; in the latter case qof_instance_set also marks the object dirty. Some > items also have getter and setter functions; some of those do the change in > an edit/commit block, so you might find it a useful optimization to wrap > multiple calls in its own edit/commit so that it’s all done at once. > > Regards, > John Ralls > -- --- 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
