ludo-technologies

tooling

0
0
# Install this skill:
npx skills add ludo-technologies/python-best-practices --skill "tooling"

Install specific skill from multi-skill repository

# Description

Python development tooling configuration and best practices

# SKILL.md


name: tooling
description: Python development tooling configuration and best practices
globs:
- "*/.py"
- "pyproject.toml"
- "mypy.ini"
- "ruff.toml"


Python Tooling

A comprehensive guide to Python development tools. Configuration best practices for analysis, linters, type checkers, formatters, test frameworks, and package managers.

Why These Tools Matter

To write high-quality Python code, we recommend adopting these tools:

  • pyscn - Detect dead code, duplicates, and circular dependencies to prevent technical debt
  • ruff - Catch bugs and style violations early with fast static analysis
  • mypy - Find errors before runtime with type checking, also improves IDE completion
  • pytest - Build confidence in changes with reliable tests
  • uv - Improve developer experience with fast dependency management

Integrating these into CI/CD reduces code review burden and maintains consistent quality.

Categories

Analysis [HIGH]

Structural code analysis for quality assessment.

Rule Description
analysis-pyscn Dead code, clones, dependencies, complexity with pyscn

Linting [CRITICAL]

Static code analysis with ruff for consistent, high-quality code.

Rule Description
lint-ruff Fast, comprehensive linting with ruff

Type Checking [HIGH]

Static type checking with mypy for type safety and better IDE support.

Rule Description
type-mypy Static type checking with mypy

Formatting [HIGH]

Consistent code formatting with ruff format and import sorting.

Rule Description
fmt-ruff Code formatting and import sorting with ruff

Testing [HIGH]

Test framework configuration with pytest for reliable testing.

Rule Description
test-pytest Testing with pytest, fixtures, and coverage

Package Management [MEDIUM]

Modern Python packaging with uv and pyproject.toml.

Rule Description
pkg-uv Fast package management with uv
pkg-pyproject Project configuration with pyproject.toml

Quick Reference

Minimal pyproject.toml

[project]
name = "myproject"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = []

[project.optional-dependencies]
dev = ["ruff", "mypy", "pytest", "pytest-cov", "pyscn"]

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

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

[tool.mypy]
python_version = "3.11"
strict = true

[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = ["-v", "--tb=short"]

[tool.pyscn]
max_complexity = 15

Common Commands

# Analysis
pyscn analyze .                 # Full quality analysis
pyscn check .                   # CI quality gate

# Linting
ruff check .                    # Check for issues
ruff check . --fix              # Auto-fix issues

# Formatting
ruff format .                   # Format code

# Type checking
mypy .                          # Type check

# Testing
pytest                          # Run tests
pytest --cov=src                # With coverage

# Package management (uv)
uv pip install -e ".[dev]"      # Install with dev deps
uv pip compile pyproject.toml -o requirements.lock

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.