Spaces:
Sleeping
Sleeping
| """Domain models for the task manager.""" | |
| from __future__ import annotations | |
| from datetime import date | |
| from typing import Optional | |
| class Task: | |
| """A single task in the task manager.""" | |
| def __init__( | |
| self, | |
| title: str, | |
| priority: str, | |
| tags: list[str], | |
| due_date: Optional[date] = None, | |
| ) -> None: | |
| self.title = title | |
| self.priority = priority # expected: "low" | "medium" | "high" | |
| self.tags = tags | |
| self.due_date = due_date | |
| self.done = False | |
| def complete(self) -> None: | |
| """Mark this task as done.""" | |
| self.done = True | |
| def to_dict(self) -> dict: | |
| return { | |
| "title": self.title, | |
| "priority": self.priority, | |
| "tags": self.tags, | |
| "done": self.done, | |
| "due_date": str(self.due_date) if self.due_date else None, | |
| } | |
| class User: | |
| """A user who owns tasks.""" | |
| def __init__(self, username: str, email: str) -> None: | |
| self.username = username | |
| self.email = email | |
| def display(self) -> str: | |
| return f"{self.username} <{self.email}>" | |