python-project について
python-projectは、uvによるパッケージ管理とFlaskによるWebアプリ開発を扱う、現代的なPython開発向けスキルです。プロジェクト初期化とFlaskのひな形を作るスクリプトも含まれます。
主な機能
- 01uvでPythonプロジェクトと依存関係を管理
- 02Flaskアプリ開発のパターンを提示
- 03Ruffのチェックとフォーマットを設定
- 04mypyによる型チェック
- 05プロジェクトとFlaskの初期化スクリプト
活用シーン
- 01uvでPythonプロジェクトを開始
- 02Flaskアプリの構成を作成
- 03プロジェクトのlintとフォーマット
- 04mypyでPythonコードを型チェック
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill python-projectインストール後、Claude Code で/python-projectを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/flask-patterns.mduv-commands.mdscripts/init-project.sh詳細
Python プロジェクトスキル
uv パッケージマネージャーと Flask を使用した、Web コンポーネント向けのモダンな Python プロジェクト開発です。
クイックスタート
uv で新規プロジェクトを作成
# Initialize new project
uv init my-project
cd my-project
# Add dependencies
uv add flask pytest ruff mypy
# Run application
uv run python app.py
# Run with Flask
uv run flask run --debug
パッケージマネージャー:uv
すべての Python パッケージ管理に uv (astral-sh/uv) を使用します。pip、poetry、pyenv、virtualenv を置き換えるツールです。
よく使うコマンド
# Project management
uv init <name> # Initialize project
uv add <package> # Add dependency
uv remove <package> # Remove dependency
uv sync # Sync dependencies from lockfile
uv lock # Generate lockfile
# Running
uv run <command> # Run in project environment
uv run python script.py # Run Python script
uv run pytest # Run tests
# Tools (like pipx)
uvx <tool> # Run tool in ephemeral env
uv tool install <tool> # Install tool globally
# Python versions
uv python install 3.12 # Install Python version
uv python pin 3.12 # Pin version for project
Web フレームワーク:Flask
Web アプリケーションには、軽量な WSGI マイクロフレームワークである Flask を使用します。
最小限の Flask アプリ
# app.py
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
@app.route("/api/data", methods=["GET", "POST"])
def api_data():
if request.method == "POST":
data = request.get_json()
return jsonify({"status": "ok", "received": data})
return jsonify({"message": "Hello, API!"})
if __name__ == "__main__":
app.run(debug=True)
Flask プロジェクトの構成
my_flask_app/
├── app.py # Application entry
├── pyproject.toml # uv project config
├── static/ # CSS, JS, images
│ ├── css/
│ └── js/
├── templates/ # Jinja2 templates
│ ├── base.html
│ └── index.html
└── tests/
└── test_app.py
Flask の実行
# Development
uv run flask run --debug
# With specific host/port
uv run flask run --host=0.0.0.0 --port=8080
プロジェクト設定
pyproject.toml
[project]
name = "my-project"
version = "0.1.0"
description = "Project description"
requires-python = ">=3.11"
dependencies = [
"flask>=3.0",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
"ruff>=0.5",
"mypy>=1.10",
]
[tool.ruff]
line-length = 88
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "UP"]
[tool.mypy]
python_version = "3.11"
strict = true
[tool.pytest.ini_options]
testpaths = ["tests"]
コード品質
# Linting and formatting with ruff
uv run ruff check . # Check for issues
uv run ruff check . --fix # Auto-fix issues
uv run ruff format . # Format code
# Type checking
uv run mypy .
# Testing
uv run pytest
uv run pytest -v --cov=src
スクリプト
scripts/init-project.sh- 標準的な構成で新しい Python プロジェクトを初期化しますscripts/setup-flask.sh- Flask アプリケーションのボイラープレートをセットアップします
参考資料
- uv の完全なリファレンスについては、
references/uv-commands.mdを参照してください - Flask のベストプラクティスについては、
references/flask-patterns.mdを参照してください
コメント
Markdown 対応