mcpField
P
python-packaging

python-packaging

github.com/full-stack-skills開発395 回インストール5 週間前に更新
リポジトリ

python-packaging について

Python ライブラリや CLI ツール、インストール可能なプロジェクトを作成する開発者向けのパッケージングガイドです。現代的な構成、メタデータ、ビルドバックエンド、PyPI などへの公開方法を扱います。

主な機能

  1. 01srcレイアウトとフラットレイアウト
  2. 02pyproject.tomlのメタデータと設定
  3. 03ビルドバックエンドの選択
  4. 04Wheelとソース配布のガイド
  5. 05PyPIやプライベートリポジトリへの公開

活用シーン

  1. 01新しいPythonライブラリの構成
  2. 02Python CLIツールのパッケージ化
  3. 03パッケージリリースの準備
  4. 04プライベートリポジトリへの公開

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/full-stack-skills/python-skills --skill python-packaging

インストール後、Claude Code で/python-packagingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE.txt
agents/
openai.yaml
examples/
advanced-usage.md
basic-usage.md
integration.md
references/
advanced-patterns.md
details.md

詳細

出典に関する声明:wshobson/agents の内容を基にしています (MIT License、Copyright (c) 2024 Seth Hobson。ライセンス全文は同じディレクトリの LICENSE.txt をご覧ください)。 使用、変更、再配布は MIT ライセンスの条項に従い、著作権表示を保持する必要があります。

日本語の説明

このスキルでは、フルスタック開発に関連するベストプラクティスとパターンをガイドします。


name: python-packaging description: 適切なプロジェクト構成、setup.py/pyproject.toml、PyPI への公開により、配布可能な Python パッケージを作成します。Python ライブラリのパッケージ化、CLI ツールの作成、Python コードの配布に使用します。

Python のパッケージ化

最新のパッケージ化ツール、pyproject.toml、PyPI への公開を使用して Python パッケージを作成、構成、配布するための包括的なガイドです。

このスキルを使用する場面

  • 配布用の Python ライブラリを作成する
  • エントリーポイントを備えたコマンドラインツールを構築する
  • PyPI またはプライベートリポジトリにパッケージを公開する
  • Python プロジェクトの構成を設定する
  • 依存関係を含むインストール可能なパッケージを作成する
  • wheel とソースディストリビューションをビルドする
  • Python パッケージのバージョン管理とリリースを行う
  • 名前空間パッケージを作成する
  • パッケージのメタデータと分類子を実装する

基本概念

1. パッケージ構成
  • ソースレイアウト:src/package_name/(推奨)
  • フラットレイアウト:package_name/(よりシンプルですが、柔軟性は低くなります)
  • パッケージのメタデータ:pyproject.toml、setup.py、または setup.cfg
  • 配布形式:wheel(.whl)とソースディストリビューション(.tar.gz)
2. 最新のパッケージ化標準
  • PEP 517/518:ビルドシステムの要件
  • PEP 621:pyproject.toml でのメタデータ
  • PEP 660:編集可能インストール
  • pyproject.toml:設定の単一の情報源
3. ビルドバックエンド
  • setuptools:従来から広く使用されています
  • hatchling:最新の、明確な方針を持つツール
  • flit:軽量で、純粋な Python 向け
  • poetry:依存関係管理とパッケージ化
4. 配布
  • PyPI:Python Package Index(公開)
  • TestPyPI:本番環境への公開前のテスト
  • プライベートリポジトリ:JFrog、AWS CodeArtifact など

クイックスタート

最小限のパッケージ構成
my-package/
├── pyproject.toml
├── README.md
├── LICENSE
├── src/
│   └── my_package/
│       ├── __init__.py
│       └── module.py
└── tests/
    └── test_module.py
最小限の pyproject.toml
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "my-package"
version = "0.1.0"
description = "A short description"
authors = [{name = "Your Name", email = "[email protected]"}]
readme = "README.md"
requires-python = ">=3.8"
dependencies = [
    "requests>=2.28.0",
]

[project.optional-dependencies]
dev = [
    "pytest>=7.0",
    "black>=22.0",
]

パッケージ構成のパターン

パターン 1:ソースレイアウト(推奨)
my-package/
├── pyproject.toml
├── README.md
├── LICENSE
├── .gitignore
├── src/
│   └── my_package/
│       ├── __init__.py
│       ├── core.py
│       ├── utils.py
│       └── py.typed          # For type hints
├── tests/
│   ├── __init__.py
│   ├── test_core.py
│   └── test_utils.py
└── docs/
    └── index.md

メリット:

  • ソースから誤ってインポートするのを防ぐ
  • テストでのインポートがより整理される
  • 分離性が高まる

ソースレイアウト用の pyproject.toml:

[tool.setuptools.packages.find]
where = ["src"]
パターン 2:フラットレイアウト
my-package/
├── pyproject.toml
├── README.md
├── my_package/
│   ├── __init__.py
│   └── module.py
└── tests/
    └── test_module.py

よりシンプルですが:

  • インストールせずにパッケージをインポートできる
  • ライブラリではプロフェッショナルさに欠ける
パターン 3:複数パッケージのプロジェクト
project/
├── pyproject.toml
├── packages/
│   ├── package-a/
│   │   └── src/
│   │       └── package_a/
│   └── package-b/
│       └── src/
│           └── package_b/
└── tests/

詳細なパターンと実例

詳細なパターンのドキュメントは references/details.md にあります。上記のナビゲーション階層だけでは不十分な場合は、このファイルをお読みください。

対応範囲

✅ 得意なこと
  • フルスタック開発に関連するベストプラクティス
  • コードアーキテクチャ設計のガイダンス
  • パフォーマンス最適化の提案
⚠️ 必要な情報
  • プロジェクトの具体的な背景
  • 技術スタックの情報
❌ 対応範囲外
  • 技術以外の分野におけるビジネス上の意思決定
  • 具体的なコードの実装(ガイダンスのみを提供)

ワークフロー

Step 1:要件分析

プロジェクトの要件と技術的な制約を理解します

Step 2:アーキテクチャ設計

システムアーキテクチャとコンポーネントの分割を設計します

Step 3:実装ガイダンス

具体的な実装の提案とコードパターンを提示します

Step 4:コードレビュー

コードの品質とベストプラクティスへの準拠状況をレビューします

Step 5:最適化の提案

パフォーマンス最適化と改善の提案を行います

注意点

1. 過剰設計

シンプルなケースで複雑な設計パターンを使用しないようにします

2. パフォーマンスの軽視

特に本番環境では、パフォーマンスの最適化を軽視しないでください

3. セキュリティへの配慮

常にセキュリティとデータ保護を考慮してください

4. テストカバレッジ

特に境界ケースで、十分なテストカバレッジを確保してください

5. ドキュメントの保守

ドキュメントをコードと同期して更新し続けてください

コメント