1
etude_lego_jurassic_world/scripts/compute_part_rarity.py

35 lines
1.2 KiB
Python

"""Calcule les pièces rares en comparant les sets filtrés au reste du catalogue."""
from pathlib import Path
from lib.rebrickable.part_rarity import build_part_rarity, select_until_reused, write_part_rarity
PARTS_FILTERED_PATH = Path("data/intermediate/parts_filtered.csv")
INVENTORIES_PATH = Path("data/raw/inventories.csv")
INVENTORY_PARTS_PATH = Path("data/raw/inventory_parts.csv")
PARTS_CATALOG_PATH = Path("data/raw/parts.csv")
PART_CATEGORIES_PATH = Path("data/raw/part_categories.csv")
FILTERED_SETS_PATH = Path("data/intermediate/sets_enriched.csv")
DESTINATION_PATH = Path("data/intermediate/part_rarity.csv")
TOP_DESTINATION_PATH = Path("data/intermediate/part_rarity_exclusive.csv")
def main() -> None:
"""Construit les CSV complets et top 10 des pièces les plus rares."""
rows = build_part_rarity(
PARTS_FILTERED_PATH,
INVENTORIES_PATH,
INVENTORY_PARTS_PATH,
PARTS_CATALOG_PATH,
PART_CATEGORIES_PATH,
FILTERED_SETS_PATH,
)
write_part_rarity(DESTINATION_PATH, rows)
top_rows = select_until_reused(rows)
write_part_rarity(TOP_DESTINATION_PATH, top_rows)
if __name__ == "__main__":
main()