# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
*.c

# C extensions
*.so

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

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.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
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

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

# Pyre type checker
.pyre/

# OS specific files
.DS_Store
Thumbs.db

# Ruff cache
.ruff_cache/

# PyPI configuration (contains sensitive tokens)
.pypirc

# Coverage configuration files (project-specific)
.coveragerc

# Development configuration and cache
.pre-commit-cache/

# VS Code settings (user-specific)
.vscode/settings.json
# But allow shared workspace config
# .vscode/cspell.json - shared spelling config
# .vscode/launch.json - shared debug config

# Other IDEs
.idea/

# Temporary and backup files
*.tmp
*.bak
*.old
*.orig
*.save
*~

# Development artifacts
*.ipynb
test.py
scratch.py
debug.py

# Output/result files that shouldn't be committed
# Allow example outputs but exclude development outputs
*.png
*.pdf
*.jpg
*.jpeg
*.gif
*.svg
*.eps
# But allow example outputs in specific directories
!examples/**/outdir_*/**.png
!examples/**/outdir_*/**.pdf
!examples/**/outdir_*/**.jpg
!examples/**/outdir_*/**.jpeg
!examples/**/outdir_*/**.gif
!examples/**/outdir_*/**.svg
!examples/**/outdir_*/**.eps

# Data files (often large and user-specific)
*.h5
*.hdf5
*.dat
*.txt
*.csv
!requirements*.txt
!**/mock_*.txt
!examples/**/*.txt

# Log files
*.log

# Configuration files with sensitive data or user-specific paths
config_local.ini
*_local.ini
local_config.*

# Spellcheck files
!.ignore_words.txt
