code: def visit(visitor, obj, attr, glyphs):
      for g in glyphs.values():
          for attr in ("xMin", "xMax", "yMin", "yMax"):
              v = getattr(g, attr, None)
              if v is not None:
                  setattr(g, attr, visitor.scale(v))
  
          if g.isComposite():
              for component in g.components:
                  component.x = visitor.scale(component.x)
                  component.y = visitor.scale(component.y)
              continue
  
          if g.isVarComposite():
              for component in g.components:
                  for attr in (
                      "translateX",
                      "translateY",
                      "tCenterX",
                      "tCenterY",
                  ):
                      v = getattr(component.transform, attr)
                      setattr(
                          component.transform, attr, visitor.scale(v)
                      )
              continue
  
          if hasattr(g, "coordinates"):
              coordinates = g.coordinates
              for i, (x, y) in enumerate(coordinates):
                  coordinates[i] = visitor.scale(x), visitor.scale(y)
  
imports: from fontTools.ttLib.ttVisitor import TTVisitor
  import fontTools.ttLib
  import fontTools.ttLib.tables.otBase
  import fontTools.ttLib.tables.otTables
  from fontTools.cffLib import VarStoreData
  import fontTools.cffLib.specializer
  from fontTools.varLib import builder
  from fontTools.misc.fixedTools import otRound
  from fontTools.ttLib.tables._g_l_y_f import VarComponentFlags
label_desc: Use image node_id 4 for calling a global function with example usage: visit(visitor, obj, attr, glyphs) without return types