utils/focus_project/focus_project/__init__.py
Krzysztof kuhy Rudnicki 22fdf2c344
Some checks failed
code-runner pre-commit / pre-commit (push) Has been cancelled
code-runner tests / test (push) Has been cancelled
dependency freshness / dependencies on newest stable (push) Has been cancelled
file length / file-length (push) Has been cancelled
focus-project pre-commit / pre-commit (push) Has been cancelled
focus-project tests / test (push) Has been cancelled
md-naming / markdown naming convention (push) Has been cancelled
palette drift / palette (push) Has been cancelled
repo-contract / repo contract (push) Has been cancelled
shared gate tests / gate unit tests (push) Has been cancelled
sql-drills pre-commit / pre-commit (push) Has been cancelled
sql-drills tests / test (push) Has been cancelled
focus_project 0.7.1: daily floor 30/gate
daily_minutes must be at least 30 per replaced gate,
on create and update.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WzxdWYGW5NZL5uVpnqmNKo
2026-11-02 16:11:18 +01:00

49 lines
1.2 KiB
Python

# Copyright (c) 2026 Krzysztof Rudnicki
"""Time-boxed focus projects that replace chosen gates.
A gate's whole integration::
import focus_project
if focus_project.stands_down("leetcode", today):
... # this gate is off for the active project: no charge, debt or lock
``stands_down`` never raises: an unreadable registry reads as "not standing
down", so the failure mode is "the normal rules apply".
"""
from __future__ import annotations
from focus_project._api import (
active,
create_project,
daily_floor,
end_project,
list_projects,
stands_down,
)
from focus_project._errors import RegistryError
from focus_project._model import Limits, Project
from focus_project._update import Update, apply_update, update_project
from focus_project.activity import record_activity
from focus_project.minutes import minutes_for
from focus_project.status import status
__all__ = [
"Limits",
"Project",
"RegistryError",
"Update",
"active",
"apply_update",
"create_project",
"daily_floor",
"end_project",
"list_projects",
"minutes_for",
"record_activity",
"stands_down",
"status",
"update_project",
]