Fix Indian Bank extraction and add shared multi-format dates for all banks

This commit is contained in:
A R R R Associates
2026-07-16 21:56:08 +05:30
parent 43ab9c9aae
commit d9ae1519a4
10 changed files with 340 additions and 311 deletions
@@ -3,7 +3,7 @@ import re
import pandas as pd
from pathlib import Path
from .base import BaseParser, StatementMeta, extract_text, amount, norm, finalize, page_of_line
from .common import find, date_iso
from .common import DATE_TOKEN_PATTERN, find, date_iso
class IDFCFirstParser(BaseParser):
bank_name='IDFC FIRST Bank'; parser_name='IDFCFirstParser'
@@ -17,12 +17,12 @@ class IDFCFirstParser(BaseParser):
meta.account_number=find(r'ACCOUNT NO\s*:\s*([0-9X*]+)',text)
meta.customer_id=find(r'CUSTOMER ID\s*:\s*([0-9X*]+)',text)
meta.ifsc=find(r'IFSC\s*:\s*([A-Z0-9]+)',text)
m=re.search(r'STATEMENT PERIOD\s*:\s*(\d{4}-\d{2}-\d{2})\s+TO\s+(\d{4}-\d{2}-\d{2})',text,re.I)
if m: meta.period_from,meta.period_to=m.groups()
m=re.search(rf'STATEMENT PERIOD\s*:\s*({DATE_TOKEN_PATTERN})\s+TO\s+({DATE_TOKEN_PATTERN})', text, re.I)
if m: meta.period_from=date_iso(m.group(1)); meta.period_to=date_iso(m.group(2))
m=re.search(r'Opening Balance\s+Total Debit\s+Total Credit\s+Closing Balance\s*\n\s*([\d,.]+)\s+([\d,.]+)\s+([\d,.]+)\s+([\d,.]+)',text,re.I)
if m: meta.opening_balance,meta.total_debit,meta.total_credit,meta.closing_balance=map(amount,m.groups())
lines=text.splitlines(); rows=[]; current=None; pos=0
pat=re.compile(r'^\s*(\d{2}-[A-Za-z]{3}-\d{4})\s+(\d{2}-[A-Za-z]{3}-\d{4})\s+(.*)$')
pat=re.compile(rf'^\s*({DATE_TOKEN_PATTERN})\s+({DATE_TOKEN_PATTERN})\s+(.*)$', re.I)
for line in lines:
mm=pat.match(line)
if mm: