Overview
Syllabus
Intro
Python Codebases
Black: code formatting
isort: import sorting
Flake8: code style, syntax errors and bugs
mypy: type checking
Version Control
Continuous Integration (CI) Runs
Large Codebase
Multiple Codebases
Checklist for Speeding up Linters
Only run necessary analysis on updated code
pre-commit: manage pre-commit hooks
Remote Cache
Ruff: fast linter implementation using rust
Checklist for Improving Developer Experience
Understand Developer Experience
fixit: Python linters and autofixes using LibCST
Our Custom Python Linters: Github Check with annotations
Our Custom non-Python Linters: rebase reminder
Our Custom Python Linters: deprecation toolkit
Reusable Workflows
Automated Refactoring
Our Custom Python Autofixes: FlakeB
Our Custom non-Python Autofixes: notify-reviewer-teams
Recap
Taught by
PyCon US