You've already forked etude_lego_jurassic_world
Filtre les collages globaux sur les personnages multi-variations
This commit is contained in:
41
scripts/plot_minifig_collage_grids.py
Normal file
41
scripts/plot_minifig_collage_grids.py
Normal file
@@ -0,0 +1,41 @@
|
||||
"""Assemble des grilles verticales filtrées sur les personnages multi-variations."""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from lib.plots.minifig_character_collages import filter_characters_with_variations, stack_collages
|
||||
from lib.rebrickable.minifig_character_sets import (
|
||||
build_character_sets,
|
||||
group_by_character,
|
||||
load_minifigs_by_set,
|
||||
load_sets,
|
||||
)
|
||||
from lib.rebrickable.resources import sanitize_name
|
||||
|
||||
|
||||
MINIFIGS_BY_SET_PATH = Path("data/intermediate/minifigs_by_set.csv")
|
||||
SETS_ENRICHED_PATH = Path("data/intermediate/sets_enriched.csv")
|
||||
CHARACTERS_DIR = Path("figures/step32/minifig_characters")
|
||||
HEADS_DIR = Path("figures/step32/minifig_heads")
|
||||
CHARACTERS_DEST = Path("figures/step32/minifig_characters_all.png")
|
||||
HEADS_DEST = Path("figures/step32/minifig_heads_all.png")
|
||||
EXCLUDED_CHARACTERS = ["Figurant"]
|
||||
|
||||
|
||||
def main() -> None:
|
||||
"""Superpose les frises de personnages ayant au moins deux variations."""
|
||||
minifigs = load_minifigs_by_set(MINIFIGS_BY_SET_PATH)
|
||||
sets_lookup = load_sets(SETS_ENRICHED_PATH)
|
||||
character_sets = build_character_sets(minifigs, sets_lookup, excluded_characters=EXCLUDED_CHARACTERS)
|
||||
grouped = group_by_character(character_sets)
|
||||
filtered = filter_characters_with_variations(grouped, min_variations=2)
|
||||
keep = {sanitize_name(name) for name in filtered.keys()}
|
||||
|
||||
for source_dir, destination in (
|
||||
(CHARACTERS_DIR, CHARACTERS_DEST),
|
||||
(HEADS_DIR, HEADS_DEST),
|
||||
):
|
||||
stack_collages(source_dir, destination, spacing=12, allowed_stems=keep)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user