YAPF
A formatter for Python files
...You can run it as a command-line tool or call it as a library via FormatCode / FormatFile, making it easy to embed in editors, CI, and custom tooling. Styles are highly configurable: start from presets like pep8, google, yapf, or facebook, then override dozens of options in .style.yapf, setup.cfg, or pyproject.toml. It supports recursive directory formatting, line-range formatting, and diff-only output so you can check or fix just the lines you touched.