code: def makeGlyphsBoundingBoxes(self):
          
  
          def getControlPointBounds(glyph):
              pen.init()
              glyph.draw(pen)
              return pen.bounds
  
          glyphBoxes = {}
          pen = ControlBoundsPen(self.allGlyphs)
          for glyphName, glyph in self.allGlyphs.items():
              bounds = None
              if glyph or glyph.components:
                  bounds = getControlPointBounds(glyph)
                  if bounds:
                      bounds = BoundingBox(*(otRound(v) for v in bounds))
              glyphBoxes[glyphName] = bounds
          return glyphBoxes
docs: Make bounding boxes for all the glyphs, and return a dictionary of
          BoundingBox(xMin, xMax, yMin, yMax) namedtuples keyed by glyph names.
          The bounding box of empty glyphs (without contours or components) is
          set to None.
  
          Float values are rounded to integers using fontTools otRound().
  
          **This should not be called externally.** Subclasses
          may override this method to handle the bounds creation
          in a different way if desired.