Represent a task and its labels using dataclasses and type hints. Do not add runtime type validation.

Prototype: define Point as a frozen dataclass with x: int and y: int, both required. Its generated equality compares coordinates; normal reassignment to a coordinate must fail.

Final: define mutable dataclass Task with title: str (required), done: bool = False, and tags: list[str] with a fresh empty list for each instance. Implement completed_titles(tasks: list[Task]) -> list[str] to return titles for tasks whose done attribute is true, preserving order and duplicates. Do not modify tasks or their tags. Example: [Task("read", True), Task("write")] -> ["read"]. Empty input returns []. Generated dataclass methods, field defaults, and the stated annotations are part of this exercise.

Drag or use the arrow keys to resize. Home collapses the question; End collapses the editor. Enter or double-click resets the split.
Loading editor…
No results yet.

Complete the starter code, then run the checks.
Results and errors will appear here.