# Custom
.deprecated/
logs/
runs/

# Field test and check reports. The JSON documents are the published
# artifacts — hub.plesty.net and manager.plesty.net read them, so they are
# committed. The markdown and JSONL forms are for whoever ran the test: they
# carry the host name, the instrument address, its serial and the lab's file
# paths, and a hub repository is world-readable.
# An interrupted `plesty init field-test` leaves its answers here.
.plesty-field-test.partial.json

reports/**/*.md
reports/**/*.jsonl
reports/*.md
reports/*.jsonl

# Auto-generated device reference pages (regenerated by `plesty docs`)
docs/_generated/

# Python bytecode and caches
__pycache__/
*.py[cod]
*$py.class

# C extensions and shared libraries
*.so
*.pyd
*.dll

# Packaging and build artifacts. The dist-* directories are the ones the
# packaging scripts write: dist-server (server_dist.py), dist-test and dist-exp
# (the installers' test modes). They must be listed HERE and not only be
# self-ignored by the .gitignore uv drops inside its own output directories:
# the build backend honours this file and does not descend into nested ones, so
# a directory git hides but this file does not name still lands in the sdist.
build/
dist/
dist-*/
*.egg-info/
.eggs/

# uv's cache, which `[tool.uv] cache-dir` puts inside the project. Same reason:
# uv hides it from git with a file of its own, which the build backend does not
# read — and a source distribution built from a synced tree carried 485 MB of
# it before this line existed.
.uv-cache/
.uv_cache/

# Local credentials — keep `.env.example` tracked, never the real `.env`
.env

# Virtual environments
.venv/
venv/
env/
ENV/

# Test and coverage outputs
.pytest_cache/
.coverage
.coverage.*
htmlcov/
.mypy_cache/
.ruff_cache/

# Jupyter
.ipynb_checkpoints/

# Logs and runtime files
*.log
*.pid

# IDE/editor
.vscode/
.idea/
*.swp
*.swo

# OS files
.DS_Store
Thumbs.db

# Generated from packaging/plesty-mark.png at build time (installer:windows).
packaging/plesty-mark.ico
