36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
"""Analyse des couleurs de têtes de minifigs."""
|
|
|
|
from pathlib import Path
|
|
|
|
from lib.rebrickable.colors_by_set import build_colors_lookup
|
|
from lib.rebrickable.minifig_heads import (
|
|
aggregate_head_colors_by_set,
|
|
aggregate_head_colors_by_year,
|
|
build_head_part_set,
|
|
load_parts_filtered,
|
|
write_head_colors_by_set,
|
|
write_head_colors_by_year,
|
|
)
|
|
|
|
|
|
PARTS_FILTERED_PATH = Path("data/intermediate/parts_filtered.csv")
|
|
PARTS_CATALOG_PATH = Path("data/raw/parts.csv")
|
|
COLORS_PATH = Path("data/raw/colors.csv")
|
|
HEADS_BY_SET_PATH = Path("data/intermediate/minifig_heads_by_set.csv")
|
|
HEADS_BY_YEAR_PATH = Path("data/intermediate/minifig_heads_by_year.csv")
|
|
|
|
|
|
def main() -> None:
|
|
"""Construit les agrégats des couleurs de têtes."""
|
|
parts_rows = load_parts_filtered(PARTS_FILTERED_PATH)
|
|
head_parts = build_head_part_set(PARTS_CATALOG_PATH)
|
|
colors_lookup = build_colors_lookup(COLORS_PATH)
|
|
heads_by_set = aggregate_head_colors_by_set(parts_rows, head_parts, colors_lookup)
|
|
heads_by_year = aggregate_head_colors_by_year(heads_by_set)
|
|
write_head_colors_by_set(HEADS_BY_SET_PATH, heads_by_set)
|
|
write_head_colors_by_year(HEADS_BY_YEAR_PATH, heads_by_year)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|