# Python bytecode and native extensions
__pycache__/
*.py[cod]
*$py.class
*.pyd

# C extensions and native runtime libraries. `*.so` alone left the Windows and
# macOS equivalents uncovered, which is how 393 MB of staged FFmpeg/libmpv DLLs
# sat in the tree as merely-untracked rather than ignored.
*.so
*.dll
*.dylib
*.pdb

# Build, packaging, and release output
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
*.whl
*.tar.gz

# PyInstaller
*.manifest
*.spec
!packaging/*.spec
*.app/
*.AppImage
*.dmg
*.exe
installer-output/

# Locally staged media runtime. This predates D-075: PyAV's wheel now carries
# its own FFmpeg, the spec no longer reads AVIALSYNC_MEDIA_ROOT, and
# tests/test_packaging_spec.py fails if it comes back. Anything left here is a
# few hundred MB of stale libmpv/FFmpeg DLLs from the old Windows route.
packaging/media/

# 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/
# pytest-benchmark's saved runs. Speed is certified locally (AGENTS.md), so
# these accumulate on a developer machine and belong to nobody else.
.benchmarks/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# Profiling data
.prof

# Generated Fixtures — only auto-generated subdirs; permanent .avv fixtures are tracked
tests/fixtures/videos/
tests/fixtures/signals/
tests/fixtures/openephys_mock/
tests/fixtures/sample_session/
tests/fixtures_first_run/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# Environments
.env
.env.*
!.env.example
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# IDEs
.idea/
.vscode/
*.code-workspace

# Coding-agent tool config. Project rules live in AGENTS.md (CLAUDE.md and
# GEMINI.md are thin pointers to it), so anything an agent writes here is that
# developer's local setup rather than shared project configuration. Several
# models rotate through this codebase, so each one's scratch directory is
# listed rather than only the one that happened to be used first.
.claude/
.codex/
.gemini/
.cursor/
.cursorindexingignore
.copilot/
.continue/
.antigravity/
.windsurf/
.aider*

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Ruff / Linting
.ruff_cache/

# AvialSync specific based on AGENTS.md
*.avv
!tests/fixtures/*.avv
*.avialcache/
.tmp_avialcache_*/

# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Documentation generated by Sphinx / Read the Docs
docs/_build/

# Local release tooling and credentials
.pypirc
.release/

# Console captures from a local run. One of these was committed once as a stale
# UTF-16 capture of a failing suite; a second reached tests/ as an empty
# `.out` beside the test it was captured from. Nothing should reach the tree
# this way — a captured run is not a fixture and not a golden file.
pytest_out.txt
*.out

# User raw data directories.
# Recording sessions are named HH-MM-SS by the acquisition rig, so the pattern
# covers tomorrow's session too — listing them one by one only protects the ones
# someone remembered to add.
TENSS26_Anzal/
[0-2][0-9]-[0-5][0-9]-[0-5][0-9]/
09-37-33/
09-35-24/
