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

# 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
*.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

# Sphinx documentation
docs/_build/
docs/apidocs/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv / python-version
.python-version

# pipenv
Pipfile.lock

# uv
.uv-cache/

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

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

# OS
.DS_Store
Thumbs.db

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

# jellycell project cache (for dogfooded notebooks in examples/)
.jellycell/

# Auto-generated per-run journals inside examples/. Running the examples on
# every CI job (or locally) would otherwise churn these files; real projects
# should commit their own manuscripts/journal.md. The paper example keeps a
# short committed narrative to demonstrate the trajectory-log pattern.
examples/*/manuscripts/journal.md
!examples/paper/manuscripts/journal.md

# Coverage
coverage.json
