# Binary data types
*.aif binary
*.aifc binary
*.aiff binary
*.au binary
*.bmp binary
*.exe binary
*.icns binary
*.gif binary
*.ico binary
*.jpg binary
*.pck binary
*.png binary
*.psd binary
*.tar binary
*.wav binary
*.whl binary
*.zip binary

# Specific binary files
Lib/test/sndhdrdata/sndhdr.* binary
PC/classicAppCompat.* binary

# Text files that should not be subject to eol conversion
[attr]noeol -text

Lib/test/cjkencodings/*                    noeol
Lib/test/coding20731.py                    noeol
Lib/test/decimaltestdata/*.decTest         noeol
Lib/test/test_email/data/*.txt             noeol
Lib/test/test_importlib/data01/*           noeol
Lib/test/test_importlib/namespacedata01/*  noeol
Lib/test/xmltestdata/*                     noeol

# CRLF files
[attr]dos text eol=crlf

*.bat               dos
*.proj              dos
*.props             dos
*.ps1               dos
*.sln               dos
*.vcxproj*          dos
PC/readme.txt       dos
PCbuild/readme.txt  dos

# Language aware diff headers
# https://tekin.co.uk/2020/10/better-git-diff-output-for-ruby-python-elixir-and-more
# https://gist.github.com/tekin/12500956bd56784728e490d8cef9cb81
*.c     diff=cpp
*.h     diff=cpp
*.css   diff=css
*.html  diff=html
*.py    diff=python
*.md    diff=markdown

# Generated files
# https://github.com/github/linguist/blob/master/docs/overrides.md
#
# To always hide generated files in local diffs, mark them as binary:
# $ git config diff.generated.binary true
#
[attr]generated linguist-generated=true diff=generated

**/clinic/*.c.h                              generated
*_db.h                                       generated
Doc/data/stable_abi.dat                      generated
Doc/library/token-list.inc                   generated
Include/internal/pycore_ast.h                generated
Include/internal/pycore_ast_state.h          generated
Include/internal/pycore_opcode.h             generated
Include/opcode.h                             generated
Include/token.h                              generated
Lib/keyword.py                               generated
Lib/test/test_stable_abi_ctypes.py           generated
Lib/token.py                                 generated
Objects/typeslots.inc                        generated
PC/python3dll.c                              generated
Parser/parser.c                              generated
Parser/token.c                               generated
Programs/test_frozenmain.h                   generated
Python/Python-ast.c                          generated
Python/opcode_targets.h                      generated
Python/stdlib_module_names.h                 generated
Tools/peg_generator/pegen/grammar_parser.py  generated
aclocal.m4                                   generated
configure                                    generated
