Educational productivity toolkit for tasks, habits, focus sessions, and analytics
Project description
FocusPro package (overview)
Productivity toolkit with three subpackages (core, planner, analytics) plus demos (run_demo.py, test_code.py). Model tasks/habits, generate daily plans, and produce weekly focus analytics.
Subpackages
core/— models and state (Task,Habit,FocusSession, managers, exceptions). Seesrc/project/core/introduction.md.planner/— planners, priority strategies, schedulers, andgenerate_daily_plan. Seesrc/project/planner/introduction.md.analytics/— distraction rates, weekly summaries, focus score/grade, markdown export. Seesrc/project/analytics/introduction.md.
Subpackage summaries
- Core:
tasks.py/task.py(task model + manager),habit.py(habit model + manager + CLI helpers),focus_session.py(session lifecycle, distractions, ratings),exceptions.py(domain errors). - Planner:
base_planner.py(planners,PlannedBlock),priority_strategy.py(scoring),schedulers.py(sequential, Pomodoro),daily_plan.py(planner selection + validation). - Analytics:
distraction.py(overall/per-task rates),weekly_report.py(weekly summary + markdown export),focuscore.py(focus score + grade),exceptions.py(report export errors).
Demos
- Interactive:
python src/project/run_demo.py(usestasks.json/habits.jsonif present; otherwise prompts). - Non-interactive:
python src/project/test_code.py(scripted output).
Quick start (PowerShell, repo root)
$env:PYTHONPATH="src\project"
python src/project/run_demo.py
Using your own data
Place JSON alongside run_demo.py:
tasks.json:name,duration,category,difficulty,priority,completed,pomodoro,planned_distractions.habits.json:name,frequency.
Tests & coverage
$env:PYTHONPATH="src\project"
python -m unittest discover -s tests -t .
python -m coverage run -m unittest discover -s tests -t .
python -m coverage report
- Planner only:
python -m unittest -v tests.test_planner tests.test_planner_helpers - Core/analytics:
python -m unittest -v tests.test_core tests.test_focuscore
CI
GitHub Actions runs coverage run -m unittest discover -s tests -t . on pushes/PRs (see .github/workflows/ci.yml).
Extensibility notes
- Persistence is JSON + prompts (educational); swap storage as needed.
- Planners/schedulers are swappable; add strategies without breaking callers.
- Analytics handles malformed data defensively and surfaces export errors via custom exceptions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file focuspro_data533-0.0.1.tar.gz.
File metadata
- Download URL: focuspro_data533-0.0.1.tar.gz
- Upload date:
- Size: 31.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97c0919112e329fb0da3651ad83b0a76dff831ed4bcb714923c907da0914a075
|
|
| MD5 |
55f56ea78d053b4b2ea8e447091c0c37
|
|
| BLAKE2b-256 |
31511a4f1be631ca6599765a18a69e927d9fc9283942e519d8756cdc4ca34434
|
File details
Details for the file focuspro_data533-0.0.1-py3-none-any.whl.
File metadata
- Download URL: focuspro_data533-0.0.1-py3-none-any.whl
- Upload date:
- Size: 28.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3f6548511fa05996cd9d06cde37ec4885400c329b00632d49099db8bfdea291
|
|
| MD5 |
c30e667895f7a15643e6362f7b4fc64b
|
|
| BLAKE2b-256 |
a6dafc485f81fa923089ff77575e3e8060508c1c6525778510d431513cd079ca
|