mirror of
https://github.com/0xrsydn/idx-cli.git
synced 2026-11-07 09:45:36 +00:00
feat(ownership): import IDX above-1% XLSX holder register
Since June 2026 IDX publishes the monthly "Pemegang Saham di Atas 1%" list as an XLSX workbook on the Data Kepemilikan Saham page instead of a PDF announcement. Add a parser for it and accept `.xlsx` in `ownership import --file`. - src/ownership/xlsx.rs: zip + quick-xml reader (shared strings incl. rich text, sheet cells), exact 12-column header match so the daily above-5% and investor-type/classification workbooks are rejected, Excel serial dates, numeric shares, percent -> bps with float-noise rounding. Builds KseiHoldingDraft directly and reuses the entity normalizers, so investor types stay uppercase like the PDF path. - Fixtures: trimmed excerpts of the real 2026-08-31 above-1% and 2026-09-23 above-5% workbooks. - Unit + CLI tests: import, ticker, releases, above-5% rejection. - Docs: ARCHITECTURE parser pipeline, AGENTS ownership inputs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017a5Cv5Z1NzdYKgKnTiAF4E
This commit is contained in:
parent
5bf3e5d5e3
commit
2c85acb829
9 changed files with 539 additions and 10 deletions
|
|
@ -63,7 +63,7 @@ Preferred bootstrap/update path:
|
|||
Ownership input paths:
|
||||
- primary remote source: discoverable IDX `above1` holder-register PDF
|
||||
- maintained snapshot path: `ownership sync`
|
||||
- local fallback path: PDF, plus local archive `.zip` / `.txt`
|
||||
- local file imports: IDX above-1% `.xlsx` (current format since June 2026), legacy `.pdf`, plus local archive `.zip` / `.txt`
|
||||
|
||||
Important scope note:
|
||||
- archive ZIP/TXT ingest is a fallback/backstop path, not the primary product ingest surface
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue