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

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# 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/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# dotenv
.env

# virtualenv
.venv
venv/
ENV/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/

# pytest / ruff
.pytest_cache/
.ruff_cache/

# cijoe build artifacts + runtime output (the cwd is cijoe/ when
# the Makefile invokes ``cijoe ...``).
cijoe/_build/
cijoe/cijoe-output/
cijoe/cijoe-archive/
# Stale local cloud-init userdata artifact from the retired appliance
# bake; never tracked.
bty-media/auxiliary/cloudinit-userdata.user
# Staged by cijoe/scripts/bty_wheel_stage.py for variants that bake bty in.
bty-media/live-build/config/includes.chroot/opt/bty/bty_lab-*.whl

# IDE
.idea/
.vscode/

# uv keeps uv.lock under version control - do NOT ignore it.

# docs tooling is consumed via pipx install ./docs/tooling, which doesn't
# read uv.lock. The file gets created if someone runs 'uv run --project
# ./docs/tooling' for ad-hoc dev; we don't track it.
docs/tooling/uv.lock

# Claude Code's per-project state directory (scheduled-task lock,
# permission settings). Local to each developer's environment.
.claude/

# Host-side bind-mount root for ``make docker-run`` (the
# bty-web:dev container writes state.db / session-secret / image
# catalog here under uid 1000). Owned by the in-container bty
# user, so a bare ``git add -A`` would either need sudo to read
# the dir or stage container-managed state we don't want in the
# repo. Operator wipes with ``make docker-clean``.
bty-data/
