Python プロジェクトのボイラープレート(テンプレート)です。devcontainer を使用した開発環境の標準化と、コード品質ツール、AI開発ツールの設定が含まれています。このテンプレートを使用して、高品質な Python プロジェクトを素早く開始できます。
-
devcontainer による開発環境の標準化
- Python 3.12
- uv パッケージマネージャー(高速な依存関係管理)
- Chromium ブラウザと日本語フォントの事前インストール
-
コード品質ツール
- Ruff によるリンティングとフォーマット(保存時に自動適用)
- mypy による厳格な静的型チェック
- pytest と pytest-cov によるテストとカバレッジ測定
-
AI開発ツール
- Cline 用のルール定義(.clinerules/)
- browser_action 対応(Web アプリケーションのテスト用)
- clinerules-bank による言語・フレームワーク固有のガイドライン
-
コーディング規約
- Google スタイルの docstring
- 厳格な型アノテーション
- 関数型アプローチの推奨
- 単一責任の原則などのベストプラクティス
このリポジトリは VS Code の devcontainer 機能を使用しています。VS Code と Docker がインストールされていれば、自動的に開発環境がセットアップされます。
-
リポジトリをクローンまたはテンプレートとして使用
git clone https://github.com/yourusername/python-boilerplate.git cd python-boilerplate -
VS Code で開く
code . -
VS Code が devcontainer を検出し、「Reopen in Container」を提案するので、それをクリックします。
- または、コマンドパレット(F1)から「Remote-Containers: Reopen in Container」を選択
-
開発用依存関係をインストール
uv sync --dev
- このリポジトリをテンプレートとして使用
- プロジェクト名や説明を変更(pyproject.toml)
- 必要な依存関係を追加(初期状態では空になっています)
uv add package_name
-
自動フォーマット: コードは Ruff によって保存時に自動的にフォーマットされます
# 手動でフォーマットする場合 ruff format .
-
静的型チェック: mypy による厳格な型チェックが適用されます
mypy src
-
テスト実行: pytest でテストを実行し、カバレッジレポートを生成
pytest # または詳細なカバレッジレポートを表示 pytest --cov=src --cov-report=term-missing
このプロジェクトでは、clinerules-bank/languages/python/ に定義された詳細なコーディング規約に従います:
- すべてのファイル、クラス、関数、メソッドに docstring を記述
- すべての関数とメソッドに型アノテーションを使用
- インポートは標準ライブラリ、サードパーティ、ローカルの順に整理
- 可能な限り関数型アプローチを採用(純粋関数、不変データ構造)
- クラスを使用する場合は単一責任の原則を守る
テストは tests/ ディレクトリに配置し、以下の原則に従います:
- テスト駆動開発(TDD)のアプローチを推奨
- すべての公開関数とメソッドにはユニットテストを作成
- コードカバレッジは 80% 以上を目標
- 外部依存はモックを使用
python-boilerplate/
├── .clinerules/ # Cline のルール定義
│ ├── 00-core-principles.md
│ ├── 01-development-workflow.md
│ └── ...
├── .devcontainer/ # devcontainer の設定
│ ├── Dockerfile
│ └── devcontainer.json
├── clinerules-bank/ # 言語・フレームワーク固有のガイドライン
│ ├── languages/
│ │ └── python/
│ │ ├── coding-style.md
│ │ └── testing-guidelines.md
│ └── ...
├── src/ # メインのソースコード
├── tests/ # テストコード
├── .clineignore # Cline の除外設定
├── .env.example # 環境変数の例
├── .gitignore # Git の除外設定
├── .python-version # Python バージョン指定(3.12)
├── README.md # このファイル
└── pyproject.toml # プロジェクト設定