# ---------------------------------------------------------------- Python ----
__pycache__/
*.py[cod]
*$py.class
*.so
build/
dist/
*.egg-info/
.eggs/
pip-wheel-metadata/

# ------------------------------------------------------ Virtual environments -
.venv/
venv/
env/

# -------------------------------------------------------- Tooling caches -----
.pytest_cache/
.mypy_cache/
.ruff_cache/
.tox/
.nox/
.coverage
.coverage.*
coverage.xml
htmlcov/

# ---------------------------------------------------------------- Editors ----
.vscode/
.idea/
*.swp
*~

# ---------------------------------------------------------------- Windows ----
Thumbs.db
ehthumbs.db
Desktop.ini

# -------------------------------------------------------- AutoCAD companions -
# Lock files, autosaves, recovery files and plot logs AutoCAD drops next to a
# drawing. A stale *.dwl in particular makes accoreconsole open the drawing
# read-only, so it must never be committed.
*.dwl
*.dwl2
*.bak
*.sv$
*.ac$
*.err
acad*.err
*.log
*.plt

# Generated drawings. Fixtures and templates are deliberately re-included so a
# checked-in seed drawing survives this rule.
*.dwg
out/
!tests/fixtures/**/*.dwg
!templates/**/*.dwg

# ------------------------------------------------------- dwgforge artifacts --
# The per-run .scr / .lsp / .log trio dwgforge writes beside every output DWG.
.dwgforge/
*.generated.lsp
# Preview PNGs the GUI has AutoCAD plot on demand. Generated output, exactly
# like the .dwg files themselves, and regenerated in seconds from the source.
.preview/

*.generated.scr