# Auto detect text files and perform LF normalization
* text=auto eol=lf

# Force LF line endings for these files
*.py text eol=lf
*.pyx text eol=lf
*.pxd text eol=lf
*.pxi text eol=lf
*.yml text eol=lf
*.yaml text eol=lf
*.toml text eol=lf
*.ini text eol=lf
*.cfg text eol=lf
*.txt text eol=lf
*.md text eol=lf
*.rst text eol=lf
*.json text eol=lf
*.xml text eol=lf
*.html text eol=lf
*.css text eol=lf
*.js text eol=lf
*.ts text eol=lf
*.jsx text eol=lf
*.tsx text eol=lf
*.vue text eol=lf
*.sh text eol=lf
*.bash text eol=lf
*.zsh text eol=lf
*.fish text eol=lf
Makefile text eol=lf
.gitignore text eol=lf
.gitattributes text eol=lf
.editorconfig text eol=lf
LICENSE text eol=lf
README text eol=lf

# Force CRLF for Windows-specific files
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf

# Binary files
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.svg text
*.pdf binary
*.zip binary
*.gz binary
*.tar binary
*.tgz binary
*.jar binary
*.pyc binary
*.pyo binary
*.pyd binary
*.so binary
*.dylib binary
*.dll binary
*.exe binary
*.app binary

# Jupyter notebooks
*.ipynb text eol=lf

# Documentation
*.doc binary
*.docx binary
*.odt binary

# Fonts
*.ttf binary
*.otf binary
*.woff binary
*.woff2 binary
*.eot binary

# Audio/Video
*.mp3 binary
*.mp4 binary
*.wav binary
*.flac binary
*.ogg binary

# Archives
*.7z binary
*.rar binary

# Database
*.db binary
*.sqlite binary
*.sqlite3 binary

# Models and data files
*.pkl binary
*.pickle binary
*.npy binary
*.npz binary
*.h5 binary
*.hdf5 binary
*.parquet binary
*.feather binary
*.msgpack binary

# Language statistics
# Linguist overrides - ensure Python is recognized as primary language
*.py linguist-language=Python
*.pyx linguist-language=Cython
*.pxd linguist-language=Cython
*.pxi linguist-language=Cython

# Mark generated files
docs/_build/* linguist-generated
htmlcov/* linguist-generated
*.min.js linguist-generated
*.min.css linguist-generated

# Mark documentation
docs/* linguist-documentation
*.md linguist-documentation
*.rst linguist-documentation

# Mark vendored files (if any)
# vendor/* linguist-vendored
# third_party/* linguist-vendored

# Diff settings
*.py diff=python
*.md diff=markdown
*.ipynb diff=jupyter

# Merge driver for specific files
uv.lock merge=ours
poetry.lock merge=ours
package-lock.json merge=ours