1
etude_lego_jurassic_world/scripts/compute_head_reuse.py

28 lines
1.1 KiB
Python

"""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()