modern-python-stack

YunosukeYoshino's avatarfrom YunosukeYoshino

Astral社製ツール(uv, Ruff, ty)でPython開発環境を構築。プロジェクト作成、依存関係管理、コード品質改善、CI/CD設定時に使用。

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 7, 2026

When & Why to Use This Skill

This Claude skill automates the creation and management of a high-performance Python development environment using Astral's Rust-based toolchain (uv, Ruff, ty). It streamlines the entire development lifecycle—from lightning-fast dependency resolution and project initialization to unified linting, formatting, and strict type checking—ensuring a modern, maintainable, and efficient codebase.

Use Cases

  • Rapid Project Bootstrapping: Quickly initialize new Python projects with a pre-configured 'uv' environment, replacing slow legacy setups with instant dependency synchronization.
  • Toolchain Modernization: Consolidate fragmented tools like pip, flake8, black, and isort into a single, high-speed configuration within pyproject.toml using Ruff.
  • CI/CD Quality Enforcement: Implement automated quality gates using pre-commit hooks and 'ty' to catch type errors and style violations before code reaches production.
  • Architecture Governance: Use integrated tools like import-linter to enforce strict architectural boundaries and prevent circular dependencies in complex Python applications.
namemodern-python-stack
descriptionAstral社製ツール(uv, Ruff, ty)でPython開発環境を構築。プロジェクト作成、依存関係管理、コード品質改善、CI/CD設定時に使用。

Modern Python Stack

Astral社製Rustツールを中心とした高速Python開発環境。

技術スタック

カテゴリ ツール 用途
パッケージ管理 uv pip代替(10-100倍高速)
リンター/フォーマッター Ruff flake8/black/isort統合
型チェッカー ty mypy代替(約7倍高速)
依存性制御 import-linter アーキテクチャ境界強制
コミット前チェック pre-commit 自動品質担保

🔄 セットアップワークフロー

新規プロジェクト作成時はこのチェックリストで進捗を追跡:

セットアップ進捗:
- [ ] Step 1: uv初期化
- [ ] Step 2: 開発依存追加
- [ ] Step 3: Ruff設定
- [ ] Step 4: pre-commit設定
- [ ] Step 5: 動作確認

Step 1: uv初期化

uv init
uv sync

Step 2: 開発依存追加

uv add --dev ruff ty pre-commit pytest

Step 3: Ruff設定(pyproject.tomlに追加)

[tool.ruff]
line-length = 120
target-version = "py311"

[tool.ruff.lint]
select = ["E", "F", "I", "B", "UP"]

[tool.ruff.lint.isort]
force-single-line = true

Step 4: pre-commit設定

uv run pre-commit install

Step 5: 動作確認

uv run ruff check .
uv run ty check src/
uv run pytest

確認が失敗した場合は、Step 3に戻って設定を修正。


コマンドリファレンス

uv(パッケージ管理)

uv sync                    # 依存同期
uv add package             # 追加
uv add --dev package       # 開発依存追加
uv run script.py           # 実行(常にuv run経由)

Ruff(リント/フォーマット)

uv run ruff check .        # リント
uv run ruff check --fix .  # 自動修正
uv run ruff format .       # フォーマット

ty(型チェック)

uv run ty check src/       # 型チェック

エラー抑制: # ty: ignore[rule-name]


原則

【MUST】必須

  • uvをパッケージ管理に使用(pip禁止)
  • pyproject.tomlで依存関係を一元管理
  • 行長は120文字
  • importはforce-single-line = true
  • pre-commitをセットアップ

【SHOULD】推奨

  • uv.lockをgitにコミット(再現性確保)
  • tyを型チェックに使用
  • アーキテクチャ境界をimport-linterで強制

Anti-Patterns

  • ❌ pip installの使用
  • ❌ python script.pyの直接実行(uv run経由で)
  • ❌ 複数の設定ファイル(.flake8, .isort.cfg等)→ pyproject.tomlに統合

References

詳細設定は以下を参照: