def process_transaction(json_formatted_data, line, transaction_regex, desc_regex, ignorable_regexes): transaction_pattern = re.compile(transaction_regex) desc_pattern = re.compile(desc_regex) ignorable_patterns = [ re.compile(ignorable_regex) for ignorable_regex in ignorable_regexes ] m = transaction_pattern.match(line) if transaction_pattern.match(line): opening_balance = bsr_utils.get_opening_balance(json_formatted_data) transaction_type = bsr_utils.get_transaction_type( opening_balance, bsr_utils.pretty_format(m.group(constants.CLOSING_BALANCE_STR))) json_formatted_data[constants.TRANSACTIONS_STR].append({ constants.DATE_STR: bsr_utils.pretty_format(m.group(constants.DATE_STR)), constants.DESCRIPTION_STR: bsr_utils.pretty_format(m.group(constants.DESCRIPTION_STR)), constants.TYPE_STR: transaction_type, constants.AMOUNT_STR: bsr_utils.pretty_format(m.group(constants.AMOUNT_STR)), constants.CLOSING_BALANCE_STR: bsr_utils.pretty_format(m.group(constants.CLOSING_BALANCE_STR)) }) elif bsr_utils.is_ignorable(ignorable_patterns, line): pass elif desc_pattern.match(line): process_desc(json_formatted_data, desc_pattern, line)
def process_transaction(json_formatted_data, i, existing_desc, transaction_regex, file_content, desc_regex, ignorable_regexes): line = file_content[i] return_statement = False Description_value = '' transaction_pattern = re.compile(transaction_regex) desc_pattern = re.compile(desc_regex) ignorable_patterns = [ re.compile(ignorable_regex) for ignorable_regex in ignorable_regexes ] m = transaction_pattern.match(line) if transaction_pattern.match(line): if (len(bsr_utils.pretty_format(m.group(constants.DATE_STR))) > 0) and len( bsr_utils.pretty_format(m.group( constants.DESCRIPTION_STR))) > 0: Description_value = bsr_utils.pretty_format( m.group(constants.DESCRIPTION_STR)) else: Description_value = '' return_statement = True opening_balance = bsr_utils.get_opening_balance(json_formatted_data) transaction_type = bsr_utils.get_transaction_type( opening_balance, bsr_utils.pretty_format(m.group(constants.CLOSING_BALANCE_STR))) json_formatted_data[constants.TRANSACTIONS_STR].append({ constants.DATE_STR: bsr_utils.pretty_format(m.group(constants.DATE_STR)), # constants.DESCRIPTION_STR: bsr_utils.pretty_format(m.group(constants.DESCRIPTION_STR)), constants.DESCRIPTION_STR: Description_value, constants.TYPE_STR: transaction_type, constants.AMOUNT_STR: bsr_utils.pretty_format(m.group(constants.AMOUNT_STR)), constants.CLOSING_BALANCE_STR: bsr_utils.pretty_format(m.group(constants.CLOSING_BALANCE_STR)) }) if return_statement: return existing_desc elif bsr_utils.is_ignorable(ignorable_patterns, line): pass elif desc_pattern.match(line): if existing_desc is None or existing_desc == '': existing_desc = existing_desc + line else: process_desc_custum(json_formatted_data, desc_pattern, line, existing_desc) existing_desc = '' return existing_desc
def process_transaction(json_formatted_data, line, transaction_regex): transaction_pattern = re.compile(transaction_regex) m = transaction_pattern.match(line) if transaction_pattern.match(line): opening_balance = bsr_utils.get_opening_balance(json_formatted_data) transaction_type = bsr_utils.get_transaction_type( opening_balance, bsr_utils.pretty_format(m.group(constants.CLOSING_BALANCE_STR))) json_formatted_data[constants.TRANSACTIONS_STR].append({ constants.DATE_STR: bsr_utils.pretty_format(m.group(constants.DATE_STR)), constants.DESCRIPTION_STR: bsr_utils.pretty_format(m.group(constants.DESCRIPTION_STR)), constants.TYPE_STR: transaction_type, constants.AMOUNT_STR: bsr_utils.pretty_format(m.group(constants.AMOUNT_STR)), constants.CLOSING_BALANCE_STR: bsr_utils.pretty_format(m.group(constants.CLOSING_BALANCE_STR)) })
def process_transaction(json_formatted_data, line, existing_desc, transaction_regex, desc_regex, ignorable_regexes): transaction_pattern = re.compile(transaction_regex) desc_pattern = re.compile(desc_regex) ignorable_patterns = [ re.compile(ignorable_regex) for ignorable_regex in ignorable_regexes ] m = transaction_pattern.match(line) if transaction_pattern.match(line): opening_balance = bsr_utils.get_opening_balance(json_formatted_data) withdraw = float( str(bsr_utils.pretty_format(m.group( constants.WITHDRAW_AMOUNT_STR))).replace(',', '')) deposit = float( str( bsr_utils.pretty_format(m.group( constants.DEPOSIT_AMOUNT_STR)).replace(',', ''))) amount = withdraw + deposit transaction_type = bsr_utils.get_transaction_type( opening_balance, bsr_utils.pretty_format(m.group(constants.CLOSING_BALANCE_STR))) json_formatted_data[constants.TRANSACTIONS_STR].append({ constants.DATE_STR: bsr_utils.pretty_format(m.group(constants.DATE_STR)), constants.DESCRIPTION_STR: existing_desc + bsr_utils.pretty_format(m.group(constants.DESCRIPTION_STR)), constants.TYPE_STR: transaction_type, constants.AMOUNT_STR: amount, constants.CLOSING_BALANCE_STR: bsr_utils.pretty_format(m.group(constants.CLOSING_BALANCE_STR)) }) existing_desc = '' elif bsr_utils.is_ignorable(ignorable_patterns, line): pass elif desc_pattern.match(line): existing_desc = process_desc_custum(desc_pattern, line, existing_desc) return existing_desc