01
Script CLI — Gestionnaire de Tâches
Construisez un gestionnaire de tâches en ligne de commande qui utilise un fichier JSON comme persistance. Vous appliquerez les dataclasses, la gestion d'erreurs, le typage et la manipulation de fichiers.
dataclass
json
argparse
typing
Débutant
🎯 Objectifs
- Créer la dataclass
Taskavec les champs du fil rouge (id, titre, statut, priorite, created_at) - Persister les tâches dans un fichier
tasks.jsonviajson.dump/json.load - Implémenter les 4 opérations CRUD : ajouter, lister, mettre à jour, supprimer
- Créer une interface CLI avec
argparse - Gérer les erreurs : fichier absent, ID introuvable, arguments manquants
💻 Interface CLI attendue
# Ajouter une tâche
python solution.py add "Corriger le bug auth" --priorite high
# Lister toutes les tâches
python solution.py list
# Lister par statut
python solution.py list --statut in_progress
# Mettre à jour le statut
python solution.py update 1 --statut done
# Supprimer
python solution.py delete 2
# Aide
python solution.py --help
💡 Sortie attendue
$ python solution.py list
ID TITRE STATUT PRIORITE
──────────────────────────────────────────────────────
1 Corriger le bug auth in_progress high
2 Écrire les tests todo medium
3 Déployer en production done low
🔑 Points clés à maîtriser
@dataclassavecfield(default_factory=...)pour les datesasdict()pour sérialiser, reconstruction manuelle pour désérialiserargparse.ArgumentParseravec sous-commandes (subparsers)- Affichage tabulaire avec
str.ljust()ouf-stringavec format:<20 - Exception
TaskNotFoundErrorcustom