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

# C extensions
*.so

*.lock

# 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

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py.cover
.hypothesis/
.pytest_cache/
.pytest_tmp/
cover/

# Jupyter Notebook
.ipynb_checkpoints

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

# Ruff
.ruff_cache/

.claude/

# Local model files, captured data and run outputs
data/
output/
models/
*.tar.bz2
*.tar.xz
*.tar.gz
activate.sh

# Repository-local agent and test scratch directories
.codex_tmp/
.codex-tmp/
.test-tmp/
.tmp/

# Locally built native artifacts. The binary is already covered by *.py[codz];
# its R-ADR-019 identity sidecars are machine-specific - git revision and dirty
# flag, compiler and nvcc versions, binary digest - and belong to the build that
# produced them, never to the repository. The wheel still ships them: hatch
# lists them under [tool.hatch.build.targets.wheel] artifacts, which is exactly
# what that setting is for.
witwin/radar/cuda/prebuilt/*.build-info.json
witwin/radar/cuda/prebuilt/*.build-fingerprint

# Locally produced packaging evidence: built wheels and the JSON that
# ci/wheel_smoke.py and ci/coexistence_smoke.py emit. Same argument as the
# sidecars above - every value in there (absolute target paths, binary digests,
# the git revision the prebuilt was built at, the local architecture subset)
# describes one machine's run and would be stale the moment anything is
# rebuilt. The evidence belongs in the change that produced it, not in the
# tree.
/artifacts/

# Sensor captures never belong in the tree
*.mkv
