davidjo / gnucash_python

gnucash report writing in python
Other
3 stars 0 forks source link

This is an alpha alpha implementation of report writing in python Three existing reports "functioning" - hello_world example, price_scatter and cash_flow

Functioning means a report page is displayed which can be exported as html. Coding primarily based on scheme at the moment for testing and comparing to the scheme way

Major update to work with gnucash 3.2 and python 3

Requirements:

swig python python introspection bindings to gtk version 3 python gobject/glib bindings python elementtree module gnucash python bindings

The git source should be stored in a directory called python under ~/.gnucash. The git branch release is the minimal files needed for working, master is all files including implementations which failed or been superseded.

Implementation needs 1 compiled module, swighelpers.so plus introspection bindings for 15 gnucash gobjects, built under plugin/gir_build. The directory ~/.gnucash/python/plugin should be copied to the primary gnucash source under gnucash/python as a subdirectory. The shared objects (.so) need to be copied back to ~/.gnucash/python after compilation. The introspection binding typelibs need to be copied back to ~/.gnucash/python/girepository.

Makefile.wrap is defined which is designed to be run in an existing gnucash source after a full compilation step

to compile: make -f Makefile.wrap release

to build introspection bindings in plugin/gir_build: make -f Makefile.wrap_gir repository

Three defines required

HTML output is via python wrappers access to the gnucash webkit output functions python elementtree module used as document model for HTML output

The python modules are designed to work from a ~/.gnucash/python directory ui files need to be copied into a ~/.gnucash/ui directory

A modified main gnucash installation share/gnucash/init.py is needed which loads from a local_init.py file installed in ~/.gnucash/python

PRELIMINARY PARTIAL WORKING ONLY!!

only partial implementation of report options only partial implementation of style tables

modified option saving not working/tested modified report saving not working/tested