- Virtual environment:
.venv/(managed byuv) - Activate with:
source .venv/bin/activate
- Format/Lint:
make ruff - Run app:
uv run python -m zapcast.main - Type check:
ty check src/(uses ty type checker) - No tests exist yet
- zapcast: PySide6 (Qt) emoji picker desktop app
src/zapcast/main.py: Qt GUI with EmojiPicker window, FlowLayout, EmojiButtonsrc/zapcast/emojis.py: EmojiStore for loading/searching emojis using rapidfuzzsrc/zapcast/settings.py: Logging configuration
- Python 3.14+, uses
uvfor package management - Imports: stdlib → third-party (PySide6, emoji, rapidfuzz) → local
- Type hints required (uses
tytype checker withty:ignorefor untyped libs) - Use dataclasses for data structures
- Logging via
logging.getLogger(__name__) - No trailing commas required; use ruff for formatting