# 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

# 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/

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

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# mypy / ruff / type checkers
.mypy_cache/
.dmypy.json
dmypy.json
.ruff_cache/

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

# OS
.DS_Store
Thumbs.db

# Build artifacts (HDF5 data stores are generated from the CSVs; not committed)
*.h5
*.hdf5

# ...except the bundled national-tier stores, which ship inside the package.
# These are small (~MBs), built by scripts/build_hdf5.py, and committed so that
# `pip install` is self-contained. Larger subnational tiers stay uncommitted.
!starsim_data/data/*.h5
!starsim_data/data/prem/*.h5

# ...and the contact stores that are fetched on demand rather than bundled: committed
# here, outside the package, and downloaded by fetch() from a pinned commit.
!fetched/*.h5

# UN WPP demographics source. The normalized CSVs (raw_data/demographics/wpp_*.csv)
# and README are tracked as the demographic source of truth; only the bulky raw
# downloads (xlsx/gz/zip) and logs are scratch and ignored.
raw_data/demographics/*.xlsx
raw_data/demographics/*.csv.gz
raw_data/demographics/*.zip
raw_data/demographics/*.log

# great-docs build, site and cache directories (ephemeral; docs/great-docs.yml is the
# committed source)
docs/_quarto/
docs/_site/
docs/.cache/

# Quarto's execution cache. Deliberately not committed: letting CI execute the code cells
# afresh means the docs build also checks that the documented examples still run.
docs/_freeze/
