# Listing of commits in the history of this repository that make generic (often
# automated) changes to many files and should be ignored by `git blame` since
# the blame for those changes isn't very meaningful.
#
# To make `git blame` respect this file (and any file with this name in any
# repository on your local machine), run:
#
#   git config --global blame.ignorerevsfile .git-blame-ignore-revs
#

# Format with yapf
a163bc6dcfad3cf98507e80f010ab74a811ec913

# Format with Black (first pass)
ae9836de2cb6f65b32f0b6fc40cea96ef33e5ee6

# Format build recipe module with Black
cb27faaba6b948fc21ffcf42a44c2313198d01c8

# Format docstrings
3a0b42f059d7774bd627b88ee7b7e22275faf336
