Use Chinese short names in IPO reports

Request:
Prefer stock-app-style Chinese display names in IPO report tables, for example 圣邦股份 instead of the full legal issuer name.

Changes:
- Update the hk-ipo-analyst report naming rule to prefer sourced stock short names in 中文名 columns.
- Export stock_short_name into the analysis model dataset.
- Make generated single-ticker reports use the short Chinese name as the title/display label while retaining legal names for disambiguation.
- Refresh the latest dated report and reports README to use Chinese short names consistently.

Verification:
- git diff --check
- .venv/bin/python -m py_compile scripts/build_analysis_dataset.py scripts/generate_ipo_report.py
- CSV validation for stock_short_name on 03661, 01688, and 01191
- Confirmed latest report and README contain no matched full legal issuer names for the refreshed shortlist
This commit is contained in:
2026-06-23 11:15:12 +00:00
parent 406a81a196
commit 2b08ad8689
6 changed files with 427 additions and 414 deletions
+10 -1
View File
@@ -150,9 +150,18 @@ def fmt_int(value: int | None) -> str:
return f"{value:,}"
def chinese_display_name(record: dict[str, str]) -> str:
return record.get("stock_short_name") or record.get("company_name_zh") or ""
def company_display_name(record: dict[str, str]) -> str:
short_name = record.get("stock_short_name") or ""
chinese_name = record.get("company_name_zh") or ""
english_name = record.get("company_name_en") or ""
if short_name and chinese_name and short_name != chinese_name:
return f"{short_name}(法定中文名:{chinese_name}"
if short_name:
return short_name
if chinese_name and english_name:
return f"{chinese_name}{english_name}"
return chinese_name or english_name or "未记录"
@@ -416,7 +425,7 @@ def build_report(record: dict[str, str], rows: list[dict[str, str]], stage: str,
paths = source_paths(record, stage)
source_lines = [f"- `{path}`" for path in paths] or ["- 本阶段没有记录来源路径。"]
company_name = company_display_name(record)
title_name = record.get("company_name_zh") or record.get("company_name_en") or ""
title_name = chinese_display_name(record) or record.get("company_name_en") or ""
title_prefix = f"{ticker} {title_name}" if title_name else ticker
lines = [