Python project template について
Python 開発者向けのプロジェクトテンプレートです。コードチェック、整形、テスト、カバレッジ、CI に加え、devcontainer と pre-commit フックを備えています。
主な機能
- 01Ruff によるコードチェック
- 02Black による整形
- 03Pre-commit フック
- 04Pytest とカバレッジ
- 05GitHub Actions のチェック
- 06Python devcontainer
活用シーン
- 01Python プロジェクトの開始
- 02テストとカバレッジの実行
- 03コミット前のコード規約チェック
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Python プロジェクトテンプレート
以下の開発ツールを備えた、あらゆる Python プロジェクト向けのテンプレートリポジトリです。
ruff:多くのエラーやスタイル上の問題を検出します(flake8、isort、pyupgrade)black:コードを自動でフォーマットします
これらのチェックは、pre-commit ライブラリを使って pre-commit フックとして実行されます。
テスト用の pytest と、カバレッジを測定する pytest-cov プラグインも含まれています。
すべてのチェックとテストは、プルリクエストの作成時と main へのマージ時に GitHub Actions で実行されます。
このリポジトリは Python 3.11 用に設定されています。バージョンを変更するには:
.devcontainer/devcontainer.jsonのimage引数を変更します(ビルド済み Docker イメージの一覧は https://github.com/devcontainers/images/tree/main/src/python をご覧ください).precommit-config.yamlの設定オプションを変更します.github/workflows/python.yamlのバージョン番号を変更します
開発手順
devcontainer を使う場合
このリポジトリには devcontainer(Docker 化された Python 環境)が付属しています。Codespaces で開くと、devcontainer が自動的に初期化されます。
ローカルでは、Dev Containers 拡張機能をインストールした VS Code で開けます。
devcontainer を使わない場合
devcontainer を使えない場合、または使いたくない場合は、まず仮想環境を作成してください。
python3 -m venv .venv
source .venv/bin/activate
次に、開発ツールと pre-commit フックをインストールします。
python3 -m pip install --user -r requirements-dev.txt
pre-commit install
コードとテストの追加
このリポジトリには、非常にシンプルな main.py と、それをテストする tests/main_test.py が用意されています。
これらを独自のコードに置き換え、コードが複雑になるにつれてファイルを追加していくとよいでしょう。
テストを実行する準備ができたら、次を実行します。
python3 -m pytest
ファイル構成
このテンプレートに含まれる各ファイル/フォルダーについて、簡単に説明します。
.devcontainer:devcontainer の設定に使用するファイルを格納するフォルダーdevcontainer.json:devcontainer を設定するファイル。VS Code の設定も含みます
.github:GitHub 固有のファイルとフォルダーを格納するフォルダーworkflows:GitHub Actions の設定ファイルを格納するフォルダーpython.yaml:ツールとテストを実行する GitHub Actions を設定するファイル
tests:Python のテストを格納するフォルダーmain_test.py:main.pyの pytest 形式のテストを含むファイル
.gitignore:Git が追跡しないファイルパターンを記述するファイル.pre-commit-config.yaml:すべての pre-commit フックと引数を列挙するファイルmain.py:プログラムのメイン(現在は唯一の)Python ファイルpyproject.toml:Python 開発ツールの大部分を設定するファイルREADME.md:今読んでいるファイルです!requirements-dev.txt:開発に必要なすべての PyPI パッケージを列挙するファイルrequirements.txt:本番環境に必要なすべての PyPI パッケージを列挙するファイル
詳しい説明については、こちらのブログ記事をご覧ください。
🔎 問題を見つけた場合や、改善案がある場合
このテンプレートリポジトリをより良くするため、ぜひお知らせのうえ、イシューを作成してください!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。