weather_cache¶
天気情報の JSON キャッシュ管理モジュール。
- exception mike.weather_cache.CacheError¶
Bases:
Exceptionキャッシュ操作エラーを表す例外クラス。
- class mike.weather_cache.WeatherCache(cache_file: str, logger)¶
Bases:
object天気情報のキャッシュを管理するクラス。
日次でのキャッシュ管理を行い、JSONファイルに永続化します。 前日以前のデータは自動的に削除されます。
- clean_old_cache()¶
本日以外のキャッシュエントリを削除します。
前日以前のデータは自動的に削除されます。 削除後、ファイルに保存します。
- clear_all() int¶
全てのキャッシュをクリアします。
- Returns:
クリアされたエントリ数
- Return type:
int
- Raises:
CacheError – キャッシュファイルの保存に失敗した場合
- get(city: str) dict | None¶
指定された都市のキャッシュされた天気データを取得します。
本日のデータのみを返します。前日以前のデータは返しません。
- Parameters:
city (str) – 都市名
- Returns:
キャッシュされたデータ、キャッシュなしの場合は None
- Return type:
dict or None
- get_stats() dict¶
キャッシュの統計情報を取得します。
本日のエントリ数、キャッシュされている都市リストなどを返します。
- Returns:
統計情報を含む辞書
- Return type:
dict
戻り値の構造:
{ 'total_entries': int, # 総エントリ数 'today_entries': int, # 本日のエントリ数 'cities': list, # キャッシュされている都市名リスト 'date': str # 現在の日付 }
- load_cache()¶
キャッシュファイルからデータを読み込みます。
ファイルが存在しない場合は新規作成します。 読み込み後、古いキャッシュを自動削除します。
:raises なし(エラーは内部でログされます)
- save_cache()¶
キャッシュデータをファイルに保存します。
ディレクトリが存在しない場合は自動作成します。
- Raises:
CacheError – ファイル保存に失敗した場合
- set(city: str, data: dict)¶
天気データをキャッシュに登録し、ファイルに保存します。
タイムスタンプ付きで登録されます。
- Parameters:
city (str) – 都市名
data (dict) – キャッシュするデータ