﻿# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
*~
# 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
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

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

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
#   For a library or package, you might want to ignore these files since the code is
#   intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
#   However, in case of collaboration, if having platform-specific dependencies or dependencies
#   having no cross-platform support, pipenv may install dependencies that don't work, or not
#   install all needed dependencies.
#Pipfile.lock

# poetry
#   Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
#   This is especially recommended for binary packages to ensure reproducibility, and is more
#   commonly ignored for libraries.
#   https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
#   Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
#   pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
#   in version control.
#   https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# FastHTML session signing key (web GUI)
.sesskey

# Web GUI default output directory (scenario run artifacts)
/results/

# Web GUI scenario uploads (user-supplied config.json + geometry.wkt)
/uploads/

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

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject


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

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
#  JetBrains specific template is maintained in a separate JetBrains.gitignore that can
#  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
#  and can be added to the global gitignore or merged into this file.  For a more nuclear
#  option (not recommended) you can uncomment the following to ignore the entire idea folder.
.idea/

# Data
processed_data

# Legacy: local FDS run output from before decks moved into assets/.
# Nothing here is tracked any more; safe to delete once the runs are archived.
fds_directory

# FDS run output inside assets/<scenario>/. The deck, config.json, geometry.wkt
# and preview images stay tracked; everything FDS generates beside them does
# not. A single run drops well over a hundred of these files.
assets/**/*.out
assets/**/*.smv
assets/**/*.s3d
assets/**/*.s3d.sz
assets/**/*.sf
assets/**/*.sf.bnd
assets/**/*.sf.gbnd
assets/**/*.bf
assets/**/*.bf.bnd
assets/**/*.q
assets/**/*.iso
assets/**/*.prt5
assets/**/*.prt5.bnd
assets/**/*.prt5.sz
assets/**/*.pickle
assets/**/*.end
assets/**/*.restart
assets/**/*_cpu.csv
assets/**/*_devc.csv
assets/**/*_hrr.csv
assets/**/*_steps.csv
assets/**/*_git.txt
assets/**/vismap_cache.npz

# Local working artifacts
.worktrees/
results/
*.zip
*.s3d.sz
*.~undo-tree~
*vismap_cache.pkl
*.smoke.json.gz

# Top-level CSV outputs from demo runs
/fed.csv
/probe.csv
/smoke.csv
/routes.csv
/route_costs.csv
.gstack/

# Reference materials and PDFs (kept locally, not tracked)
*.pdf
materials/

# Retired scenarios. Kept on disk for local reference, no longer tracked.
# assets/demo2 was a near-duplicate of the T-junction case (now assets/t_junction);
# the beam detectors are bare FDS decks with no scenario config; fed_incap_co_v1/v2
# and _smol are superseded by the 2000/4000/8000 ppm ladder.
/assets/demo2/
/assets/beam_detector_no_mesh/
/assets/beam_detector_w_mesh/
/assets/fed_incap_co_v1/
/assets/fed_incap_co_v2/
/assets/fed_incap_co_smol/

# Model-level fixtures, retired with the same treatment. These exercised the
# JuPedSim layer with no fire: basic (flow spawning), social_force (alternate
# model plus checkpoint journeys) and haspel (config only, never had a geometry
# or a deck). All three remain in git history.
/assets/basic/
/assets/social_force/
/assets/haspel/

# assets/Haspel (capital H) is a different, live scenario -- the real BUW HC
# building -- but git's default case-insensitive matching makes the retired
# lowercase rule above swallow it too. Carve it back out explicitly.
!/assets/Haspel/
!/assets/Haspel/**

# The 50x50 m corn maze pair. Never had an FDS deck, so it could only ever test
# pure-distance wayfinding; the familiarity_test_* pair covers the same
# full-vs-discovery question on a smaller plan that does have a fire.
/assets/maze_test_full/
/assets/maze_test_discovery/

# Generated by scripts/docs/bundle_examples.py
site/data/example_bundles.json
