I mentioned elsewhere but might as well here again. These tools should only be run on the files that changed, not every single one in the repo. I run my tools with the script equivalent of:
git status | grep \.py | tools
And it should exit in a split second. We have a pretty large codebase, though not gigantic.