"""Sample Python file demonstrating idiomatic patterns."""

from dataclasses import dataclass, field
from datetime import datetime
from typing import List, Optional


@dataclass
class Task:
    """A task in our task list."""
    title: str
    priority: str = "medium"
    completed: bool = False
    created_at: datetime = field(default_factory=datetime.now)


class TaskManager:
    """Manage a collection of tasks."""

    def __init__(self) -> None:
        self.tasks: List[Task] = []

    def add(self, title: str, priority: str = "medium") -> Task:
        task = Task(title=title, priority=priority)
        self.tasks.append(task)
        return task

    def find(self, title: str) -> Optional[Task]:
        return next((t for t in self.tasks if t.title == title), None)

    @property
    def pending(self) -> List[Task]:
        return [t for t in self.tasks if not t.completed]

    def complete(self, title: str) -> bool:
        task = self.find(title)
        if task:
            task.completed = True
            return True
        return False


if __name__ == "__main__":
    manager = TaskManager()
    manager.add("Write tests", priority="high")
    manager.add("Update docs")
    manager.add("Refactor module", priority="low")

    print(f"You have {len(manager.pending)} pending tasks")
    for task in manager.pending:
        print(f"  [{task.priority}] {task.title}")