Pythonパッケージ・ライブラリ開発チェックリスト
想定用途
- Pythonパッケージやライブラリを新規開発する
- 既存のパッケージの品質を評価・改善する
- 開発プロセスのチェックリストとして使用する
プロンプト本文
text
# Pythonパッケージ・ライブラリ開発チェックリストプロンプト
## 1. パッケージ・ライブラリの設計
- 機能要件の明確化
- 提供する機能の特定
- 例: データ処理、機械学習、APIラッパー等
- ユースケースの検討
- 例: データクレンジング、モデル構築、外部サービスとの連携等
- アーキテクチャの設計
- モジュール構成の決定
- 例: データ入力、前処理、モデル、評価等のモジュールに分割
- クラス・関数の設計
- 例: データ構造を表現するクラス、処理を行う関数等
- APIの設計
- 公開するインターフェースの決定
- 例: 主要な機能を提供する関数、設定用のクラス等
- ドキュメンテーションの作成
- 例: README、API reference、サンプルコード等
## 2. コーディング
- コーディング規約の遵守
- PEP 8等の規約に沿ったコード記述
- 例: 適切なインデント、命名規則、コメント等
- ドキュメンテーションの追加
- docstringを使用した関数・クラスの説明
- 例: 引数、戻り値、機能の説明等
- テストコードの作成
- ユニットテストの実装
- 例: 個々の関数・クラスの動作を検証するテスト
- 統合テストの実装
- 例: 複数のモジュールを組み合わせた動作を検証するテスト
## 3. パッケージ化
- setup.pyの作成
- パッケージのメタデータ記述
- 例: パッケージ名、バージョン、作者、ライセンス等
- 依存関係の指定
- 例: 必要なPythonバージョン、外部ライブラリ等
## 4. メンテナンスと更新
- バグ修正とアップデート
- イシューの管理
- 例: GitHubのイシュートラッカーを使用した問題の追跡
- パッチリリースの提供
- 例: バグ修正のみを含むマイナーバージョンアップ
- 機能追加と改善
- 新機能の開発
- 例: ユーザーからの要望に基づく機能拡張
- マイナーバージョンアップ
- 例: 新機能を含むリリース
- ユーザーサポート
- ドキュメンテーションの充実化
- 例: よくある質問、トラブルシューティングガイド等の追加
- フィードバックの収集と対応
- 例: ユーザーからの質問・要望への回答、バグ報告への対処等使い方
- パッケージ開発の各段階で該当するチェックリスト項目を確認する
- 開発終了時に全項目を網羅的にレビューする
- チームメンバーと品質基準を共有する
入力例
text
データ処理用のPythonパッケージを開発したいです。
このチェックリストに基づいて、設計段階での注意点を教えてください。出力例
text
## 1. パッケージ・ライブラリの設計
### 機能要件の明確化
データ処理パッケージとして以下を検討してください:
**提供する機能の特定**
- データ読み込み(CSV、JSON、データベース等)
- データ変換・フィルタリング
- 集計・統計処理
- データ出力
**ユースケースの検討**
- データクレンジング(欠損値処理、異常値検出)
- 特徴エンジニアリング
- データ可視化のための前処理
### アーキテクチャの設計
推奨モジュール構成:yourpackage/ ├── init.py ├── io/ # データ入出力 ├── transform/ # データ変換 ├── aggregate/ # 集計処理 └── utils/ # ユーティリティ
(続く...)注意点
- PEP 8規約を厳守する
- docstringはGoogleスタイルまたはNumPyスタイルで統一する
- テストカバレッジは80%以上を目標とする
- setuptoolsやpoetryなど、最新のパッケージングツールを検討する