38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
"""Construit les frises chronologiques de minifigs par personnage."""
|
|
|
|
from pathlib import Path
|
|
|
|
from lib.plots.minifig_character_collages import build_character_collages
|
|
from lib.rebrickable.minifig_character_sets import (
|
|
build_character_sets,
|
|
group_by_character,
|
|
load_minifigs_by_set,
|
|
load_missing_minifigs,
|
|
load_sets,
|
|
write_character_sets,
|
|
)
|
|
|
|
|
|
MINIFIGS_BY_SET_PATH = Path("data/intermediate/minifigs_by_set.csv")
|
|
SETS_ENRICHED_PATH = Path("data/intermediate/sets_enriched.csv")
|
|
RESOURCES_DIR = Path("figures/rebrickable")
|
|
DESTINATION_DIR = Path("figures/step32/minifig_characters")
|
|
CHARACTER_SETS_PATH = Path("data/intermediate/minifig_character_sets.csv")
|
|
DOWNLOAD_LOG_PATH = Path("data/intermediate/resources_download_log.csv")
|
|
EXCLUDED_CHARACTERS = ["Figurant"]
|
|
|
|
|
|
def main() -> None:
|
|
"""Assemble les apparitions des personnages et génère les frises associées."""
|
|
minifigs_by_set = load_minifigs_by_set(MINIFIGS_BY_SET_PATH)
|
|
sets_lookup = load_sets(SETS_ENRICHED_PATH)
|
|
character_sets = build_character_sets(minifigs_by_set, sets_lookup, excluded_characters=EXCLUDED_CHARACTERS)
|
|
write_character_sets(CHARACTER_SETS_PATH, character_sets)
|
|
missing_minifigs = load_missing_minifigs(DOWNLOAD_LOG_PATH)
|
|
grouped = group_by_character(character_sets)
|
|
build_character_collages(grouped, RESOURCES_DIR, DESTINATION_DIR, missing_paths=missing_minifigs)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|