# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Linker files
*.ilk

# Debugger Files
*.pdb

# Compiled Dynamic libraries
*.so
*.dylib
*.dll
*.so.*

# Python compiled files
*.pyc

# Type stub for the compiled _slug extension, auto-regenerated from it
# by pybind11-stubgen (see CMakeLists.txt) when that tool is installed
slugpy/_slug.pyi

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# Build directories
build/
Build/
build-*/

# CMake generated files
CMakeFiles/
CMakeCache.txt
cmake_install.cmake
Makefile
install_manifest.txt
compile_commands.json
# doc/sphinx/Makefile is real, committed source (sphinx-quickstart's
# own generated wrapper around sphinx-build), not a CMake artifact --
# the bare "Makefile" pattern above would otherwise swallow it too.
!doc/sphinx/Makefile

# Temporary files
*.tmp
*.log
*.bak
*.swp

# vcpkg
vcpkg_installed/

# debug information files
*.dwo

# test output & cache
Testing/
.cache/

# VS Code settings
.vscode/

# macOS Finder metadata
.DS_Store

# data/tools/cloudy's own generated grid working directory (slug/cloudy
# scratch input decks and HDF5 output; regenerated by make_slug_grid.py/
# run_cloudy_grid.py, not meant to be committed), and the final lookup
# table process_cloudy_grid.py builds from it
data/tools/cloudy/slug_grid_work/
data/tools/cloudy/cloudy_table.h5

# marimo notebook session-state cache
__marimo__/

# Claude settings
.claude/

# Data files too large to store in repo
data/tracks/*.toml
data/tracks/*.h5
data/spectra/*.toml
data/spectra/*.h5
data/filters/*.toml
data/filters/*.h5
data/nebular/*.toml
data/nebular/*.h5
# vega.h5 is a single small reference spectrum (not an interpolatable
# library grid like the rest of data/spectra/*.h5), so it's committed
# rather than fetched on demand
!data/spectra/vega.h5
# V_filter.h5/.toml are a standalone, single-filter (Generic.Johnson.V)
# copy of data/filters/filters.h5, small enough to commit, needed for
# extinction (conventionally quantified in V-band magnitudes) without
# requiring the full filter set to be fetched -- see
# data/tools/filters/make_v_filter_fixture.py
!data/filters/V_filter.h5
!data/filters/V_filter.toml

# Downloaded archive caches from data/tools fetch scripts
data/tools/spectra/powr_temp/
data/tools/spectra/marcs_temp/

# Sphinx/Doxygen/Exhale documentation build output -- doc/sphinx/
# conf.py has Exhale run Doxygen into doc/sphinx/doxygen/ (XML for
# Breathe) as part of every build, and Exhale itself generates
# doc/sphinx/cpp_api/ (the organized Namespace/Class/File .rst pages,
# from that XML) fresh each time too; Sphinx's own doctree cache goes
# to doc/sphinx/_build/, and the final built HTML itself lands outside
# doc/sphinx/ entirely, at doc/html/ (see doc/sphinx/Makefile's own
# HTMLDIR). None of these four is source.
doc/sphinx/doxygen/
doc/sphinx/cpp_api/
doc/sphinx/_build/
doc/html/

# Git commit hash recorded for sdists by CMakeLists.txt (see its own
# SLUG_GIT_HASH comment); a build artifact, not source
.slug_git_hash
