Outil PySide6 pour générer automatiquement des decks Commander Magic: The Gathering (100 cartes) à partir d’une collection locale et des données Scryfall/EDHRec.
Motivation : pouvoir tester de nouveaux commandants sans racheter des cartes. L’application récupère jusqu’à ~60 decks Archidekt (triés par date de mise à jour ou nombre de vues), croise avec votre collection, puis calcule un score par carte (rôle ramp/draw/etc., occurrence dans les decks, rang EDHREC). Les meilleures cartes sont sélectionnées et le deck est prêt à jouer.
- Chargement d’une collection locale (SQLite, import CSV).
- Génération d’un deck Commander en respectant les rôles clefs (ramp, draw, removal, boardwipe, finisher) et l’identité couleur du commandant.
- Récupération des images via Scryfall et affichage dans l’UI (grille).
- Paramétrage du nombre de cartes par rôle et du nombre de terrains (min/max).
- Liste des cartes trouvées dans la collection et deck généré avec score moyen.
- Python 3.11+ recommandé
- Accès réseau pour la récupération des données Scryfall (selon vos usages)
- Cloner le dépôt
- Créer un environnement virtuel :
python -m venv venv - Activer l’environnement :
- Windows :
.\venv\Scripts\activate - Unix/macOS :
source venv/bin/activate
- Windows :
- Installer les dépendances :
pip install -r requirements.txt
Assurez-vous que le dossier data/ existe ou mettez à jour les chemins.
python main.pyUne fenêtre PySide6 s’ouvre :
- Si aucune collection n’a été importée :
- Aller dans l’onglet Ma collection
- Importer une collection via un CSV (actuellement format ManaBox Whole Collection)
- Ensuite :
- Sélectionner un commandant (ou saisir son nom)
- Générer les cartes disponibles dans votre collection
- Générer le deck pour voir la liste et la grille d’images
Les tests utilisent pytest.
pip install -r requirements-dev.txt # si disponible, sinon installer pytest
pytestmtg/: Code source principal (collection, scoring, builders, UI helper)gui/: Fenêtre principale PySide6tests/: Tests unitaires (pytest)data/: Fichiers de données (base SQLite, bulk Scryfall, CSV éventuels)
Les issues et PR sont bienvenues. Merci d’ajouter des tests et une courte description des changements.