Skip to main content

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). See src/project/core/introduction.md.
  • planner/ — planners, priority strategies, schedulers, and generate_daily_plan. See src/project/planner/introduction.md.
  • analytics/ — distraction rates, weekly summaries, focus score/grade, markdown export. See src/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 (uses tasks.json / habits.json if 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

focuspro_data533-0.0.1.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

focuspro_data533-0.0.1-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

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

Hashes for focuspro_data533-0.0.1.tar.gz
Algorithm Hash digest
SHA256 97c0919112e329fb0da3651ad83b0a76dff831ed4bcb714923c907da0914a075
MD5 55f56ea78d053b4b2ea8e447091c0c37
BLAKE2b-256 31511a4f1be631ca6599765a18a69e927d9fc9283942e519d8756cdc4ca34434

See more details on using hashes here.

File details

Details for the file focuspro_data533-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for focuspro_data533-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c3f6548511fa05996cd9d06cde37ec4885400c329b00632d49099db8bfdea291
MD5 c30e667895f7a15643e6362f7b4fc64b
BLAKE2b-256 a6dafc485f81fa923089ff77575e3e8060508c1c6525778510d431513cd079ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page