mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-06 16:08:05 +00:00
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import argparse
|
|
from datetime import date, timedelta
|
|
|
|
from .models import Priority, TaskList
|
|
|
|
|
|
def build_demo() -> TaskList:
|
|
today = date.today()
|
|
tasks = TaskList()
|
|
tasks.add("Write release notes", Priority.HIGH, today + timedelta(days=1), "docs")
|
|
tasks.add("Fix flaky test", Priority.HIGH, today - timedelta(days=2), "ci")
|
|
tasks.add("Update dependencies", Priority.LOW, None, "chore")
|
|
return tasks
|
|
|
|
|
|
def main(argv: list[str] | None = None) -> int:
|
|
parser = argparse.ArgumentParser(prog="tasks")
|
|
parser.add_argument("--overdue", action="store_true", help="only show overdue tasks")
|
|
args = parser.parse_args(argv)
|
|
|
|
tasks = build_demo()
|
|
# Set a breakpoint here (QA: debugger) and inspect `tasks`.
|
|
shown = tasks.overdue(date.today()) if args.overdue else tasks.pending()
|
|
for task in shown:
|
|
flag = "!" if task.priority is Priority.HIGH else " "
|
|
print(f"{flag} {task.title} ({', '.join(sorted(task.tags))})")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|