mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
It is split into - /libgnucash (for the non-gui bits) - /gnucash (for the gui) - /common (misc source files used by both) - /bindings (currently only holds python bindings) This is the first step in restructuring the code. It will need much more fine tuning later on.
53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
#!/usr/bin/env python
|
|
# Test file for price database stuff
|
|
# To update the price database call
|
|
# $PATH/gnucash --add-price-quotes $PATHTOFILE
|
|
# before running this.
|
|
# Adding to a calling bash script would be better
|
|
# Although calling it from here would be even better!
|
|
# OR: export PYTHONPATH=$HOME/progs/lib/python2.6/site-packages
|
|
# Then: gnucash-env ipython
|
|
# The account file is not saved but always use a disposable copy.
|
|
# Change, FILE, CURRENCY and STOCK to those defined in your test account.
|
|
|
|
## @file
|
|
# @brief Test file for price database stuff
|
|
# @author Mike Evans
|
|
# @ingroup python_bindings_examples
|
|
|
|
from gnucash import Session
|
|
|
|
# FILE should be the path to your existing gnucash file/database
|
|
# For a file, simply pass the pathname, for a database you can use
|
|
# these forms:
|
|
# mysql://user:password@host/dbname
|
|
# postgres://user:password@host[:port]/dbname (the port is optional)
|
|
#
|
|
FILE = "PATH_TO_YOUR_TEST_FILE" ## Fail is not saved but use a copy anyway
|
|
|
|
session = Session(FILE, True, False, False)
|
|
|
|
root = session.book.get_root_account()
|
|
book = session.book
|
|
pdb = book.get_price_db()
|
|
comm_table = book.get_table()
|
|
gbp = comm_table.lookup("CURRENCY", "SOME_CURRENCY")
|
|
arm = comm_table.lookup("NASDAQ", "SOME_STOCK")
|
|
latest = pdb.lookup_latest(arm,gbp) # from the table, NOT live data
|
|
value = latest.get_value()
|
|
pl = pdb.get_prices(arm,gbp)
|
|
for pr in pl:
|
|
source = pr.get_source()
|
|
time = pr.get_time()
|
|
v=pr.get_value()
|
|
price = float(v.num)/v.denom
|
|
print time, source, price
|
|
|
|
if len(pl) > 0:
|
|
v0 = pl[0].get_value()
|
|
print arm.get_fullname(), float(v0.num) / float(v0.denom )
|
|
|
|
session.end()
|
|
session.destroy()
|
|
quit()
|