mirror of
https://github.com/kuhyx/diet-guard.git
synced 2026-07-04 13:23:11 +02:00
Rewrites python_pkg.diet_guard imports to diet_guard, vendors the shared as_float coercion helper, drops the monorepo PYTHONPATH from install.sh and the systemd unit (package is now pip-installed), and scaffolds standalone lint/test config matching testsAndMisc's real enforced bar (pylint --fail-under=10 with tests excluded and the use-implicit-booleaness/consider-using-with disables, mypy's actual disabled-error-code set, ruff ALL, bandit, 100% branch coverage).
38 lines
1.2 KiB
Markdown
38 lines
1.2 KiB
Markdown
# diet_guard
|
|
|
|
A log-to-unlock gate: locks the desktop until a meal is logged once a meal
|
|
slot (08:00 / 12:00 / 16:00 / 20:00) has elapsed without one, and tracks a
|
|
sealed daily calorie/macro budget.
|
|
|
|
## Install
|
|
|
|
```bash
|
|
bash install.sh
|
|
```
|
|
|
|
This installs the package + dependencies into system Python's user
|
|
site-packages (the systemd service runs `/usr/bin/python` directly, not a
|
|
venv — see `CLAUDE.md`), installs the systemd user timer, seals your daily
|
|
budget, and locks the budget file immutable.
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
python -m diet_guard init # one-time: compute and seal today's budget
|
|
python -m diet_guard gate --demo # test the lock window (safe, closeable)
|
|
```
|
|
|
|
The timer runs the gate automatically every ~30 minutes; no manual
|
|
invocation is needed once installed.
|
|
|
|
## Development
|
|
|
|
```bash
|
|
python -m venv .venv && .venv/bin/pip install -r requirements.txt
|
|
.venv/bin/pre-commit install && .venv/bin/pre-commit install --hook-type pre-push
|
|
.venv/bin/python -m pytest diet_guard/tests/ --cov=diet_guard --cov-branch --cov-fail-under=100
|
|
```
|
|
|
|
See `CLAUDE.md` for scheduling details and production deployment gotchas,
|
|
and `docs/design.md` for the original feature spec.
|