@@ -91,17 +91,16 @@ def getNamedInstancesForFont(font):
9191
9292def getFontVariationAttributes (font , fontVariations ):
9393 coreTextFontVariations = dict ()
94- if fontVariations :
95- existingAxes = getVariationAxesForFont (font )
96- for axis , value in fontVariations .items ():
97- if axis in existingAxes :
98- existinsAxis = existingAxes [axis ]
99- # clip variation value within the min max value
100- if value < existinsAxis ["minValue" ]:
101- value = existinsAxis ["minValue" ]
102- if value > existinsAxis ["maxValue" ]:
103- value = existinsAxis ["maxValue" ]
104- coreTextFontVariations [convertVariationTagToInt (axis )] = value
105- else :
106- warnings .warn ("variation axis '%s' not available for '%s'" % (axis , font .fontName ()))
94+ axes = getVariationAxesForFont (font )
95+
96+ for axisTag , axis in axes .items ():
97+ value = min (
98+ max (fontVariations .get (axisTag , axis ["defaultValue" ]), axis ["minValue" ]),
99+ axis ["maxValue" ],
100+ )
101+ coreTextFontVariations [convertVariationTagToInt (axisTag )] = value
102+
103+ for axisTag in sorted (set (fontVariations ) - set (axes )):
104+ warnings .warn ("variation axis '%s' not available for '%s'" % (axisTag , font .fontName ()))
105+
107106 return coreTextFontVariations
0 commit comments