import re from glob import glob from itertools import groupby from os.path import join, basename from pprint import pprint from kis_tools.bbi.util import get_wl from kis_tools.util.util import merge_to_gif, gif_to_mp4 def bbi_gen_gif(folder): """Check a folder and merge all images of the same type into gifs and mp4s""" outfiles = [] for pattern in ["reco", "location", "alpha"]: files = glob(join(folder, f"*{pattern}*.png")) if not files: continue files.sort(key=get_wl) grouped = groupby(files, get_wl) for group, grouped_files in grouped: grouped_files = list(grouped_files) fn = basename(grouped_files[0]) fn = re.sub(r"-\d{6}", "", fn) fn = fn.replace(".png", ".gif") print(fn) outfile = join(folder, fn) merge_to_gif(sorted(grouped_files), outfile) gif_to_mp4(outfile) outfiles.append(outfile) print(f"Finished BBI gif generation, {len(outfiles)} were created:") pprint(outfiles) print(f"Mp4 conversion was performed for {len(outfiles)} files")