Difference between revisions of "Python shell"

From GnuCash
Jump to: navigation, search
(extra debug output)
(Usage examples)
Line 39: Line 39:
  
 
The shell provides a python and an ipython interface. Just now only the python shell is working. Ipython had some major API-changes in Version 5.
 
The shell provides a python and an ipython interface. Just now only the python shell is working. Ipython had some major API-changes in Version 5.
 +
 +
== Usage examples ==
 +
 +
The [[Python Bindings]] can be accessed using the gnucash module
 +
 +
import gnucash
 +
 +
To get information about the current book and root_account there are some helpful methods in _sw_app_utils
 +
 +
from gnucash import _sw_app_utils
 +
book_instance = _sw_app_utils.gnc_get_current_book()
 +
book = gnucash.Book(instance = book_instance)
 +
root_account_instance = _sw_app_utils.gnc_get_current_root_account()
 +
root_account = gnucash.Account(instance = root_account_instance)
 +
 +
To get more information have a look at the [[Python Bindings]].
  
 
= Warning =
 
= Warning =
  
 
Be careful - if you use the [[Python Bindings|python bindings]] in the shell to work on gnucash financial data: gnucash is not designed to have multiple instances changing the data at the same time, reading should be secure.
 
Be careful - if you use the [[Python Bindings|python bindings]] in the shell to work on gnucash financial data: gnucash is not designed to have multiple instances changing the data at the same time, reading should be secure.

Revision as of 16:05, 31 March 2020

The python shell provides a gtk window with a python shell.

Installing and Activation

Installing

Python shell comes with the python bindings. Install those.

Activation

The source of the file init.py needs to modified. When compiling gnucash from source it can be done beforehand. If installing from packages the installed file needs to be changed. It may be at different places depending on your distribution / the way it has been installed - something like "local/share/gnucash/python/init.py". "which gnucash" to locate the gnucash binary may be a start to look for it. Enabling extra debug output will output the location of the file.

init.py

# Change this to "if True:" to switch on a python console at gnucash
# startup:
# shelltype can either be "python" or "ipython" (the latter is not yet fully functional)
if False:

Change to

if True:

extra debug output

The python module will print out some additional information when gnucash is started with extra debug output:

gnucash --debug --extra

(see Tracefile#Trace_File_Adjustments)

One important information here is the location of the file.

Location

In the source tree the shell is at gnucash/python (while the python bindings are at bindings/python).

Configuration

The shell provides a python and an ipython interface. Just now only the python shell is working. Ipython had some major API-changes in Version 5.

Usage examples

The Python Bindings can be accessed using the gnucash module

import gnucash

To get information about the current book and root_account there are some helpful methods in _sw_app_utils

from gnucash import _sw_app_utils
book_instance = _sw_app_utils.gnc_get_current_book()
book = gnucash.Book(instance = book_instance)
root_account_instance = _sw_app_utils.gnc_get_current_root_account()
root_account = gnucash.Account(instance = root_account_instance)

To get more information have a look at the Python Bindings.

Warning

Be careful - if you use the python bindings in the shell to work on gnucash financial data: gnucash is not designed to have multiple instances changing the data at the same time, reading should be secure.