শুরু করুন

ব্যাংক স্টেটমেন্ট পার্সার দিয়ে নিরাপদ অ্যাপ্লিকেশন তৈরি শুরু করুন

প্রয়োজনীয়তা

ইনস্টল

pip install bankstatementparser

Polars DataFrame সমর্থনের জন্য:

pip install bankstatementparser[polars]

দ্রুত শুরু

যেকোনো ফরম্যাট স্বয়ংক্রিয়ভাবে সনাক্ত ও বিশ্লেষণ করুন

from bankstatementparser import create_parser, detect_statement_format

fmt = detect_statement_format("transactions.ofx")
parser = create_parser("transactions.ofx", fmt)
df = parser.parse()  # pandas DataFrame
print(df.head())

এটি .xml (CAMT/PAIN.001), .csv, .ofx, .qfx, .mt940, এবং .sta ফাইলের সাথে কাজ করে।

CAMT.053 বিশ্লেষণ করুন

from bankstatementparser import CamtParser

parser = CamtParser("statement.xml")
transactions = parser.parse()

PAIN.001 বিশ্লেষণ করুন

from bankstatementparser import Pain001Parser

parser = Pain001Parser("payment.xml")
payments = parser.parse()

বড় ফাইল স্ট্রিমিং

হাজার হাজার লেনদেনযুক্ত ফাইলের জন্য, মেমরি সীমিত রাখতে স্ট্রিমিং ব্যবহার করুন:

parser = CamtParser("large_statement.xml")
for transaction in parser.parse_streaming(redact_pii=True):
    process(transaction)  # মেমরি স্থির থাকে

ইন-মেমরি বিশ্লেষণ

ডিস্ক I/O ছাড়া বাইট থেকে বিশ্লেষণ করুন -- SFTP বা API ওয়ার্কফ্লোর জন্য উপযোগী:

xml_bytes = download_from_sftp()
parser = CamtParser.from_bytes(xml_bytes, source_name="daily.xml")
transactions = parser.parse()

সমান্তরাল ফাইল প্রক্রিয়াকরণ

একসাথে একাধিক ফাইল বিশ্লেষণ করুন:

from bankstatementparser import parse_files_parallel

results = parse_files_parallel([
    "statements/jan.xml",
    "statements/feb.xml",
    "statements/mar.xml",
])
for r in results:
    print(r.path, r.status, len(r.transactions), "rows")

ডিডুপ্লিকেশন

কনফিডেন্স স্কোরসহ সঠিক ডুপ্লিকেট এবং সন্দেহভাজন মিল সনাক্ত করুন:

from bankstatementparser import CamtParser, Deduplicator

parser = CamtParser("statement.xml")
dedup = Deduplicator()
result = dedup.deduplicate(dedup.from_dataframe(parser.parse()))

print(f"Unique: {len(result.unique_transactions)}")
print(f"Exact duplicates: {len(result.exact_duplicates)}")
print(f"Suspected matches: {len(result.suspected_matches)}")

নিরাপদ ZIP প্রক্রিয়াকরণ

বিল্ট-ইন নিরাপত্তা পরীক্ষা (বম্ব সুরক্ষা, এনক্রিপ্টেড এন্ট্রি প্রত্যাখ্যান) সহ জিপ করা XML ফাইল প্রক্রিয়া করুন:

from bankstatementparser import iter_secure_xml_entries, CamtParser

for entry in iter_secure_xml_entries("statements.zip"):
    parser = CamtParser.from_bytes(entry.xml_bytes, source_name=entry.source_name)
    print(f"{entry.source_name}: {len(parser.parse())} transactions")

রপ্তানি

parser = CamtParser("statement.xml")
parser.export_csv("output.csv")
parser.export_json("output.json")

# Polars (bankstatementparser[polars] প্রয়োজন)
polars_df = parser.to_polars()

CLI ব্যবহার

# বিশ্লেষণ ও প্রদর্শন
python -m bankstatementparser.cli --type camt --input statement.xml

# CSV-তে রপ্তানি
python -m bankstatementparser.cli --type camt --input statement.xml --output transactions.csv

# PII দেখিয়ে স্ট্রিম
python -m bankstatementparser.cli --type camt --input statement.xml --streaming --show-pii

CLI বিকল্পসমূহ:

স্থানীয় ডেভেলপমেন্ট সেটআপ

git clone https://github.com/sebastienrousseau/bankstatementparser.git
cd bankstatementparser
python3 -m venv .venv && source .venv/bin/activate
pip install poetry && poetry install --with dev

টেস্ট স্যুট চালান:

pytest

API রেফারেন্স

পার্সার ক্লাসসমূহ

ক্লাস ফরম্যাট ইমপোর্ট
CamtParser CAMT.053 (ISO 20022) from bankstatementparser import CamtParser
Pain001Parser PAIN.001 (ISO 20022) from bankstatementparser import Pain001Parser
CsvStatementParser CSV from bankstatementparser import CsvStatementParser
OfxParser OFX from bankstatementparser import OfxParser
QfxParser QFX from bankstatementparser import QfxParser
Mt940Parser MT940 from bankstatementparser import Mt940Parser

ইউটিলিটি ফাংশনসমূহ

ফাংশন উদ্দেশ্য
detect_statement_format(path) ফাইল ফরম্যাট স্বয়ংক্রিয়ভাবে সনাক্ত করুন
create_parser(path, fmt) উপযুক্ত পার্সার তৈরি করুন
parse_files_parallel(paths) একসাথে একাধিক ফাইল বিশ্লেষণ করুন
iter_secure_xml_entries(zip_path) নিরাপদে ZIP এন্ট্রি ইটারেট করুন

ডেটা ক্লাসসমূহ

ক্লাস উদ্দেশ্য
Deduplicator ডুপ্লিকেট লেনদেন সনাক্ত করুন
DeduplicationResult অনন্য, সঠিক এবং সন্দেহভাজন মিলসহ ফলাফল
InputValidator ফাইল পাথ এবং ফরম্যাট যাচাই করুন
Transaction নরমালাইজড লেনদেন রেকর্ড
FileResult সমান্তরাল বিশ্লেষণের ফলাফল
ZipXMLSource ZIP সদস্য র‍্যাপার

এক্সেপশনসমূহ

এক্সেপশন কখন উত্থাপিত হয়
ParserError বিশ্লেষণ ব্যর্থতা
ExportError রপ্তানি ব্যর্থতা (CSV/JSON/Excel)
ValidationError ইনপুট যাচাই ব্যর্থতা
ZipSecurityError ZIP নিরাপত্তা পরীক্ষা ব্যর্থতা