# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python

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

# PyInstaller
*.manifest
*.spec

# Unit test / coverage
htmlcov/
.tox/
.coverage
.coverage.*
.cache
.pytest_cache/
nosetests.xml
coverage.xml
*.cover
.hypothesis/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

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

# IDEs
.vscode/
.idea/
*.swp
*.swo
*~
.DS_Store

# Project-specific outputs
models/
!models/.gitkeep
output/
!output/.gitkeep
tensorboard/
!tensorboard/.gitkeep

# Data files (large datasets)
*.pkl
*.h5
*.hdf5
*.npz
*.npy

# Analysis outputs (generated)
src/OID_analysis/data/derived/
# Archived OID generated payloads live on Optane; keep only relocation stubs/manifests locally.
src/OID_analysis/archive/legacy_oid_v1/data_derived/*
!src/OID_analysis/archive/legacy_oid_v1/data_derived/RELOCATED.txt
src/OID_analysis/archive/v2_development_runs/*
!src/OID_analysis/archive/v2_development_runs/RELOCATED.txt
src/OID_analysis/data_li22b/derived/*
!src/OID_analysis/data_li22b/derived/RELOCATED.txt
# OID scientific-reset archives: preserve source/docs/compact evidence; large arrays remain ignored by extension.
# Historical study paths are intentionally regular directories (never symlinks).
src/OID_analysis/archive/studies/*/evidence/**/*.npz
src/OID_analysis/archive/materials/pre-reset-active/data/**/*.npz
src/OID_analysis/archive/materials/pre-reset-active/data/**/*.npy

src/OID_analysis/data/*/vorticity_*.png
src/OID_analysis/data/*/*/vorticity_*.png
src/OID_analysis/data/*/*/ddf_checkpoint.npy
src/OID_analysis/data/*/*/fifo_checkpoint.npy
src/CCD_analysis/data/
src/SR_analysis/data/*/*/fields.npz
outputs/

# Logs
*.log

# Temporary files
*.tmp
*.bak

# CUDA
*.ptx
*.cubin

# macOS
.DS_Store
.AppleDouble
.LSOverride

ref/
docs/
# Historical OID authority documents are compact preservation evidence.
!src/OID_analysis/archive/studies/*/presentation/docs/
!src/OID_analysis/archive/studies/*/presentation/docs/**
ParaView/
# Runtime outputs (generated, not committed)
src/drl_pinball/legacy_test/output/
src/drl_pinball/reproduce/output/
*.tar.gz
# DRL Train release boundary
# Historical/failed runs remain local; active best-policy bundles are allowlisted.
src/drl_pinball/train/archive/
!src/drl_pinball/train/output/
src/drl_pinball/train/output/*
!src/drl_pinball/train/output/*/
src/drl_pinball/train/output/*/*
!src/drl_pinball/train/output/*/meta.json
!src/drl_pinball/train/output/*/calibration.json
!src/drl_pinball/train/output/*/target.npy
!src/drl_pinball/train/output/*/best_vecnormalize.pkl
!src/drl_pinball/train/output/*/models/
src/drl_pinball/train/output/*/models/*
!src/drl_pinball/train/output/*/models/best_model.zip
!src/drl_pinball/train/calibrations/*/target.npy
