utils/focus_project/README.md
2026-11-02 08:13:52 +01:00

679 B

focus_project

Time-boxed focus projects ("until Thursday I prepare for X"). The active project switches chosen gates off and defines a daily-minutes gate.

import focus_project as fp

fp.stands_down("leetcode", today)   # gate in leetcode|book|reading|tutor; never raises
fp.active(today)                    # Project | None
fp.status(today)                    # dict for i3bar / GUIs
fp.record_activity("timer", "start")

Data: $FOCUS_PROJECT_DATA or ~/.local/share/focus_project/ (projects.json, activity.jsonl). minutes.py is owned by the minutes/harvester agent. Install: ./install.sh (stdlib only, editable user install for /usr/bin/python3).