[GNC-dev] [GNC] ofxtools - a Python OFX library

John Ralls jralls at ceridwen.us
Fri May 31 13:47:01 EDT 2019

> On May 31, 2019, at 8:51 AM, Christopher Singley <csingley at gmail.com> wrote:
> On 5/31/19 9:58 AM, John Ralls wrote:
>> The GnuCash API documentation is generated by Doxygen. Some parts are documented better than others. It's built nightly and may be found at https://code.gnucash.org/docs/MAINT.
>> Regards,
>> John Ralls
> If I want to find, say, gnc_account_imap_find_account(), there doesn't seem to be a relevant overview. The function name seems to be directing me to Account.h, where I can indeed find it in context, along with a helpful comment adjacent.  It's a start in making sense of it.
> But what about, say, xaccLotComputeCapGains()?  Where do I look to find that?
> There's many hundreds of these dumped one after the other in the python wrapper bindings module.  The reverse lookups are painful.
> I can't imagine this is a focus for a large C application, but the work done by the fellows from parit is tantalizing.

There's a function index at https://code.gnucash.org/docs/MAINT/globals_func_x.html but xaccLotComputeCapGains isn't in it. I had to grep for it, it's in libgnucash/engine/capgains.[ch] and has no documentation at all, which is why it's not in the function index.

In theory the beginning of function names should begin with the class and the class's interface should be described in a file named class.h and should be implemented in class.c. The original, basic classes like Account, Split, and Transaction have function names beginning with xacc, for X-Accounting, GnuCash's original name; most of the rest have names beginning with Gnc or QOF (for Query Object Framework). 

Unfortunately over the years the discipline of following that theory has broken down many times and we wind up with functions in unexpected headers and implementation files.

John Ralls

More information about the gnucash-devel mailing list