Has anyone rolled this out to an existing codebase? What's the best practice? A single commit that reformats the whole codebase? How do you avoid creating merge hell?
You can see how this was done for Fabric, PyPA/Warehouse, and pytest.
General guidelines:
1. One commit with only the automatic formatting. Afterwards you'll be able to skip over it easily with `git hyper-blame` or `git blame $BLACK_REV^ -- $FILE`.
2. Avoid leaving open pull requests. If you do, after landing the blackening commit, blacken all pull requests, too. They shouldn't conflict then.
3. Set up enforcement with pre-commit or CI (you can run `black --check` on Travis or similar).