]> git.ipfire.org Git - thirdparty/google/fonts.git/commitdiff
black
authorMarc Foley <m.foley.88@gmail.com>
Thu, 21 Apr 2022 08:30:05 +0000 (09:30 +0100)
committerMarc Foley <m.foley.88@gmail.com>
Fri, 6 May 2022 14:49:06 +0000 (15:49 +0100)
Lib/axisregistry/__init__.py

index abbbfb572bf65dcddcebb10d85227779fc504984..ada98ea71b8798eebacc0534fc1b64a1227b3cf0 100644 (file)
@@ -62,7 +62,6 @@ def AxisRegistry():
         "y_transparent_uppercase.textproto",
     ]:
         append_AxisMessage(resource_filename("axisregistry", "data/" + axis))
-
     return registry
 
 
@@ -74,7 +73,7 @@ class GFNameBuilder:
         self.weights = self.axis_reg["wght"].fallback
         self.family_name = self.ttFont["name"].getBestFamilyName()
         self.subfamily_name = self.ttFont["name"].getBestSubFamilyName()
-    
+
     def is_variable(self):
         return "fvar" in self.ttFont
 
@@ -83,17 +82,22 @@ class GFNameBuilder:
         for a in self.ttFont["fvar"].axes:
             # find name and elision
             if a.axisTag in self.axis_reg:
-                name = next((f.name for f in self.axis_reg[a.axisTag].fallback if f.value == a.defaultValue), None)
-                elided = a.defaultValue == self.axis_reg[a.axisTag].default_value and name not in ["Regular", "Italic"]
+                name = next(
+                    (
+                        f.name
+                        for f in self.axis_reg[a.axisTag].fallback
+                        if f.value == a.defaultValue
+                    ),
+                    None,
+                )
+                elided = a.defaultValue == self.axis_reg[
+                    a.axisTag
+                ].default_value and name not in ["Regular", "Italic"]
             else:
                 name = None
-                elided = True # since we can't find a name for it, keep it elided
-            
-            res[a.axisTag] = {
-                "value": a.defaultValue,
-                "name": name,
-                "elided": elided 
-            }
+                elided = True  # since we can't find a name for it, keep it elided
+
+            res[a.axisTag] = {"value": a.defaultValue, "name": name, "elided": elided}
         return res
 
     def build_stat(self, sibling_ttFonts=None):
@@ -109,22 +113,20 @@ class GFNameBuilder:
         seen_axes = set()
         for axis, fallbacks in fallbacks_in_font.items():
             seen_axes.add(axis)
-            a = {
-                "tag": axis,
-                "name": self.axis_reg[axis].display_name,
-                "values": []
-            }
+            a = {"tag": axis, "name": self.axis_reg[axis].display_name, "values": []}
             for fallback in fallbacks:
                 a["values"].append(
                     {
                         "name": fallback.name,
                         "value": fallback.value,
                         # include flags and linked values
-                        "flags": 0x2 if fallback.value == self.axis_reg[axis].default_value else 0x0
+                        "flags": 0x2
+                        if fallback.value == self.axis_reg[axis].default_value
+                        else 0x0,
                     }
                 )
             res.append(a)
-        
+
         # doesn't feel like these should come last!
         if sibling_font_styles:
             for axis, fallback in sibling_font_styles:
@@ -137,21 +139,29 @@ class GFNameBuilder:
                         {
                             "name": fallback.name,
                             "value": fallback.value,
-                            "flags": 0x2 if fallback.value == self.axis_reg[axis].default_value else 0x0
+                            "flags": 0x2
+                            if fallback.value == self.axis_reg[axis].default_value
+                            else 0x0,
                         }
-                    ]
+                    ],
                 }
                 res.append(a)
         buildStatTable(self.ttFont, res, macNames=False)
-    
+
     def _fallbacks_in_font(self):
         res = defaultdict(list)
-        axes_in_font = {a.axisTag: {"min": a.minValue, "max": a.maxValue} for a in self.ttFont["fvar"].axes}
+        axes_in_font = {
+            a.axisTag: {"min": a.minValue, "max": a.maxValue}
+            for a in self.ttFont["fvar"].axes
+        }
         for axis in self.axis_reg:
             if axis not in axes_in_font:
                 continue
             for fallback in self.axis_reg[axis].fallback:
-                if fallback.value < axes_in_font[axis]["min"] or fallback.value > axes_in_font[axis]["max"]:
+                if (
+                    fallback.value < axes_in_font[axis]["min"]
+                    or fallback.value > axes_in_font[axis]["max"]
+                ):
                     continue
                 res[axis].append(fallback)
         return res
@@ -159,6 +169,7 @@ class GFNameBuilder:
     def _sibling_font_styles(self, sibling_ttFonts=None):
         if not sibling_ttFonts:
             return []
+
         def name_in_axis_reg(name):
             for a in self.axis_reg:
                 for fallback in self.axis_reg[a].fallback:
@@ -169,7 +180,10 @@ class GFNameBuilder:
         res = []
         for sibling_ttFont in sibling_ttFonts:
             name_table = sibling_ttFont["name"]
-            tokens = name_table.getBestFamilyName().split() + name_table.getBestSubFamilyName().split()
+            tokens = (
+                name_table.getBestFamilyName().split()
+                + name_table.getBestSubFamilyName().split()
+            )
 
             fvar_axes_in_font = [a.axisTag for a in sibling_ttFont["fvar"].axes]
 
@@ -181,23 +195,27 @@ class GFNameBuilder:
         return res
 
     def build_name_table(self, family_name=None, style_name=None):
-        family_name = family_name if family_name else self.name_table.getBestFamilyName()
-        style_name = style_name if style_name else self.name_table.getBestSubFamilyName()
+        family_name = (
+            family_name if family_name else self.name_table.getBestFamilyName()
+        )
+        style_name = (
+            style_name if style_name else self.name_table.getBestSubFamilyName()
+        )
         if self.is_variable():
             return self.build_vf_name_table(family_name)
         return self.build_static_name_table_v1(family_name, style_name)
-    
+
     def build_vf_name_table(self, family_name):
         # VF name table should reflect the 0 origin of the font!
         assert self.is_variable(), "Not a VF!"
         print("building vf name table")
         style_name = self._vf_style_name()
         self.build_static_name_table(family_name, style_name)
-    
+
     def _vf_style_name(self):
         fvar_dflts = self._fvar_dflts()
         res = []
-        for k,v in fvar_dflts.items():
+        for k, v in fvar_dflts.items():
             if v["elided"]:
                 continue
             res.append(v["name"])
@@ -222,7 +240,7 @@ class GFNameBuilder:
 
         if "wght" not in fvar_dflts:
             raise NotImplementedError()
-        
+
         fallbacks = self._fallbacks_in_font()
         wght_fallbacks = fallbacks["wght"]
 
@@ -267,7 +285,7 @@ class GFNameBuilder:
         is_ribbi = False
         if style_name in ("Regular", "Italic", "Bold", "Bold Italic"):
             is_ribbi = True
-        
+
         if is_ribbi:
             full_name = f"{family_name} {style_name}"
             ps_name = full_name.replace(" ", "")
@@ -289,17 +307,19 @@ class GFNameBuilder:
             new_style_name = "Italic" if is_italic else "Regular"
             full_name = f"{new_family_name} {new_style_name}"
             ps_name = full_name.replace(" ", "")
-            
+
             names[(1, 3, 1, 0x409)] = new_family_name
-            names[(2, 3, 1, 0x409)] = new_style_name 
+            names[(2, 3, 1, 0x409)] = new_style_name
             names[(4, 3, 1, 0x409)] = full_name
             names[(6, 3, 1, 0x409)] = ps_name
             names[(16, 3, 1, 0x409)] = family_name
             names[(17, 3, 1, 0x409)] = style_name
             for name_id in (21, 22):
                 self.name_table.removeNames(nameID=name_id)
-        
-        names[(3, 3, 1, 0x409)] = _updateUniqueIdNameRecord(self.ttFont, {k[0]:v for k,v in names.items()}, (3, 1, 0x409))
+
+        names[(3, 3, 1, 0x409)] = _updateUniqueIdNameRecord(
+            self.ttFont, {k[0]: v for k, v in names.items()}, (3, 1, 0x409)
+        )
         for k, v in names.items():
             self.name_table.setName(v, *k)
 
@@ -311,7 +331,7 @@ class GFNameBuilder:
         for t in tokens:
             if t not in self.weights + ["Italic"]:
                 non_weight_tokens.append(t)
-        
+
         family_tokens = family_name.split()
         new_family_name = []
         for t in family_tokens:
@@ -321,20 +341,23 @@ class GFNameBuilder:
 
         for t in non_weight_tokens:
             new_family_name.append(t)
-        
+
         family_name = " ".join(new_family_name)
         self.build_static_name_table(family_name, style_name)
 
 
 def main():
-    f = TTFont("/Users/marcfoley/Type/upstream_repos/mavenproFont/fonts/variable/MavenPro[wght].ttf")
+    f = TTFont(
+        "/Users/marcfoley/Type/upstream_repos/mavenproFont/fonts/variable/MavenPro[wght].ttf"
+    )
     namer = GFNameBuilder(f)
-#    namer.build_stat()
-#    namer.build_name_table("Maven Pro Trial")
+    #    namer.build_stat()
+    #    namer.build_name_table("Maven Pro Trial")
     namer.build_fvar_instances()
     import pdb
+
     pdb.set_trace()
 
 
 if __name__ == "__main__":
-    main()
\ No newline at end of file
+    main()