Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,12 @@ Primary goals:
- `cc_parser/parsers/idfc.py`
- IDFC FIRST Bank extraction (DD Mon YY dates, DR/CR markers, r-prefixed amounts, statement summary).

- `cc_parser/parsers/slice.py`
- Slice profile wrapper (multi-token dates, bare C/D markers).

- `cc_parser/parsers/kotak.py`
- Kotak Mahindra Bank extraction (DD-Mon-YYYY dates, TAD/MAD summary, transaction parsing).

- `cc_parser/parsers/ssfb.py`
- Suryoday SFB extraction (page-1 bounded summary parsing, DD-Mon-YYYY normalization, MITC/example-page isolation).

Expand Down
3 changes: 2 additions & 1 deletion cc_parser/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class BankOption(StrEnum):
axis = "axis"
jupiter = "jupiter"
slice = "slice"
kotak = "kotak"
ssfb = "ssfb"
bob = "bob"
yesbank = "yesbank"
Expand Down Expand Up @@ -439,7 +440,7 @@ def parse_statement(
export_raw_json: Optional raw extractor JSON export path.
skip_blocks: Skip PyMuPDF block extraction to reduce payload size.
verbose: Verbosity count (`-v`, `-vv`, `-vvv`) controlling JSON output.
bank: Parser profile (`auto`, `icici`, `hdfc`, `sbi`, `idfc`, `indusind`, `hsbc`, `axis`, `jupiter`, `slice`, `ssfb`, `bob`, `yesbank`, `equitas`, `generic`).
bank: Parser profile (`auto`, `icici`, `hdfc`, `sbi`, `idfc`, `indusind`, `hsbc`, `axis`, `jupiter`, `slice`, `kotak`, `ssfb`, `bob`, `yesbank`, `equitas`, `generic`).

Returns:
None. Prints summary tables and optionally writes JSON.
Expand Down
3 changes: 2 additions & 1 deletion cc_parser/parsers/factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ def file_matches(self, file_name: str) -> bool:
DetectionRule("sbi", ("SBI",)),
DetectionRule("idfc", ("IDFC",)),
DetectionRule("slice", ("SLICE",)),
DetectionRule("kotak", ("KOTAK",)),
DetectionRule(
"ssfb",
("SURYODAY SMALL FINANCE BANK", "SURYODAY SFB", "SSFB RUPAY"),
Expand Down Expand Up @@ -116,7 +117,7 @@ def detect_bank(raw_data: dict[str, Any]) -> str:
raw_data: Raw extraction payload.

Returns:
One of: `icici`, `hdfc`, `sbi`, `idfc`, `indusind`, `hsbc`, `axis`, `jupiter`, `slice`, `ssfb`, `bob`, `yesbank`, `equitas`, or `generic`.
One of: `icici`, `hdfc`, `sbi`, `idfc`, `indusind`, `hsbc`, `axis`, `jupiter`, `slice`, `kotak`, `ssfb`, `bob`, `yesbank`, `equitas`, or `generic`.
"""
header = _extract_detection_header(raw_data)
# Use basename only for filename checks to avoid matching directory names
Expand Down
Loading
Loading