Last Updated: May 22, 2026
The chapter title says "runtime type checking," but most of the tooling Python developers actually use, mypy and pyright, runs before your code executes. They read the source, walk the type annotations, and report mismatches without running a single line. The Python community still calls this workflow "runtime type checking" because it's wired into CI, pre-commit hooks, and editor save actions, so the type errors arrive while you're working, not at deploy time. This chapter covers both halves: the static checkers that catch type bugs before runtime, and the smaller set of libraries that genuinely validate types when functions are called.