On Mon, 10 Jan 2011 17:04:50 -0500, Christoph Holtermann <[email protected]> wrote:

Hello and a happy new year !

My interest in gnucash is to have a python-shell-environment which lets me easily access and display
data. I have written some things for myself like simple functions
PrintTransaction(Transaction) and so for other objects.

I use IPython for that purpose. I would like to submit my tries in that direction but for myself I would like to find the best solution for at least these printing functions before I do to not submit something
too preliminary.

I wonder in which way a function that prints an complex object should be done.

When looking around in the internet i saw things like object.prettyPrint(). I came across
object.__format__().

When I print out for example a transaction i want to print out information of objects that are nested into
it. For example I would probably also to print out the splits.

I would like to have some function of the objects that are always called the same way. In the end I would
like to have something as easy as

print object.

Could someone point me something helpful ?

How far into Python are you? It should be pretty easy to write an interpreter for a very simple language like your last suggestion. You would need to decide how you wanted it to work (how will you refer to the objects?). Also, you would need to decide how fancy the environment should be. For instance you could model what you want on IDLE, so there's a prompt, and various commands defined under it. I think IDLE is written using tkinter. I don't know what the best way to do GUI's in Python is; there's a Gtk+ interface that's essentially the same as the c/c++ interface (http://www.pygtk.org/) (and Glade is supposed to work either with c or with python). The object/method syntax is fine (a) if you know it, and (b) you code ways to make Gnucash objects into Python objects (object.prettyPrint() just calls the prettyPrint method on the value of object, so you need to define that kind of object with its methods, and set its data fields to be a Gnucash object).
_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to