# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

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

# PySide / Qt
# Designer backups only. Do NOT use broad *_ui.py — it matches hand-written
# modules (e.g. tests/test_calendar_ics_ui.py) and silently skips git add.
*.ui.bak
# If pyside6-uic/rcc output is introduced, put it under generated/ and use:
# generated/*_ui.py
# generated/*_rc.py

# IDE / editors
.idea/
.vscode/
*.swp
*.swo
*~
.project
.pydevproject
.settings/

# Testing / coverage
.coverage
htmlcov/
.tox/
.nox/
.pytest_cache/
.mypy_cache/
.ruff_cache/

# OS
.DS_Store
Thumbs.db
*.log

# Local / secrets (never commit)
.env
*.key
*.pem
secrets/

# Project specific
*.db
*.sqlite
*.sqlite3
.cache/

# Internal Grok project memory (not part of product)
.grok/

# Source delivery artifacts
*.tar.gz
.venv*

# LibreOffice lock files, created beside a document while it is open.
# Plan item ".gitignore for LibreOffice lock files".
.~lock.*#

# Debian build residue. `debian/rules clean` removes all of it, but a build
# followed by `git add` before a clean would sweep it in -- and staging other
# people's leftovers is a mistake this project has already made once.
# debian/rules, debian/control, debian/changelog, debian/docs and
# debian/source/ are TRACKED and must not be caught by these.
debian/.debhelper/
debian/debhelper-build-stamp
debian/files
debian/icons/
debian/palmer-mail/
debian/*.substvars
debian/*.debhelper
