Today I learned how to run the black Python code formatter as a pre-commit hook on git.
Pre-commit hooks are scripts that git runs right before you commit something. The idea is that you will install scripts that help verify that, whatever is about to be committed, is fine.
Pre-commit hooks are just a subset of all the hooks that git can run for you.
You can (and probably should) check the documentation on this subject,
or you might want to check the .git/hooks
directory of a git repository you have lying around.
What you will notice is that the hooks
directory,
that was created automatically by git,
contains a series of files ending with .sample
that represent samples of the various hooks that you can configure.
The hook scripts, by the way, can be any executable you want. For example, they can be Python scripts with a shebang, making them executable as well.
black
If you want to make sure your Python project has its code formatted according to black
's recommendatitons,
you can define your pre-commit hook to run black
on your code before the code is committed!
This would ensure that no code is committed that isn't formatted properly.
In order to create this pre-commit hook,
just go to .git/hooks
and create a file called pre-commit
,
then put this in:
#!/bin/sh
exec black . --check
That's it, that's more than enough!
Of course, you can get all sorts of fancy and configure black
in a non-standard way,
run the code-formatting check on a specific directory,
or actually tell black
to format the code,
instead of checking if the formatting is appropriate.
Quite cool, right?
That's it for now! Stay tuned and I'll see you around!
+35 chapters. +400 pages. Hundreds of examples. Over 30,000 readers!
My book βPydon'tsβ teaches you how to write elegant, expressive, and Pythonic code, to help you become a better developer. >>> Download it here ππ.