I've never used, but have heard good things about darglint (although it's now archived): https://github.com/terrencepreilly/darglint
A lot of folks want us to add that kind of enforcement to Ruff (https://github.com/charliermarsh/ruff/issues/458), and I want to do it, but it's a big project and some other stuff has higher priority :)