# =============================================================================
# NetCDFKit - Comprehensive .gitignore
# =============================================================================

# Python-generated files and bytecode
__pycache__/
*.py[cod]
*$py.class
*.so
*.pyd
*.pyo

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
examples/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Virtual environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
.conda/
conda-env/

# IDEs and editors
.vscode/
.idea/
*.swp
*.swo
*~
.project
.pydevproject
.settings/
*.sublime-project
*.sublime-workspace

# Jupyter Notebook
.ipynb_checkpoints
*.ipynb
!simple_example.ipynb
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
Pipfile.lock

# poetry
poetry.lock

# celery
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.env.local
.env.development.local
.env.test.local
.env.production.local

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# =============================================================================
# Data Science & Scientific Computing specific
# =============================================================================

# Large data files
*.nc
*.nc4
*.netcdf
*.hdf5
*.h5
*.hdf
*.mat
*.npy
*.npz
*.pkl
*.pickle
*.csv
*.tsv
*.xlsx
*.xls
*.parquet
*.feather
*.arrow

# Compressed archives (often containing large datasets)
*.zip
*.tar
*.tar.gz
*.tar.bz2
*.tgz
*.rar
*.7z
*.gz
*.bz2

# Image and visualization outputs
*.png
*.jpg
*.jpeg
*.gif
*.bmp
*.tiff
*.tif
*.svg
*.pdf
*.eps
*.ps

# Video files
*.mp4
*.avi
*.mov
*.wmv
*.flv
*.webm

# =============================================================================
# NetCDF and Climate Data specific
# =============================================================================

# NetCDF temporary files
*.nc.tmp
*.nc.lock
*.nc~

# Climate data formats
*.grib
*.grib2
*.grb
*.grb2
*.bufr

# Meteorological data
*.synop
*.temp
*.pilot
*.amdar

# =============================================================================
# Cache directories and temporary files
# =============================================================================

# Application caches
timeseries_cache/
cache/
.cache/
tmp/
temp/
.tmp/
.temp/

# System temporary files
Thumbs.db
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Desktop.ini

# =============================================================================
# Documentation and build artifacts
# =============================================================================

# Sphinx documentation
docs/_build/
docs/build/
site/

# mkdocs
mkdocs.yml

# =============================================================================
# Configuration and secrets
# =============================================================================

# Environment variables and secrets
.env*
!.env.example
secrets.json
config.json
settings.json
credentials.json
auth.json

# Database files
*.db
*.sqlite
*.sqlite3

# =============================================================================
# Windows specific
# =============================================================================

# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db

# Dump file
*.stackdump

# Folder config file
[Dd]esktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp

# Windows shortcuts
*.lnk

# =============================================================================
# MacOS specific
# =============================================================================

# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

# =============================================================================
# Linux specific
# =============================================================================

*~

# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*

# .nfs files are created when an open file is removed but is still being accessed
.nfs*

# =============================================================================
# Git specific
# =============================================================================

# Backup files
*.orig
*.bak
*.backup

# =============================================================================
# Package managers and tools
# =============================================================================

# npm
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Conda
.conda-env/

# UV (Python package manager)
.uv/
uv.lock
# Ruff cache
.ruff_cache/

# =============================================================================
# Performance and profiling
# =============================================================================

# Profiling data
*.prof
*.lprof
*.py.prof
*.typed

# Memory profiling
*.memory_profiler

# =============================================================================
# Machine Learning and AI specific
# =============================================================================

# Model files (often large)
*.model
*.pkl
*.joblib
*.pt
*.pth
*.ckpt
*.pb
*.tflite
*.onnx
*.h5

# Training outputs
runs/
logs/
lightning_logs/
wandb/
mlruns/
.tensorboard/

# =============================================================================
# Research and academic specific
# =============================================================================

# LaTeX
*.aux
*.bbl
*.blg
*.fdb_latexmk
*.fls
*.log
*.out
*.synctex.gz
*.toc

# R
.RData
.Rhistory
.Rapp.history

# MATLAB
*.m~
*.mat

# =============================================================================
# Future-proofing: Additional common patterns
# =============================================================================

# Log files
*.log
logs/

# Configuration overrides
local_settings.py
settings_local.py
config_local.py

# IDE-specific settings
.spyderproject
.spyproject
.ropeproject

# PyCharm
.idea/

# VS Code settings (keep only workspace settings, not user settings)
.vscode/settings.json
.vscode/launch.json
.vscode/extensions.json

# Vim
*.swp
*.swo

# Emacs
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*

# =============================================================================
# Project-specific exclusions
# =============================================================================

# Large example datasets (keep small test files)
examples/data/large/
test_data/large/
sample_data/

# Output directories
output/
results/
plots/
figures/

# Backup directories
backups/
archive/
