pre-commit black pylint pytest