✓=レビュー済 ○=未レビュー ⚠=Suspect(IDクリックで詳細へ)
| グループ | REQ | SPEC | IMPL | TST |
|---|---|---|---|---|
| CACHE | REQ001 ✓ 関数の実行結果をキャッシュし、同一入力に対して再実行せずにキャッシュから結果を返せること。同期関数・非同期関数の両方をサポートすること。 | SPEC001 ✓ `@spot.mark()` デコレータにより、対象関数の実行結果をキャッシュキーに紐づけて保存する。 2回目以降の同一引数での呼び出しでは関数を実行せずキャッ... | IMPL001 ⚠ Spot.mark() デコレータの実装。sync/async の自動判定、 save_blob/keygen/version/content_type/ser... | TST001 ⚠ mark デコレータのテスト。基本キャッシュ動作、Blobモード、シグネチャ保持 (__name__, __doc__, inspect.signature)、... |
| CACHE | REQ001 ✓ 関数の実行結果をキャッシュし、同一入力に対して再実行せずにキャッシュから結果を返せること。同期関数・非同期関数の両方をサポートすること。 | SPEC002 ✓ `spot.cached_run(*funcs, **kwargs)` コンテキストマネージャにより、 デコレータを直接付与できない外部ライブラリの関数に対して... | IMPL002 ⚠ Spot.cached_run() コンテキストマネージャの実装。 複数関数のラップ、単一関数時のスマートリターン、 0関数時の ValidationError... | TST002 ⚠ cached_run コンテキストマネージャのテスト。 単一関数/複数関数のスマートリターン、型推論を検証する。 |
| CACHE | REQ001 ✓ 関数の実行結果をキャッシュし、同一入力に対して再実行せずにキャッシュから結果を返せること。同期関数・非同期関数の両方をサポートすること。 | SPEC003 ✓ `inspect.iscoroutinefunction()` による自動判定で、同期関数には同期ラッパー (`_execute_sync`)、非同期関数には非... | IMPL003 ⚠ _execute_sync と _execute_async の実装。 inspect.iscoroutinefunction() による自動判定、 _Back... | TST003 ⚠ 同期・非同期関数サポートのテスト。非同期例外伝播、 async thundering herd、async save_sync 動作を検証する。 |
| リンク方向 | カバー数 | カバー率 | 未カバー |
|---|---|---|---|
| SPEC → REQ | 1 / 1 | 100.0% | — |
| IMPL → SPEC | 3 / 3 | 100.0% | — |
| TST → SPEC | 3 / 3 | 100.0% | — |
関数の実行結果をキャッシュし、同一入力に対して再実行せずにキャッシュから結果を返せること。同期関数・非同期関数の両方をサポートすること。
親: —
@spot.mark() デコレータにより、対象関数の実行結果をキャッシュキーに紐づけて保存する。 2回目以降の同一引数での呼び出しでは関数を実行せずキャッシュから結果を返す。 オプション: save_blob, keygen, version, content_type, serializer, save_sync, retention, hooks。 ジェネレータ関数は ConfigurationError で拒否する。
親: REQ001
spot.cached_run(*funcs, **kwargs) コンテキストマネージャにより、 デコレータを直接付与できない外部ライブラリの関数に対して一時的にキャッシュ機能を適用する。 複数関数を同時に渡した場合はタプルで返す。関数が0個の場合は ValidationError を送出する。
親: REQ001
inspect.iscoroutinefunction() による自動判定で、同期関数には同期ラッパー (_execute_sync)、非同期関数には非同期ラッパー (_execute_async) を適用する。 非同期関数のキャッシュ保存は _BackgroundLoop 経由の asyncio イベントループで処理する。
親: REQ001
Spot.mark() デコレータの実装。sync/async の自動判定、 save_blob/keygen/version/content_type/serializer/save_sync/retention/hooks オプションの処理、 ジェネレータ関数の拒否(ConfigurationError)を含む。
親: SPEC001
子: —
Spot.cached_run() コンテキストマネージャの実装。 複数関数のラップ、単一関数時のスマートリターン、 0関数時の ValidationError を含む。
親: SPEC002
子: —
_execute_sync と _execute_async の実装。 inspect.iscoroutinefunction() による自動判定、 _BackgroundLoop 経由の非同期保存処理を含む。
親: SPEC003
子: —
mark デコレータのテスト。基本キャッシュ動作、Blobモード、シグネチャ保持 (name, doc, inspect.signature)、serializer オーバーライド、 version パラメータを検証する。
親: SPEC001
子: —
同期・非同期関数サポートのテスト。非同期例外伝播、 async thundering herd、async save_sync 動作を検証する。
親: SPEC003
子: —