Download scripts/generer_carte_exemple.py from grappapp/grapp: direct link, hf CLI and curl.
- Browser
- Download file 1.77 kB
-
https://huggingface.co/spaces/grappapp/grapp/resolve/main/scripts/generer_carte_exemple.py
- Command line
-
hf download hf://spaces/grappapp/grapp/scripts/generer_carte_exemple.py
-
curl -L -o generer_carte_exemple.py https://huggingface.co/spaces/grappapp/grapp/resolve/main/scripts/generer_carte_exemple.py
1.77 kB
| """Génère assets/carte_exemple.png : une fausse carte des vins de bistrot pour la démo.""" | |
| from pathlib import Path | |
| from PIL import Image, ImageDraw, ImageFont | |
| LIGNES = [("LA CARTE DES VINS", None), ("", None), ("BULLES", None), | |
| ("Crémant de Loire, Domaine des Coteaux", "32 €"), ("Champagne Brut, Maison Laurent", "68 €"), ("", None), | |
| ("BLANCS", None), ("Muscadet Sèvre-et-Maine 2023", "24 €"), ("Sancerre, Les Caillottes 2022", "42 €"), | |
| ("Alsace Gewurztraminer 2021", "34 €"), ("Chablis 1er Cru 2021", "48 €"), ("", None), | |
| ("ROSÉS", None), ("Côtes de Provence rosé, Château Sainte-Roseline", "33 €"), ("Tavel 2023", "30 €"), ("", None), | |
| ("ROUGES", None), ("Beaujolais-Villages 2023", "25 €"), ("Chinon, Les Picasses 2020", "29 €"), | |
| ("Côtes du Rhône, E. Guigal 2021", "27 €"), ("Saint-Émilion Grand Cru 2018", "58 €"), | |
| ("Cahors Malbec 2019", "31 €"), ("", None), ("DOUCEURS", None), ("Sauternes 2017 (50 cl)", "45 €")] | |
| root = Path(__file__).resolve().parents[1] | |
| W, H = 1100, 60 + 46 * len(LIGNES) | |
| img = Image.new("RGB", (W, H), "#FFFDF8"); d = ImageDraw.Draw(img) | |
| def font(bold, size): | |
| for p in [f"/usr/share/fonts/truetype/dejavu/DejaVuSerif{'-Bold' if bold else ''}.ttf", | |
| "/Library/Fonts/Georgia.ttf", "/System/Library/Fonts/Supplemental/Georgia.ttf"]: | |
| try: return ImageFont.truetype(p, size) | |
| except OSError: pass | |
| return ImageFont.load_default() | |
| y = 40 | |
| for txt, prix in LIGNES: | |
| titre = prix is None and txt.isupper() | |
| d.text((70, y), txt, fill="#7D1C4F" if titre else "#222", font=font(titre, 30 if titre else 26)) | |
| if prix: d.text((W - 160, y), prix, fill="#222", font=font(False, 26)) | |
| y += 46 | |
| img.save(root / "assets" / "carte_exemple.png"); print("ok", img.size) | |