Source code for utilities
1"""Shared utility functions."""
2
3import os
4import math
5from pathlib import Path
6
[docs]
7def wipe_folder(dir: Path):
8 """Create *dir* if it does not exist, then remove all files inside it."""
9 if not os.path.exists(dir):
10 os.makedirs(dir)
11 for f in os.listdir(dir):
12 os.remove(os.path.join(dir, f))
13
[docs]
14def determine_color(ratio, colors):
15 """Interpolate between adjacent colors in a list based on *ratio* (0..1)."""
16 if ratio == 1:
17 return colors[len(colors) - 1]
18
19 color_index = math.floor(len(colors) * ratio)
20 c1 = colors[color_index]
21 c2 = colors[color_index + 1]
22 r = (c2[0] - c1[0]) * ratio + c1[0]
23 g = (c2[1] - c1[1]) * ratio + c1[1]
24 b = (c2[2] - c1[2]) * ratio + c1[2]
25 return [r, g, b, 1]