# Sample .gitattributes for a Python + data team.
# To use it, copy this file into the root of a repository and name it .gitattributes
# (it is stored here as gitattributes.txt so it doesn't affect this folder).
#
# Why: Windows uses CRLF line endings, macOS/Linux use LF. Without rules, the same
# file can look "completely changed" just because someone on another OS saved it.

# Let Git normalise line endings for every text file:
# stored as LF in the repository, converted for your OS on checkout.
* text=auto

# Scripts that must keep specific endings on every OS.
*.sh    text eol=lf
*.ps1   text eol=crlf
*.bat   text eol=crlf
*.cmd   text eol=crlf

# Source and config files (explicitly text).
*.py    text diff=python
*.sql   text
*.md    text
*.yml   text
*.yaml  text
*.json  text
*.csv   text

# Notebooks are JSON text. If you install nbstripout, it adds a filter line for *.ipynb here.
*.ipynb text

# Binary files: never convert, never try to merge line by line.
*.png   binary
*.jpg   binary
*.pdf   binary
*.xlsx  binary
*.parquet binary

# Large files tracked with Git LFS (only after running: git lfs install / git lfs track).
# *.parquet filter=lfs diff=lfs merge=lfs -text
