1

Analyse la réutilisation des têtes de minifigs

This commit is contained in:
2025-12-02 22:33:13 +01:00
parent 8d0495f973
commit 3690916127
7 changed files with 314 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
"""Calcule la réutilisation des têtes de minifigs dans le catalogue LEGO."""
from pathlib import Path
from lib.rebrickable.head_reuse import aggregate_head_reuse, build_head_presence, load_minifigs_by_set, write_head_reuse
from lib.rebrickable.minifigs_by_set import load_parts_catalog, select_head_parts
MINIFIGS_BY_SET_PATH = Path("data/intermediate/minifigs_by_set.csv")
PARTS_CATALOG_PATH = Path("data/raw/parts.csv")
INVENTORIES_PATH = Path("data/raw/inventories.csv")
INVENTORY_PARTS_PATH = Path("data/raw/inventory_parts.csv")
DESTINATION_PATH = Path("data/intermediate/head_reuse.csv")
def main() -> None:
"""Construit le CSV des têtes filtrées avec leurs usages dans le catalogue complet."""
minifigs = load_minifigs_by_set(MINIFIGS_BY_SET_PATH)
parts_catalog = load_parts_catalog(PARTS_CATALOG_PATH)
head_parts = select_head_parts(parts_catalog)
presence = build_head_presence(INVENTORIES_PATH, INVENTORY_PARTS_PATH, head_parts)
reuse = aggregate_head_reuse(minifigs, parts_catalog, presence)
write_head_reuse(DESTINATION_PATH, reuse)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,18 @@
"""Trace la réutilisation des têtes de minifigs dans le catalogue LEGO."""
from pathlib import Path
from lib.plots.head_reuse import plot_head_reuse
HEAD_REUSE_PATH = Path("data/intermediate/head_reuse.csv")
DESTINATION_PATH = Path("figures/step33/head_reuse.png")
def main() -> None:
"""Charge les données d'usage des têtes et produit le graphique associé."""
plot_head_reuse(HEAD_REUSE_PATH, DESTINATION_PATH)
if __name__ == "__main__":
main()