ocaml

### Python template
.idea
.venv
.ruff_cache
.ty_cache

# HTML outputs from docstring examples (e.g. report.save("output/..."))
output/

### Don't expose API keys, etc.
.env

__marimo__

_tests
_book
_pdoc
docs/notebooks/*.html
docs/reports
docs/reports.md
_mkdocs
_benchmarks
_jupyter
_site

# LaTeX build artifacts
docs/paper/cla.pdf
docs/paper/*.aux
docs/paper/*.fdb_latexmk
docs/paper/*.fls
docs/paper/*.log
docs/paper/*.out
docs/paper/*.toc
docs/paper/*.pdf
docs/paper/*.bbl
docs/paper/*.blg

# temp file used by Junie
.output.txt

# folder used for programs, e.g. uv, uvx, task, etc.
bin

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

# Generated presentation files
presentation.html
presentation.pdf
*.pptx

# C extensions
*.so

# .DS_Store
.DS_Store

# 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
coverage.json
*.cover
*.py,cover
.hypothesis/
.benchmarks/
.pytest_cache/
cover/

# Security scanning baselines (regenerate as needed)
.bandit-baseline.json

# Translations
*.mo
*.pot

# Cython debug symbols
cython_debug/

# Makefile -- `local.mk` is deliberately not ignored. The Makefile is template-owned and
# overwritten by every sync, so `local.mk` is the only place a repo's own make targets can
# live, and anything CI invokes has to be committed. rhiza's own `make e2e`, which
# rhiza_e2e.yml runs in all three language jobs, is exactly that case.
#
# `local-setup.sh` is not ignored either, and for the same reason one step further out: it
# is the hook every layer's `install` runs to provision a native binary the project needs
# (graphviz, libpq, pandoc), so CI invokes it on every job. A gitignored provisioning script
# is one that works on its author's machine and nowhere else.

.bandit-baseline.json

# Rust (rust-core bundle). Kept in core rather than the language layer because
# .gitignore has one owner and git opens it with O_NOFOLLOW, so it cannot be a
# per-layer file. These entries are inert in a Python repo.
target/
**/*.rs.bk
