From e4133d9119abbdbdbdc8f073c852fb9e11e70500 Mon Sep 17 00:00:00 2001 From: JgtAman <41839176+DragnEmperor@users.noreply.github.com> Date: Thu, 6 Aug 2026 10:28:08 +0530 Subject: [PATCH] [chore] Add registered name for CAMS (#31) Signed-off-by: AmanJagotra --- README.md | 9 ++++++--- cas2json/cams/processor.py | 6 ++++++ cas2json/cams/types.py | 1 + pyproject.toml | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ad36989..fc64be7 100644 --- a/README.md +++ b/README.md @@ -32,25 +32,28 @@ pip install -U cas2json ```python # For CAMS/KFINTECH from cas2json import parse_cams_pdf + data = parse_cams_pdf("/path/to/cams/file.pdf", "password") # For NSDL from cas2json import parse_nsdl_pdf + data = parse_nsdl_pdf("/path/to/nsdl/file.pdf", "password") -#For CDSL +# For CDSL from cas2json import parse_cdsl_pdf + data = parse_cdsl_pdf("/path/to/cdsl/file.pdf", "password") # To get data in form of Python dict from dataclasses import asdict + python_dict = asdict(data) # To convert the data from python dict to JSON from msgspec import json -json_data = json.encode(python_dict) - +json_data = json.encode(python_dict) ``` Notes: diff --git a/cas2json/cams/processor.py b/cas2json/cams/processor.py index 99323dd..3f60664 100644 --- a/cas2json/cams/processor.py +++ b/cas2json/cams/processor.py @@ -311,6 +311,11 @@ def finalize_current_scheme(): current_folio, current_pan = folio_pan idx += 1 continue + # Parse investor name between folio details and scheme name + if idx > 0 and "Folio No" in page_lines_data[idx - 1][0] and "PAN" in page_lines_data[idx - 1][0]: + registered_name = line + else: + registered_name = page_lines_data[idx - 1][0] # Long scheme names are sometimes split into multiple lines (usually 2). # Thus, we need to join the split lines. scheme_line = line @@ -342,6 +347,7 @@ def finalize_current_scheme(): rta=rta or self.extract_registrar(scheme_line), opening_units=Decimal("0.0"), calculated_units=Decimal("0.0"), + registered_name=registered_name, ) if current_scheme is None: diff --git a/cas2json/cams/types.py b/cas2json/cams/types.py index 6ad2c04..39a22ed 100644 --- a/cas2json/cams/types.py +++ b/cas2json/cams/types.py @@ -42,6 +42,7 @@ class CAMSScheme(Scheme): rta_code: str | None = None opening_units: Decimal | float | None = None calculated_units: Decimal | float | None = None + registered_name: str | None = None @dataclass(slots=True) diff --git a/pyproject.toml b/pyproject.toml index 524a583..d024fa5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ [project] name = "cas2json" -version = "1.2.6" +version = "1.2.7" authors = [{ name = "Aman Jagotra", email = "dragnemperor@gmail.com" }] maintainers = [ {name = "Aman Jagotra", email = "dragnemperor@gmail.com"},