csv import design docs

John Ralls jralls at ceridwen.us
Sat Jan 31 10:57:38 EST 2015

> On Jan 31, 2015, at 3:06 AM, Larry Evans <cppljevans at suddenlink.net> wrote:
> Would:
>  http://svn.gnucash.org/docs/HEAD/druidframework.html
> containing:
>  Derek Atkins derek at ihtfp.com 2004-01-12
>  Work in progress

Aside from the basic outline of how druids work (Gtk calls them assistants now, most other frameworks call them wizards) and the problem statement of how different importers have different requirements, this document is obsolete. If you're not intimately familiar with writing event-driven programs you've got some outside studying to do before you try to understand the importers.

> and:
>  http://svn.gnucash.org/docs/HEAD/qif.html
> containing:
>  Derek Atkins derek at ihtfp.com 2004-01-07
>  A work in progress....

Again, aside from the general arm-waving about what an importer does, this isn't going to be much help. Derek never finished writing it and no-one ever integrated the QIF importer with the others, it's still in Scheme.

> be some help in understanding the csv import code in:
>  https://github.com/Gnucash/gnucash/tree/master/src/import-export/csv-imp
> or is there a better way to understand the design?

Start off by understanding how plugins work: http://svn.gnucash.org/docs/HEAD/group__Plugins.html. You'll also need to understand GtkTreeView: https://developer.gnome.org/gtk3/unstable/TreeWidget.html and the various detail pages. This is one of the most complicated pieces of Gtk, so allocate plenty of time to study it.

After that you're going to have to study the code, sorry. It's not very well documented. A quick grep suggests the author of csv-import used only the matcher from the generic import code, so the parts you're interested in will be only in csv-imp.

John Ralls

More information about the gnucash-devel mailing list