20from gnucash
import Session, Account, Split
23from fractions
import Fraction
24from gnc_convenience
import find_account
26FILE =
"./test.gnucash"
43for i
in range(1,len(data)):
44 year = int(data[i].rsplit(
',')[1].rsplit(
'/')[0])
45 month = int(data[i].rsplit(
',')[1].rsplit(
'/')[1])
46 day = int(data[i].rsplit(
',')[1].rsplit(
'/')[2])
47 stock_date.append(datetime.datetime(year,month,day))
48 stock_price.append(float(data[i].rsplit(
',')[5]))
51session = Session(url,
True,
False,
False)
52root = session.book.get_root_account()
54account = book.get_root_account()
55pdb = book.get_price_db()
56comm_table = book.get_table()
57ac = find_account(account,
'Intel')[0]
59stock = ac.GetCommodity()
61pdb = book.get_price_db()
62if len(ac.GetSplitList())<1:
63 print(
'Need at least one Split to get currency info ... ')
65cur = ac.GetSplitList()[0].GetParent().GetCurrency()
68pl = pdb.get_prices(stock,cur)
70 print(
'Need at least one database entry to clone ...')
74for i
in range(1,len(pl)):
75 pdb.remove_price(pl[i])
77for i
in range(0,len(stock_date)):
78 p_new = pl0.clone(book)
79 p_new = gnucash.GncPrice(instance=p_new)
80 print(
'Adding',i,stock_date[i],stock_price[i])
81 p_new.set_time64(stock_date[i])
83 v.num = int(Fraction.from_float(stock_price[i]).limit_denominator(100000).numerator)
84 v.denom = int(Fraction.from_float(stock_price[i]).limit_denominator(100000).denominator)
86 p_new.set_source(
"Finance::Quotes::Historic")