~/talk

Python Linters at Scale

Talkat PyCon US 2023 · 2023-04-19..04-27· [developer-experience]
name:Jimmy Lai
links:none on file
slides:none on file

Covers using Black, Flake8, isort, and Mypy across many repositories and developers by building a reusable linter framework that automates updates and shared configurations, runs linters only on changed code to speed up analysis, collects logs/metrics for observability, and applies automatic fixes for common issues. Describes configuration recommendations for these linters and practical solutions for scaling linting to thousands of runs across millions of lines of code.

AI-written summary · about

  1. 0:00Intro
  2. 1:42Python Codebases
  3. 2:18Black: code formatting
  4. 2:45isort: import sorting
  5. 3:16Flake8: code style, syntax errors and bugs
  6. 3:52mypy: type checking
  7. 4:25Version Control
  8. 5:44Continuous Integration (CI) Runs
  9. 6:31Large Codebase
  10. 6:47Multiple Codebases
  11. 8:36Checklist for Speeding up Linters
  12. 9:09Only run necessary analysis on updated code
  13. 10:06pre-commit: manage pre-commit hooks
  14. 10:51Remote Cache
  15. 12:07Ruff: fast linter implementation using rust
  16. 12:55Checklist for Improving Developer Experience
  17. 13:43Understand Developer Experience
  18. 15:01fixit: Python linters and autofixes using LibCST
  19. 16:02Our Custom Python Linters: Github Check with annotations
  20. 16:57Our Custom non-Python Linters: rebase reminder
  21. 18:53Our Custom Python Linters: deprecation toolkit
  22. 20:24Reusable Workflows
  23. 21:06Automated Refactoring
  24. 22:01Our Custom Python Autofixes: FlakeB
  25. 23:51Our Custom non-Python Autofixes: notify-reviewer-teams
  26. 25:53Recap
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.