Hi all, I would like to propose adopting Black as code formatter within the python project. There is an older JIRA issue about this ( https://issues.apache.org/jira/browse/ARROW-5176), but bringing it to the mailing list for wider attention.
Black (https://github.com/ambv/black) is a tool for automatically formatting python code in ways which flake8 and our other linters approve of (and fill a similar role to clang-format for C++ and cmake-format for cmake). It can also be added to the linting checks on CI and to the pre-commit hooks like we now run flake8. Using it ensures python code will be formatted consistently, and more importantly automates this formatting, letting you focus on more important matters. Black makes some specific formatting choices, and not everybody (me included) will always like those choices (that's how it goes with something subjective like formatting). But my experience with using it in some other big python projects (pandas, dask) has been very positive. You very quickly get used to how it looks, while it is much nicer to not have to worry about formatting anymore. Best, Joris