diff options
author | Rasmus Andersson <rasmus@notion.se> | 2023-05-30 23:55:37 +0300 |
---|---|---|
committer | Rasmus Andersson <rasmus@notion.se> | 2023-05-30 23:55:37 +0300 |
commit | 9ebede5a554ad7ad1b8961a6dc0883db7f599271 (patch) | |
tree | 268271ecb22389ecba1885d6a298ece634f3cd4b /misc | |
parent | 106217ed5705f1383bdf086f753599441b1423d0 (diff) | |
download | inter-9ebede5a554ad7ad1b8961a6dc0883db7f599271.tar.xz |
tooling: make postprocess-designspace.py infer opsz range instead of using hard-coded values
Diffstat (limited to 'misc')
-rw-r--r-- | misc/tools/postprocess-designspace.py | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/misc/tools/postprocess-designspace.py b/misc/tools/postprocess-designspace.py index af3d3e6c4..fbe76a364 100644 --- a/misc/tools/postprocess-designspace.py +++ b/misc/tools/postprocess-designspace.py @@ -46,12 +46,26 @@ def update_version(ufo): def fix_opsz_range(designspace): - # TODO: find extremes by looking at the source - for a in designspace.axes: - if a.tag == "opsz": - a.minimum = 14 - a.maximum = 32 + opsz_min = 1000000 + opsz_max = 0 + opsz_name = '' + opsz_axis = None + + for opsz_axis in designspace.axes: + if opsz_axis.tag == "opsz": + opsz_name = opsz_axis.name break + + for instance in designspace.instances: + opsz_value = instance.location[opsz_name] + if opsz_value < opsz_min: + opsz_min = opsz_value + if opsz_value > opsz_max: + opsz_max = opsz_value + + opsz_axis.minimum = opsz_min + opsz_axis.maximum = opsz_max + return designspace |