Browse Source

[ENH] Better separation of different MT940 types.

pull/15/head
Ronald Portier (Therp BV) 10 years ago
parent
commit
449c00e4ef
  1. 5
      bank_statement_parse_mt940/mt940.py
  2. 5
      bank_statement_parse_nl_ing_mt940/mt940.py
  3. 2
      bank_statement_parse_nl_rabo_mt940/mt940.py

5
bank_statement_parse_mt940/mt940.py

@ -110,6 +110,7 @@ class MT940(object):
"""Initialize parser - override at least header_regex. """Initialize parser - override at least header_regex.
This in fact uses the ING syntax, override in others.""" This in fact uses the ING syntax, override in others."""
self.mt940_type = 'General'
self.header_lines = 3 # Number of lines to skip self.header_lines = 3 # Number of lines to skip
self.header_regex = '^{1:[0-9A-Z]{25,25}}' # Start of relevant data self.header_regex = '^{1:[0-9A-Z]{25,25}}' # Start of relevant data
self.footer_regex = '^-}$|^-XXX$' # Stop processing on seeing this self.footer_regex = '^-}$|^-XXX$' # Stop processing on seeing this
@ -123,8 +124,8 @@ class MT940(object):
if not bool(re.match(self.header_regex, line)): if not bool(re.match(self.header_regex, line)):
raise ValueError( raise ValueError(
'File starting with %s does not seem to be a' 'File starting with %s does not seem to be a'
' MT940 format bank statement.' %
data[:12]
' valid %s MT940 format bank statement.' %
(data[:12], self.mt940_type)
) )
def parse(self, data): def parse(self, data):

5
bank_statement_parse_nl_ing_mt940/mt940.py

@ -33,6 +33,11 @@ class MT940Parser(MT940):
r'(?P<reference>\w{1,50})' r'(?P<reference>\w{1,50})'
) )
def __init__(self):
"""Initialize parser - override at least header_regex."""
super(MT940Parser, self).__init__()
self.mt940_type = 'ING'
def handle_tag_61(self, data): def handle_tag_61(self, data):
"""get transaction values""" """get transaction values"""
super(MT940Parser, self).handle_tag_61(data) super(MT940Parser, self).handle_tag_61(data)

2
bank_statement_parse_nl_rabo_mt940/mt940.py

@ -38,8 +38,8 @@ class MT940Parser(MT940):
def __init__(self): def __init__(self):
"""Initialize parser - override at least header_regex.""" """Initialize parser - override at least header_regex."""
super(MT940Parser, self).__init__() super(MT940Parser, self).__init__()
self.mt940_type = 'RABO'
self.header_lines = 1 # Number of lines to skip self.header_lines = 1 # Number of lines to skip
# Do not user $ for end of string below: line contains much # Do not user $ for end of string below: line contains much
# more data than just the first line. # more data than just the first line.
self.header_regex = '^:940:' # Start of relevant data self.header_regex = '^:940:' # Start of relevant data

Loading…
Cancel
Save