black is the obvious choice but I tend to dislike it, especially for CLI code, which tends to take too much vertical space when formatted with black. The tools should be integrated with tox and github actions.