GnuCash  5.6-150-g038405b370+
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

def gnc_convenience.get_transaction_list (account)
 
def gnc_convenience.get_splits_without_lot (account=None, split_list=None)
 
def gnc_convenience.find_account (account, name, account_list=None)
 
def gnc_convenience.find_lot (lot_list, search_string)
 
def gnc_convenience.find_split (split_list, search_string)
 
def gnc_convenience.find_split_recursive (account, search_string)
 
def 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()

def 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.

59 def 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()

def 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.

85 def 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()

def 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.

105 def 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()

def 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.

128 def 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()

def 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.

158 def 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
203 

◆ get_splits_without_lot()

def 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.

34 def 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()

def 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.

14 def 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