v1.2.0 (2025-11-25)


Part 1: 最小セット

ルール(エンドユーザ向けに画面表示名で説明)

  • 本セクションでは、実際の画面に表示される名称(ランチャー・メニューなど)をそのまま用いて説明します。
  • 技術用語や内部モジュール名はできる限り避け、操作手順と見た目を優先して記載しています。
  • PyInstaller でビルドした exe を使うことを前提に、インストール済みアプリとしての挙動を説明します(コマンドライン操作が不要なユーザ向け)。
  • ボタンやメニューの表記は画面表示どおり(例: 「水文データ取得」「気象庁 雨量データ取得」「メニュー」「ヘルプ」)を使い、内部のファイル名やモジュール名は出しません。
  • 画面の流れを優先し、設定ファイルや実行パスの詳細は最小限(必要なら Part 2 を参照)。
  • 出力先・ログ先は「標準の保存先」として案内し、実際のパスは補足レベルにとどめます。
  • スクリーンショットを載せる場合は、ランチャー・水文・気象庁の3画面に絞り、デバッグ出力は含めません。
  • exe を主経路として説明し、Python 実行時の注意は補足扱いとします。

今回の変更(要約)

  • アプリを起動すると「ランチャー」が開き、「水文データ取得」と「気象庁 雨量データ取得」をボタンで選べます。どちらを開いても、上部の「メニュー」からもう一方へ移動できます。
  • ランチャーのタイトルにバージョンを表示し、画面上のボタン名やメニュー名を統一しました。
  • 「気象庁 雨量データ取得」では、都道府県リストの読み込み中にリスト上へ「読み込み中」を重ねて表示し、完了後に通常表示へ戻ります。設定ファイルが無くても標準の保存先に出力・ログが書き出されます。

変更内容詳細

  • 「ランチャー」を起動すると「水文データ取得」「気象庁 雨量データ取得」を選んで開けます。どちらも別ウィンドウ(Toplevel)で表示されます。
  • ランチャーのタイトルにバージョンを表示し、画面上のボタン名やメニュー名は統一しています。
  • 「気象庁 雨量データ取得」画面:
  • 都道府県リストをバックグラウンドで読み込み、リスト上に「読み込み中」を重ねて表示し、完了したら自動で消えます。
  • 出力先を指定しなくても標準の保存先(csv/excel/logs)に保存します。
  • 画面上部の「メニュー」から「水文データ取得」へ移動でき、「ヘルプ」も同じ「メニュー」にあります。
  • ログは標準の保存先に出力され、exe の場合は実行ファイルのあるフォルダを基準に保存します。

注意点

  • 「気象庁 雨量データ取得」を初めて開くときは都道府県リストを読み込むため、しばらく「読み込み中」の表示が出ます(通信状況で時間が変わります)。
  • exe 版の場合は追加の操作は不要ですが、Python 実行環境から起動する場合は事前に依存ライブラリ(例: BeautifulSoup)をインストールしてください。
  • exe を自作する場合は、ビルド時に --paths srcpyproject.toml を同梱するオプションを付ける必要があります。

画面イメージ

ランチャー: 「水文データ取得」「気象庁 雨量データ取得」のボタンを表示し、タイトルにバージョンを表示。

スクリーンショット 2025-11-25 152356

気象庁 雨量データ取得画面

スクリーンショット 2025-11-25 152409

気象庁 雨量データ取得:「メニュー」に「水文データ取得」への遷移と「ヘルプ」

スクリーンショット 2025-11-25 160239

出力例

スクリーンショット 2025-11-25 144828


Part 2: 詳細版

ルール(開発者向け / Part 1 の補足)

  • 内部実装や設定ファイル・パスの詳細、ビルド手順などを記載します。画面表示名よりも技術的な用語を優先します。
  • PyInstaller ビルドや Python 実行時のオプション、依存ライブラリなど、運用・開発に必要な情報を補足します。

概要

  • JMA(気象庁雨量データ取得モジュール)を統合し、ランチャーから water_info と並列起動できるようにした。Toplevel 子ウィンドウ方式を採用し、メニューで相互遷移を可能にした。
  • 出力先/ログ/パス解決を JMA 側も本体と揃え、config.yml 不在時でもデフォルトパスで動作。ログのデフォルトは jma_rainfall/logs/app.log(凍結時は exe 親基準)。

主要な技術変更

  • エントリポイント: main.pysrc/launcher.py。単一 Tk ルートでランチャーを起動し、各モジュールは Toplevel で生成。
  • 名称/バージョンの一元管理: src/app_names.py(importlib.metadata → pyproject.toml → fallback)でアプリ・モジュール名とバージョンを提供。ランチャー/メニューで参照。
  • JMA GUI 起動高速化:
  • browse_tab.py で都道府県取得を非同期化し、リスト上にオーバーレイ表示。観測所リストは通常表示のまま。
  • fetcher/controller の import を遅延化。
  • 出力先強制指定を撤廃し、config 不在時はデフォルト(jma_rainfall/csv, .../excel, .../logs)へ自動フォールバック。
  • ログ初期化: app_logger.py で import 時初期化を廃し、get_logger() 呼び出し時に遅延実行。デフォルトログを jma_rainfall/logs/app.log に固定し、凍結時は sys.executable 親基準。
  • メニュー整理: water_info / JMA 相互遷移をメニューに集約、JMA ヘルプもメニュー配下に移動。

ビルド / 実行メモ

  • PyInstaller (Windows)
  • onedir: uv run pyinstaller water_info_acquirer_onedir.spec
  • onefile: uv run pyinstaller water_info_acquirer_onefile.spec
  • GitHub Actions: v* タグ push で build.yml が実行。spec から version 付き成果物名を組み立てて zip し、ドラフトリリースへ添付。
  • パス解決: path_utils.get_project_root() が pyproject.toml/.git を上位探索。凍結時は sys.executable 親を返し、出力/ログはこのルート基準。
  • 依存: requirements.txtbeautifulsoup4 など。JMA GUI は依存未導入だと ImportError になるため、ビルド前に uv pip install -r requirements.txt 推奨。

既知の注意事項 / 運用

  • 初回起動時は都道府県一覧の取得に時間がかかる場合がある(通信状況依存)。オーバーレイは非同期取得完了で消える。
  • config.yml 不在でも jma_rainfall/csv / jma_rainfall/excel / jma_rainfall/logs/app.log に自動出力される(ルートは get_project_root() 基準)。
  • ランチャーと各モジュールは Toplevel 子ウィンドウで起動し、子を閉じると終了する挙動で統一。