コンテンツにスキップ

コンベンション

このセクションでは、プロジェクト内で使用されているすべてのツールについて簡潔に説明します。これらのツールは主に、コードが正しく記述されテストされていることを確認するために存在します。

全般: uv

uv は高速な Python パッケージおよびプロジェクトマネージャーです。依存関係の解決、仮想環境の作成、パッケージのビルド、公開を処理します。プロジェクトのすべての設定は pyproject.toml に記載されています。

基本的なコマンドは以下の通りです:

  • uv sync: すべての依存関係をインストールし、仮想環境を作成します。
  • uv lock --upgrade: 依存関係を更新します。
  • source .venv/bin/activate: 仮想環境を有効化します。または uv run <command> を使用して、仮想環境を有効化せずにコマンドを実行することもできます。

テスト: Pytest

Pytest は Python のテストフレームワークで、シンプルかつスケーラブルなテストを簡単に書くことができます。通常の Python 関数としてテストケースを記述し、アサーションを使用して期待される結果を検証できます。Pytest は、テスト環境のセットアップ用のフィクスチャ、パラメータ化テスト、機能拡張用のプラグインなどの強力な機能を提供します。そのシンプルさ、柔軟性、豊富なプラグインエコシステムにより、Python コミュニティで広く使用されています。

テストを実行するには、以下を実行してください:

pytest

セキュリティチェック: Bandit

Bandit は Python コードのセキュリティツールで、一般的なセキュリティ問題や脆弱性を検出します。Python コードを静的に分析し、モジュールの安全でない使用、安全でない関数呼び出し、潜在的なセキュリティリスクなどのセキュリティ上の脅威を特定します。Bandit はさまざまなセキュリティ問題をチェックするプラグインセットを提供し、開発ワークフローに簡単に統合できるため、開発者が開発プロセスの早い段階でセキュリティ問題を特定して修正するのに役立ちます。Python アプリケーションやライブラリのセキュリティ体制を改善するための貴重なツールです。

Bandit ツールを実行するには、以下を実行してください:

bandit -c pyproject.toml -r .

リンティングとフォーマッティング: Ruff

Ruff は高速な Python リンターおよびフォーマッターで、Black、Flake8、Pylint を置き換えます。コードスタイルの適用、エラーの検出、コードの自動フォーマットを行います。設定は pyproject.toml[tool.ruff] セクションにあります。

Ruff を実行するには、以下を実行してください:

ruff check .    # lint
ruff format .   # format

コードカバレッジ: coverage

Coverage はソフトウェア開発で使用されるツールで、テスト中にプログラムのソースコードがどの程度実行されたかを測定します。テストがコードベースをどれだけ網羅的にテストしているかを開発者が理解するのに役立ち、通常はパーセンテージで表されるコードカバレッジのメトリクスを提供します。Coverage ツールはテスト中にどのコード行やブランチが実行されたかを追跡し、カバーされている領域とカバーされていない領域を強調するレポートを生成します。この情報により、開発者はテストされていないコードパスを特定し、テストの有効性を向上させることができます。

Coverage を Pytest と連携して実行するには、以下を実行してください:

coverage run -m pytest

レポートが生成され、coverage report -m または coverage html で確認できます。