Files
2026-07-22 11:13:42 +02:00

82 lines
2.1 KiB
Python

#!/usr/bin/env python3
"""Scaffold ETL for Japanese Pokémon EN catalog JSON.
Seed mode (default) writes a small valid catalog matching the committed asset
schema. Extend this script to pull TCGdex + Bulbapedia joins for full coverage.
"""
from __future__ import annotations
import argparse
import json
from pathlib import Path
SEED = {
"sets": {
"PMCG1": {
"name_en": "Expansion Pack",
"name_ja": "拡張パック",
"releaseDate": "1996/10/20",
},
"PMCG2": {
"name_en": "Pokémon Jungle",
"name_ja": "ポケモンジャングル",
"releaseDate": "1997/03/14",
},
"SV1a": {
"name_en": "Triplet Beat",
"name_ja": "トリプレットビート",
"releaseDate": "2023/03/10",
},
"SV4a": {
"name_en": "Shiny Treasure ex",
"name_ja": "シャイニートレジャーex",
"releaseDate": "2023/11/10",
},
},
"prints": [
{
"set_id": "PMCG1",
"local_id": "014",
"name_en": "Charmander",
"name_ja": "ヒトカゲ",
"name_en_source": "bulbapedia",
},
{
"set_id": "PMCG1",
"local_id": "021",
"name_en": "Charizard",
"name_ja": "リザードン",
"name_en_source": "bulbapedia",
},
{
"set_id": "SV1a",
"local_id": "001",
"name_en": "Tropius",
"name_ja": "トロピウス",
"name_en_source": "bulbapedia",
},
],
}
def main() -> None:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
"--out",
type=Path,
default=Path("ui_wx/assets/pokemon_jp_en_catalog.json"),
help="Output catalog path",
)
args = parser.parse_args()
args.out.parent.mkdir(parents=True, exist_ok=True)
args.out.write_text(
json.dumps(SEED, ensure_ascii=False, indent=2) + "\n",
encoding="utf-8",
)
print(f"Wrote seed catalog to {args.out}")
if __name__ == "__main__":
main()