Type-Safe Python Decorators

A practical guide to getting decorator type hints right with ParamSpec, Concatenate, and generics