Bruno Charest 6f01d65411 feat: add support for non-markdown files and improve drawings UI
- Added scanning and metadata tracking for non-markdown files (images, PDFs, videos, code files)
- Redesigned drawings editor header with new toolbar layout and dropdown menus
- Added file picker dropdown to easily open existing .excalidraw files
- Implemented new file creation flow with auto-generated filenames
- Added export options menu with PNG/SVG/JSON export variants
- Updated proxy config to support vault file access
- Adde
2025-10-30 12:05:00 -04:00

62 lines
1.8 KiB
Python

"""Exemple de script Python illustrant l'usage des dataclasses."""
from dataclasses import dataclass, field
from datetime import datetime, timedelta
from typing import Iterable
@dataclass
class Task:
"""Représente une tâche planifiée avec une durée estimée."""
name: str
estimated_minutes: int
created_at: datetime = field(default_factory=datetime.now)
completed: bool = False
def remaining_minutes(self) -> int:
"""Calcule le temps restant estimé."""
return 0 if self.completed else self.estimated_minutes
def mark_done(self) -> None:
"""Marque la tâche comme terminée."""
self.completed = True
def summarize(tasks: Iterable[Task]) -> str:
"""Retourne un résumé textuel de la charge de travail."""
task_list = list(tasks)
total = sum(task.estimated_minutes for task in task_list)
remaining = sum(task.remaining_minutes() for task in task_list)
done = total - remaining
return (
f"Tâches: {len(task_list)}\n"
f"Terminé: {done} min\n"
f"Restant: {remaining} min\n"
f"Charge totale: {total} min"
)
def main() -> None:
"""Point d'entrée du script avec quelques exemples."""
tasks = [
Task("Préparer la réunion", estimated_minutes=45),
Task("Répondre aux emails", estimated_minutes=20),
Task("Prototyper l'interface", estimated_minutes=90),
]
# Marquer une tâche comme terminée pour illustrer la logique.
tasks[1].mark_done()
print("Résumé du jour:")
print(summarize(tasks))
# Afficher l'échéance approximative si toutes les tâches sont démarrées maintenant.
deadline = datetime.now() + timedelta(minutes=sum(task.remaining_minutes() for task in tasks))
print(f"Heure de fin estimée: {deadline:%H:%M}")
if __name__ == "__main__":
main()