GnuCash c935c2f+
Loading...
Searching...
No Matches
Functions
gnc_convenience.py File Reference

some functions to make life easier when using python-bindings More...

Go to the source code of this file.

Functions

 gnc_convenience.get_transaction_list (account)
 
 gnc_convenience.get_splits_without_lot (account=None, split_list=None)
 
 gnc_convenience.find_account (account, name, account_list=None)
 
 gnc_convenience.find_lot (lot_list, search_string)
 
 gnc_convenience.find_split (split_list, search_string)
 
 gnc_convenience.find_split_recursive (account, search_string)
 
 gnc_convenience.find_transaction (account, name, ignore_case=True, transaction_list=None)
 

Detailed Description

some functions to make life easier when using python-bindings

Author
Christoph Holtermann (c.hol.nosp@m.term.nosp@m.ann@g.nosp@m.mx.d.nosp@m.e)
Date
May 2011

Definition in file gnc_convenience.py.

Function Documentation

◆ find_account()

gnc_convenience.find_account (   account,
  name,
  account_list = None 
)
Recursively searches full names of account and descendents

returns a list of accounts which contain name.

options:

account:      account to start search in.
name:         name to search for.
account_list: (optional) list to append accounts to.

Definition at line 59 of file gnc_convenience.py.

59def find_account(account,name,account_list=None):
60 """Recursively searches full names of account and descendents
61
62 returns a list of accounts which contain name.
63
64 options:
65
66 account: account to start search in.
67 name: name to search for.
68 account_list: (optional) list to append accounts to.
69
70 """
71
72 if not account_list:
73 account_list=[]
74
75 for child in account.get_children():
76 account_list=find_account(child,name,account_list)
77
78 account_name=account.GetName()
79 if name in account_name:
80 account_list.append(account)
81
82 return account_list
83
84

◆ find_lot()

gnc_convenience.find_lot (   lot_list,
  search_string 
)
Searches lots in lot_list for search_string.

returns list of lots where title contains search_string.

options:

lot_list:       List of Lots to search in.
search_string:  String to search for.

Definition at line 85 of file gnc_convenience.py.

85def find_lot(lot_list,search_string):
86 """Searches lots in lot_list for search_string.
87
88 returns list of lots where title contains search_string.
89
90 options:
91
92 lot_list: List of Lots to search in.
93 search_string: String to search for.
94
95 """
96
97 rlist=[]
98 for lot in lot_list:
99 ltitle=lot.get_title()
100 if search_string in ltitle:
101 rlist.append(lot)
102 return rlist
103
104

◆ find_split()

gnc_convenience.find_split (   split_list,
  search_string 
)
Searches a list of splits for search_string

returns a list of splits that have search_string as part of
memo or
description of parent transaction.

options:

split_list:     List of Splits to search in.
search_string:  String to search for.

Definition at line 105 of file gnc_convenience.py.

105def find_split(split_list,search_string):
106 """Searches a list of splits for search_string
107
108 returns a list of splits that have search_string as part of
109 memo or
110 description of parent transaction.
111
112 options:
113
114 split_list: List of Splits to search in.
115 search_string: String to search for.
116
117 """
118
119 rlist=[]
120 for split in split_list:
121 memo=split.GetMemo()
122 transaction_description=split.GetParent().GetDescription()
123 if (search_string in memo) or (search_string in transaction_description):
124 rlist.append(split)
125 return rlist
126
127

◆ find_split_recursive()

gnc_convenience.find_split_recursive (   account,
  search_string 
)
Searches account and descendants for Splits containing search_string

returns a list of splits that have search_string as part of
memo or
description of parent transaction.

options:

account:        Account to search in.
search_string:  String to search for.

Definition at line 128 of file gnc_convenience.py.

128def find_split_recursive(account, search_string):
129 """Searches account and descendants for Splits containing search_string
130
131 returns a list of splits that have search_string as part of
132 memo or
133 description of parent transaction.
134
135 options:
136
137 account: Account to search in.
138 search_string: String to search for.
139
140 """
141
142 rlist = []
143 child_account_splits = []
144
145 # Get all splits in descendants
146 for child in account.get_children():
147 childsplits = find_split_recursive(child, search_string)
148 child_account_splits += childsplits
149
150 # Get all splits in account
151 splits=account.GetSplitList()
152 basic_account_splits=find_split(splits,search_string)
153
154 rlist=child_account_splits+basic_account_splits
155 return rlist
156
157

◆ find_transaction()

gnc_convenience.find_transaction (   account,
  name,
  ignore_case = True,
  transaction_list = None 
)
Searches the transactions of an account for name.

Searches in description and in memo of each split.
returns a list of transactions that match criteria.

options:

account:          Account to search in.
name:             String to search for.
ignore_case:      (optional, default=True) Ignore case if True.
transaction_list: (optional) list of transactions to search in.

Definition at line 158 of file gnc_convenience.py.

158def find_transaction(account,name,ignore_case=True,transaction_list=None):
159 """Searches the transactions of an account for name.
160
161 Searches in description and in memo of each split.
162 returns a list of transactions that match criteria.
163
164 options:
165
166 account: Account to search in.
167 name: String to search for.
168 ignore_case: (optional, default=True) Ignore case if True.
169 transaction_list: (optional) list of transactions to search in.
170
171 """
172
173 if not transaction_list:
174 transaction_list=get_transaction_list(account)
175
176 ret = []
177 if ignore_case:
178 name=name.lower()
179
180 for transaction in transaction_list:
181 found = False
182
183 desc=transaction.GetDescription()
184 if ignore_case:
185 desc=desc.lower()
186
187 if name in desc:
188 found=True
189
190 sl=transaction.GetSplitList()
191 for split in sl:
192 memo = split.GetMemo()
193 if ignore_case:
194 memo=memo.lower()
195
196 if name in memo:
197 found=True
198
199 if found:
200 ret.append(transaction)
201
202 return ret

◆ get_splits_without_lot()

gnc_convenience.get_splits_without_lot (   account = None,
  split_list = None 
)
Returns a list of those Splits in split_list or account which do not have an according lot.

options:

account:      (optional) Account to search in.
split_list:   (optional) List of Splits to search in.

one or the other has to be provided.

Definition at line 34 of file gnc_convenience.py.

34def get_splits_without_lot(account=None,split_list=None):
35 """Returns a list of those Splits in split_list or account which do not have an according lot.
36
37 options:
38
39 account: (optional) Account to search in.
40 split_list: (optional) List of Splits to search in.
41
42 one or the other has to be provided.
43
44 """
45 if split_list==None:
46 if account==None:
47 return []
48 else:
49 split_list=account.GetSplitList()
50
51 rlist=[]
52 for split in split_list:
53 lot=split.GetLot()
54 if lot == None:
55 rlist.append(split)
56 return rlist
57
58

◆ get_transaction_list()

gnc_convenience.get_transaction_list (   account)
Returns all transactions in account.

Splits are derived from account.GetSplitList().

options:

account:    Account to get transactions from.

Definition at line 14 of file gnc_convenience.py.

14def get_transaction_list(account):
15 """Returns all transactions in account.
16
17 Splits are derived from account.GetSplitList().
18
19 options:
20
21 account: Account to get transactions from.
22
23 """
24
25 split_list=account.GetSplitList()
26 transaction_list=[]
27 for split in split_list:
28 transaction=split.GetParent()
29 if not (transaction in transaction_list): # this check may not be necessary.
30 transaction_list.append(transaction)
31 return transaction_list
32
33