# 開発コマンド (Development Commands)

日常の開発で使うコマンドの一覧．コマンドを推測せず，ここに書かれたものを使う．

## セットアップ (Setup)

| コマンド | 用途 |
| --- | --- |
| `uv sync` | 依存を `.venv/` に入れる（開発用の依存を含む） |
| `uv sync --no-dev --extra import` | 実行時の依存と，取り込み用の openpyxl だけを入れる（研究室 PC） |

## テスト・lint (Test & Lint)

| コマンド | 用途 |
| --- | --- |
| `uv run pytest` | テストを実行する（ダミーデータのみ） |
| `uv run ruff check .` | lint |
| `uv run ruff format .` | 整形（確認だけなら `uv run ruff format --check .`）．`docs/` は `pyproject.toml` で対象外にしている（Markdown のコード例を整形させないため） |

## CLI

| コマンド | 用途 |
| --- | --- |
| `uv run tiasdata --version` | 版を表示する |
| `uv run tiasdata init` | 設定ファイルに従って目録（`catalog.sqlite`）・`store/`・`bundles/`・`backups/`・対応表（`identity.sqlite`）を作り，スキーマのマイグレーションを適用する．何度実行してもよい（不足分だけ適用する） |
| `uv run tiasdata import <取り込み元の名前>` | 設定ファイルの `[sources.<名前>]` を取り込む（保留リスト `holds/<名前>.toml` が必要．空でよい）．`--show-source-names` で問題のあったファイルの名前・対応表の行番号を表示する |
| `uv run tiasdata stats` | 症例・撮影・ファイル・所見の件数を表示する |
| `uv run tiasdata check` | ストア・目録の点検（凍結した版の manifest の照合を含む）．問題が 1 件以上なら終了コード 1 |
| `uv run tiasdata dataset list` | データセットと版の一覧 |
| `uv run tiasdata dataset show <名前>` | 版ごとの件数・作成日時・hub_commit・manifest の SHA-256・備考 |
| `uv run tiasdata dataset freeze <名前> [--note TEXT]` | `datasets/<名前>.toml` を目録に当てはめて新しい版を作る（構成が同じなら作らない）．**リポジトリに未コミットの変更があると止まる**（研究室 PC は pull するだけなので通常は問題ない） |

- 設定ファイルは環境変数 `TIASDATA_CONFIG` のパス，無ければ `~/.config/tiasdata/config.toml`（キーは [SPEC_01「設定ファイル」](../04_SPEC/SPEC_01_アーキテクチャ設計.md)）
- 手元で試すときは一時フォルダに設定ファイルを作って指す（例: `TIASDATA_CONFIG="$TMPDIR/tiasdata-try/config.toml" uv run tiasdata init`．臨床データは使わない）
- 研究室 PC では `ssh labpc "cd C:\Users\Papin\source\TIASDataHub && C:\Users\Papin\.local\bin\uv.exe run tiasdata init"` の形で実行する（[ENV_02](ENV_02_環境構築手順.md)）
- 失敗時は標準エラーに 1 行を出し，終了コード 1（入力・データの問題）または 2（引数の誤り）で終わる
- `import` は openpyxl が要る（手元は `uv sync` で入る．研究室 PC は `uv sync --no-dev --extra import`）．リポジトリの clone から実行する（保留リストを読むため）
- 残りのサブコマンド（書き出し・受け渡し・バックアップ等）は実装した Step で追記する

## 依存の追加 (Dependencies)

| コマンド | 用途 |
| --- | --- |
| `uv add <パッケージ>` | 実行時の依存を追加する（使う側に入るため最小限にする） |
| `uv add --dev <パッケージ>` | 開発用の依存を追加する |
