diff --git a/mt940/models.py b/mt940/models.py index 2ffa197..270a964 100644 --- a/mt940/models.py +++ b/mt940/models.py @@ -385,7 +385,7 @@ def parse(self, data): # match it's difficult to get both the beginning and the end so we're # working around it in a safer way to get everything. tag_re = re.compile( - r'^:(?P(?P[0-9]{2}|NS)(?P[A-Z])?):', + r'^:\n?(?P(?P[0-9]{2}|NS)(?P[A-Z])?):', re.MULTILINE) matches = list(tag_re.finditer(data)) diff --git a/mt940/tags.py b/mt940/tags.py index 64e23b2..06478fb 100644 --- a/mt940/tags.py +++ b/mt940/tags.py @@ -290,6 +290,7 @@ class Statement(Tag): (?P[A-Z]?[DC]) # 2a Debit/Credit Mark (?P[A-Z])? # [1!a] Funds Code (3rd character of the currency # code, if needed) + \n? # apparently some banks (sparkassen) incorporate newlines here (?P[\d,]{1,15}) # 15d Amount (?P[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification Code (?P.{0,16}) # 16x Customer Reference diff --git a/tests/betterplace/amount_formats.yml b/tests/betterplace/amount_formats.yml index a3ff4af..468d7c7 100644 --- a/tests/betterplace/amount_formats.yml +++ b/tests/betterplace/amount_formats.yml @@ -77,6 +77,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -97,13 +98,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/betterplace/currency_in_25.yml b/tests/betterplace/currency_in_25.yml index 54b816f..adc25cb 100644 --- a/tests/betterplace/currency_in_25.yml +++ b/tests/betterplace/currency_in_25.yml @@ -69,6 +69,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -89,13 +90,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/betterplace/empty_86.yml b/tests/betterplace/empty_86.yml index af11e19..284d724 100644 --- a/tests/betterplace/empty_86.yml +++ b/tests/betterplace/empty_86.yml @@ -69,6 +69,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -89,13 +90,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/betterplace/empty_entry_date.yml b/tests/betterplace/empty_entry_date.yml index 17e67c8..6891b32 100644 --- a/tests/betterplace/empty_entry_date.yml +++ b/tests/betterplace/empty_entry_date.yml @@ -69,6 +69,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -89,13 +90,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/betterplace/empty_line.yml b/tests/betterplace/empty_line.yml index d9596af..fc1e716 100644 --- a/tests/betterplace/empty_line.yml +++ b/tests/betterplace/empty_line.yml @@ -69,6 +69,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -89,13 +90,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/betterplace/missing_crlf_at_end.yml b/tests/betterplace/missing_crlf_at_end.yml index 0e9e1d3..e87d4ec 100644 --- a/tests/betterplace/missing_crlf_at_end.yml +++ b/tests/betterplace/missing_crlf_at_end.yml @@ -77,6 +77,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -97,13 +98,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/betterplace/sepa_mt9401.yml b/tests/betterplace/sepa_mt9401.yml index ec56e9d..45e7f52 100644 --- a/tests/betterplace/sepa_mt9401.yml +++ b/tests/betterplace/sepa_mt9401.yml @@ -113,6 +113,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -133,13 +134,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/betterplace/sepa_snippet.yml b/tests/betterplace/sepa_snippet.yml index cc4b710..f24eee9 100644 --- a/tests/betterplace/sepa_snippet.yml +++ b/tests/betterplace/sepa_snippet.yml @@ -97,6 +97,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -117,13 +118,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/betterplace/sepa_snippet_broken.yml b/tests/betterplace/sepa_snippet_broken.yml index 93196cb..2ea7c8f 100644 --- a/tests/betterplace/sepa_snippet_broken.yml +++ b/tests/betterplace/sepa_snippet_broken.yml @@ -97,6 +97,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -117,13 +118,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/betterplace/with_binary_character.yml b/tests/betterplace/with_binary_character.yml index 8b289d3..8e054a4 100644 --- a/tests/betterplace/with_binary_character.yml +++ b/tests/betterplace/with_binary_character.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/cmxl/account_balance_credit.yml b/tests/cmxl/account_balance_credit.yml index b327fb7..7439aa7 100644 --- a/tests/cmxl/account_balance_credit.yml +++ b/tests/cmxl/account_balance_credit.yml @@ -77,6 +77,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -97,13 +98,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/cmxl/account_balance_debit.yml b/tests/cmxl/account_balance_debit.yml index 3274979..326b322 100644 --- a/tests/cmxl/account_balance_debit.yml +++ b/tests/cmxl/account_balance_debit.yml @@ -77,6 +77,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -97,13 +98,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/cmxl/account_identification_iban.yml b/tests/cmxl/account_identification_iban.yml index 30245fc..1473140 100644 --- a/tests/cmxl/account_identification_iban.yml +++ b/tests/cmxl/account_identification_iban.yml @@ -69,6 +69,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -89,13 +90,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/cmxl/account_identification_legacy.yml b/tests/cmxl/account_identification_legacy.yml index 48ae38f..ab3c1e6 100644 --- a/tests/cmxl/account_identification_legacy.yml +++ b/tests/cmxl/account_identification_legacy.yml @@ -69,6 +69,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -89,13 +90,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/cmxl/available_balance.yml b/tests/cmxl/available_balance.yml index 40cd0b5..c37254d 100644 --- a/tests/cmxl/available_balance.yml +++ b/tests/cmxl/available_balance.yml @@ -77,6 +77,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -97,13 +98,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/cmxl/closing_balance.yml b/tests/cmxl/closing_balance.yml index c6434d6..7ad1865 100644 --- a/tests/cmxl/closing_balance.yml +++ b/tests/cmxl/closing_balance.yml @@ -77,6 +77,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -97,13 +98,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/cmxl/mt940.yml b/tests/cmxl/mt940.yml index 08824e8..e4618a5 100644 --- a/tests/cmxl/mt940.yml +++ b/tests/cmxl/mt940.yml @@ -90,6 +90,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -110,13 +111,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/cmxl/reference.yml b/tests/cmxl/reference.yml index 91c1400..11c4a35 100644 --- a/tests/cmxl/reference.yml +++ b/tests/cmxl/reference.yml @@ -69,6 +69,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -89,13 +90,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/cmxl/statement_details.yml b/tests/cmxl/statement_details.yml index 8664afe..63b6541 100644 --- a/tests/cmxl/statement_details.yml +++ b/tests/cmxl/statement_details.yml @@ -69,6 +69,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -89,13 +90,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/cmxl/statement_line.yml b/tests/cmxl/statement_line.yml index 5365022..5d56b58 100644 --- a/tests/cmxl/statement_line.yml +++ b/tests/cmxl/statement_line.yml @@ -69,6 +69,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -89,13 +90,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/cmxl/statement_number.yml b/tests/cmxl/statement_number.yml index 9ac5547..7378c7a 100644 --- a/tests/cmxl/statement_number.yml +++ b/tests/cmxl/statement_number.yml @@ -69,6 +69,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -89,13 +90,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/jejik/abnamro.yml b/tests/jejik/abnamro.yml index 7bdf804..dcda41d 100644 --- a/tests/jejik/abnamro.yml +++ b/tests/jejik/abnamro.yml @@ -105,6 +105,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -125,13 +126,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/jejik/generic.yml b/tests/jejik/generic.yml index 65c0ce2..7884652 100644 --- a/tests/jejik/generic.yml +++ b/tests/jejik/generic.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/jejik/ing.yml b/tests/jejik/ing.yml index 9e7ac90..ee5d4d7 100644 --- a/tests/jejik/ing.yml +++ b/tests/jejik/ing.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/jejik/knab.yml b/tests/jejik/knab.yml index 3dc85b5..55a9a63 100644 --- a/tests/jejik/knab.yml +++ b/tests/jejik/knab.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/jejik/postfinance.yml b/tests/jejik/postfinance.yml index 2b5147a..6ec050a 100644 --- a/tests/jejik/postfinance.yml +++ b/tests/jejik/postfinance.yml @@ -105,6 +105,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -125,13 +126,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/jejik/rabobank-iban.yml b/tests/jejik/rabobank-iban.yml index ae28fd7..7abe9df 100644 --- a/tests/jejik/rabobank-iban.yml +++ b/tests/jejik/rabobank-iban.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/jejik/rabobank.yml b/tests/jejik/rabobank.yml index ad9493e..794246b 100644 --- a/tests/jejik/rabobank.yml +++ b/tests/jejik/rabobank.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/jejik/sns.yml b/tests/jejik/sns.yml index 3c5b98b..9b6b51e 100644 --- a/tests/jejik/sns.yml +++ b/tests/jejik/sns.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/jejik/triodos.yml b/tests/jejik/triodos.yml index 23a4c92..03482c0 100644 --- a/tests/jejik/triodos.yml +++ b/tests/jejik/triodos.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/mBank/mt940.yml b/tests/mBank/mt940.yml index 2bc8990..8b4ba40 100644 --- a/tests/mBank/mt940.yml +++ b/tests/mBank/mt940.yml @@ -97,6 +97,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -117,13 +118,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/mBank/mt942.yml b/tests/mBank/mt942.yml index 9263aca..a2b8cb8 100644 --- a/tests/mBank/mt942.yml +++ b/tests/mBank/mt942.yml @@ -94,6 +94,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -114,13 +115,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/mBank/with_newline_in_tnr.yml b/tests/mBank/with_newline_in_tnr.yml index 4460c82..cdbb6bb 100644 --- a/tests/mBank/with_newline_in_tnr.yml +++ b/tests/mBank/with_newline_in_tnr.yml @@ -97,6 +97,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -117,13 +118,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/sberbank/171011_01234945.yml b/tests/sberbank/171011_01234945.yml index 61f6a65..40d483f 100644 --- a/tests/sberbank/171011_01234945.yml +++ b/tests/sberbank/171011_01234945.yml @@ -125,6 +125,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -145,13 +146,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/self-provided/details_60-63.yml b/tests/self-provided/details_60-63.yml index ecb01d9..617742e 100644 --- a/tests/self-provided/details_60-63.yml +++ b/tests/self-provided/details_60-63.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/self-provided/february_30.yml b/tests/self-provided/february_30.yml index 5dfbee1..0ab3b42 100644 --- a/tests/self-provided/february_30.yml +++ b/tests/self-provided/february_30.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/self-provided/invalid_statement.yml b/tests/self-provided/invalid_statement.yml index af11e19..284d724 100644 --- a/tests/self-provided/invalid_statement.yml +++ b/tests/self-provided/invalid_statement.yml @@ -69,6 +69,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -89,13 +90,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/self-provided/long_statement_number.yml b/tests/self-provided/long_statement_number.yml index be6a7eb..6e84a15 100644 --- a/tests/self-provided/long_statement_number.yml +++ b/tests/self-provided/long_statement_number.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/self-provided/mt942.yml b/tests/self-provided/mt942.yml index b45a460..eb13ca8 100644 --- a/tests/self-provided/mt942.yml +++ b/tests/self-provided/mt942.yml @@ -90,6 +90,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -110,13 +111,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/self-provided/overly_long_details.yml b/tests/self-provided/overly_long_details.yml index 4408284..34fe2f9 100644 --- a/tests/self-provided/overly_long_details.yml +++ b/tests/self-provided/overly_long_details.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/self-provided/raiffeisen-cmi.yml b/tests/self-provided/raiffeisen-cmi.yml index 62bccfb..2cc6d47 100644 --- a/tests/self-provided/raiffeisen-cmi.yml +++ b/tests/self-provided/raiffeisen-cmi.yml @@ -105,6 +105,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -125,13 +126,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/self-provided/raphaelm.yml b/tests/self-provided/raphaelm.yml index 949418f..167d8db 100644 --- a/tests/self-provided/raphaelm.yml +++ b/tests/self-provided/raphaelm.yml @@ -143,6 +143,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -163,13 +164,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/self-provided/sparkassen.sta b/tests/self-provided/sparkassen.sta new file mode 100644 index 0000000..8494f82 --- /dev/null +++ b/tests/self-provided/sparkassen.sta @@ -0,0 +1,4 @@ +:61:1811261126CR +30,00N062NONREF +: +86:166?00GUTSCHR. UEBERWEISUNG?081542?20SVWZ+Test diff --git a/tests/self-provided/sparkassen.yml b/tests/self-provided/sparkassen.yml new file mode 100644 index 0000000..915aea9 --- /dev/null +++ b/tests/self-provided/sparkassen.yml @@ -0,0 +1,150 @@ +&id003 !!python/object:mt940.models.Transactions +data: {} +processors: + post_account_identification: [] + post_available_balance: [] + post_closing_balance: [] + post_date_time_indication: [] + post_final_closing_balance: [] + post_final_opening_balance: [] + post_floor_limit_indicator: [] + post_forward_available_balance: [] + post_intermediate_closing_balance: [] + post_intermediate_opening_balance: [] + post_non_swift: [] + post_opening_balance: [] + post_related_reference: [] + post_statement: [!!python/name:mt940.processors.date_cleanup_post_processor ''] + post_statement_number: [] + post_sum_credit_entries: [] + post_sum_debit_entries: [] + post_transaction_details: [!!python/name:mt940.processors.transaction_details_post_processor ''] + post_transaction_reference_number: [] + pre_account_identification: [] + pre_available_balance: [] + pre_closing_balance: [] + pre_date_time_indication: [] + pre_final_closing_balance: [] + pre_final_opening_balance: [] + pre_floor_limit_indicator: [] + pre_forward_available_balance: [] + pre_intermediate_closing_balance: [] + pre_intermediate_opening_balance: [] + pre_non_swift: [] + pre_opening_balance: [] + pre_related_reference: [] + pre_statement: [!!python/name:mt940.processors.date_fixup_pre_processor ''] + pre_statement_number: [] + pre_sum_credit_entries: [] + pre_sum_debit_entries: [] + pre_transaction_details: [] + pre_transaction_reference_number: [] +tags: + 13: !!python/object:mt940.tags.DateTimeIndication + re: !!python/object/apply:re._compile ["^\n (?P\\d{2})\n (?P\\\ + d{2})\n (?P\\d{2})\n (?P\\d{2})\n (?P\\d{2})\n\ + \ (\\+(?P\\d{4})|)\n ", 98] + 20: !!python/object:mt940.tags.TransactionReferenceNumber + re: !!python/object/apply:re._compile ['(?P.{0,16})', 98] + 21: !!python/object:mt940.tags.RelatedReference + re: !!python/object/apply:re._compile ['(?P.{0,16})', 98] + 25: !!python/object:mt940.tags.AccountIdentification + re: !!python/object/apply:re._compile ['(?P.{0,35})', + 98] + 28: !!python/object:mt940.tags.StatementNumber + re: !!python/object/apply:re._compile ["\n (?P\\d{1,5}) \ + \ # 5n\n (?:/?(?P\\d{1,5}))? # [/5n]\n $", 98] + 60: !!python/object:mt940.tags.OpeningBalance + re: &id001 !!python/object/apply:re._compile ["^\n (?P[DC]) # 1!a\ + \ Debit/Credit\n (?P\\d{2}) # 6!n Value Date (YYMMDD)\n (?P\\\ + d{2})\n (?P\\d{2})\n (?P.{3}) # 3!a Currency\n (?P[0-9,]{0,16})\ + \ # 15d Amount (includes decimal sign, so 16)\n ", 98] + 60M: !!python/object:mt940.tags.IntermediateOpeningBalance + re: *id001 + 60F: !!python/object:mt940.tags.FinalOpeningBalance + re: *id001 + 61: !!python/object:mt940.tags.Statement + re: !!python/object/apply:re._compile ["^\n (?P\\d{2}) # 6!n Value Date\ + \ (YYMMDD)\n (?P\\d{2})\n (?P\\d{2})\n (?P\\\ + d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ + \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ + \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ + \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ + \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ + \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ + \ Bank Reference\n (\\n?(?P.{0,34}))? # [34x] Supplementary\ + \ Details\n $", 98] + 62: !!python/object:mt940.tags.ClosingBalance + re: *id001 + 62M: !!python/object:mt940.tags.IntermediateClosingBalance + re: *id001 + 62F: !!python/object:mt940.tags.FinalClosingBalance + re: *id001 + 64: !!python/object:mt940.tags.AvailableBalance + re: *id001 + 65: !!python/object:mt940.tags.ForwardAvailableBalance + re: *id001 + 86: !!python/object:mt940.tags.TransactionDetails + re: !!python/object/apply:re._compile ["\n (?P(([\\s\\\ + S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] + 34: !!python/object:mt940.tags.FloorLimitIndicator + re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ # 15d Amount (includes decimal sign, so 16)\n $", 98] + NS: !!python/object:mt940.tags.NonSwift + re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ + \ (\\n\\d{2}.{0,})*\n )\n $", 98] + 90: !!python/object:mt940.tags.SumEntries + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ + \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] + 90D: !!python/object:mt940.tags.SumDebitEntries + re: *id002 + 90C: !!python/object:mt940.tags.SumCreditEntries + re: *id002 +transactions: +- !!python/object:mt940.models.Transaction + data: + FRST_ONE_OFF_RECC: null + additional_position_date: null + additional_position_reference: null + additional_purpose: null + amount: !!python/object:mt940.models.Amount + amount: !!python/object/apply:decimal.Decimal ['30.00'] + currency: null + applicant_bin: null + applicant_creditor_id: null + applicant_iban: null + applicant_name: null + bank_reference: null + compensation_amount: null + currency: null + customer_reference: null + date: !!python/object/apply:mt940.models.Date + - !!binary | + B+ILGg== + debitor_identifier: null + deviate_applicant: null + deviate_recipient: null + end_to_end_reference: null + entry_date: !!python/object/apply:mt940.models.Date + - !!binary | + B+ILGg== + extra_details: '' + funds_code: R + gvc_applicant_bin: null + gvc_applicant_iban: null + id: N062 + old_SEPA_CI: null + old_SEPA_additional_position_reference: null + original_amount: null + posting_text: GUTSCHR. UEBERWEISUNG + prima_nota: null + purpose: Test + purpose_code: null + recipient_name: null + return_debit_notes: null + settlement_tag: null + status: C + transaction_code: '166' + transactions: *id003 diff --git a/tests/self-provided/transaction_details_wrapped.yml b/tests/self-provided/transaction_details_wrapped.yml index 9145d0b..75c2dff 100644 --- a/tests/self-provided/transaction_details_wrapped.yml +++ b/tests/self-provided/transaction_details_wrapped.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/self-provided/whitespace.yml b/tests/self-provided/whitespace.yml index 25d58c0..81448dc 100644 --- a/tests/self-provided/whitespace.yml +++ b/tests/self-provided/whitespace.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002 diff --git a/tests/self-provided/wrapped_timestamp.yml b/tests/self-provided/wrapped_timestamp.yml index f7847b7..ec9d571 100644 --- a/tests/self-provided/wrapped_timestamp.yml +++ b/tests/self-provided/wrapped_timestamp.yml @@ -89,6 +89,7 @@ tags: d{2})? # [4!n] Entry Date (MMDD)\n (?P\\d{2})?\n (?P[A-Z]?[DC])\ \ # 2a Debit/Credit Mark\n (?P[A-Z])? # [1!a] Funds Code (3rd\ \ character of the currency\n # code, if needed)\n\ + \ \\n? # apparently some banks (sparkassen) incorporate newlines here\n\ \ (?P[\\d,]{1,15}) # 15d Amount\n (?P[A-Z][A-Z0-9 ]{3})?\ \ # 1!a3!c Transaction Type Identification Code\n (?P.{0,16})\ \ # 16x Customer Reference\n (//(?P.{0,16}))? # [//16x]\ @@ -109,13 +110,13 @@ tags: S]{0,65}\\r?\\n?){0,8}[\\s\\S]{0,65}))\n ", 98] 34: !!python/object:mt940.tags.FloorLimitIndicator re: !!python/object/apply:re._compile ["^\n (?P[A-Z]{3}) # 3!a Currency\n\ - \ (?P[DC]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ + \ (?P[DC ]?) # 2a Debit/Credit Mark\n (?P[0-9,]{0,16})\ \ # 15d Amount (includes decimal sign, so 16)\n $", 98] NS: !!python/object:mt940.tags.NonSwift re: !!python/object/apply:re._compile ["\n (?P\n (\\d{2}.{0,})\n\ \ (\\n\\d{2}.{0,})*\n )\n $", 98] 90: !!python/object:mt940.tags.SumEntries - re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d+)\n (?P.{3})\ + re: &id002 !!python/object/apply:re._compile ["^\n (?P\\d*)\n (?P.{3})\ \ # 3!a Currency\n (?P[\\d,]{1,15}) # 15d Amount\n ", 98] 90D: !!python/object:mt940.tags.SumDebitEntries re: *id002