# ---------------------------------------------------------------------------
# Python
# ---------------------------------------------------------------------------
__pycache__/
*.py[cod]
*$py.class
*.so
*.pyd

# ---------------------------------------------------------------------------
# Packaging / build artifacts
#
# /build and /dist are anchored to the repo root on purpose. The vendored
# packages/totalsync_webinterface/totalsync_webinterface/web/webgl-plot/dist/ is checked
# in and is now the only thing left of that tree, so an unanchored `dist/` would erase
# the plotting library the interface loads.
# ---------------------------------------------------------------------------
/build/
/dist/
/sdist/
*.egg-info/
*.egg
.eggs/
MANIFEST
wheels/

# ---------------------------------------------------------------------------
# Virtual environments
#
# uv.lock is deliberately NOT ignored: TotalSync is an application, so the
# lock file is what pins the exact versions the lab machines get.
# ---------------------------------------------------------------------------
.venv/
venv/
env/
ENV/
.python-version

# ---------------------------------------------------------------------------
# Test / type-check / lint caches
# ---------------------------------------------------------------------------
.pytest_cache/
.mypy_cache/
.dmypy.json
.ruff_cache/
.tox/
.nox/
.coverage
.coverage.*
coverage.xml
htmlcov/

# ---------------------------------------------------------------------------
# Recorded data and logs
#
# serial_dump writes <chosen dir>/<timestamp>.b64 (and .bin with -B); the
# fallback when the directory chooser is cancelled is ./DataFile/.
# curses_interface refers to ./LogFile/.
# ---------------------------------------------------------------------------
DataFile/
LogFile/
*.b64

# ---------------------------------------------------------------------------
# Teensy / Arduino build output
# ---------------------------------------------------------------------------
*.hex
*.elf
*.bin
.build/
Teensy41_Totalsync/build/

# ---------------------------------------------------------------------------
# Node
#
# Not needed to build TotalSync: the vendored webgl-plot is trimmed to the prebuilt
# dist/webglplot.esm.js bundle, so there is nothing here to compile. Kept in case
# someone re-vendors it from upstream.
# ---------------------------------------------------------------------------
node_modules/
npm-debug.log*
yarn-error.log*

# ---------------------------------------------------------------------------
# JetBrains IDEs (PyCharm, CLion)
#
# Listed file by file rather than as a blanket `.idea/`, because the shared
# settings under .idea/inspectionProfiles/ and .idea/vcs.xml are checked in.
# ---------------------------------------------------------------------------
.idea/workspace.xml
.idea/tasks.xml
.idea/usage.statistics.xml
.idea/dictionaries/
.idea/shelf/
.idea/httpRequests/
.idea/modules.xml
.idea/misc.xml
.idea/*.iml
.idea/modules/
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
*.iml
*.iws
cmake-build-*/

# ---------------------------------------------------------------------------
# Other editors
# ---------------------------------------------------------------------------
.vscode/
*.sublime-project
*.sublime-workspace
*.swp
*.swo
*~

# ---------------------------------------------------------------------------
# Claude Code (per-developer permissions, not shared)
# ---------------------------------------------------------------------------
.claude/settings.local.json

# ---------------------------------------------------------------------------
# OS cruft — this project is run on Windows, macOS and Linux
# ---------------------------------------------------------------------------
.DS_Store
.AppleDouble
.LSOverride
._*
.Spotlight-V100
.Trashes
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/
.directory
.fuse_hidden*
.nfs*
/.idea/webResources.xml

# ---------------------------------------------------------------------------
# Sphinx / ReadTheDocs
# ---------------------------------------------------------------------------
docs/_build/
