Files
arrr-erp/app/modules/bank_statement_analyzer/parsers/common.py
T
2026-07-13 10:12:19 +05:30

21 lines
751 B
Python

from __future__ import annotations
import re
from .base import amount, norm
def find(pattern,text,group=1,flags=re.I|re.M):
m=re.search(pattern,text,flags)
return norm(m.group(group)) if m else ''
def date_iso(s):
import pandas as pd
x=pd.to_datetime(s,errors='coerce',dayfirst=True)
return '' if pd.isna(x) else x.strftime('%Y-%m-%d')
def split_pages(text): return text.split('\f')
def infer_mode(n):
u=(n or '').upper()
for k,v in [('UPI','UPI'),('NEFT','NEFT'),('IMPS','IMPS'),('RTGS','RTGS'),('CASH DEPOSIT','Cash Deposit'),('CASH WITHDRAWAL','Cash Withdrawal'),('ATM','ATM'),('CHEQUE','Cheque'),('CHQ','Cheque'),('POS','POS'),('EDC','Card Settlement'),('ACH','ACH')]:
if k in u:return v
return 'Other'