code: def compile(self, ttFont):
      if ttFont.recalcBBoxes:
          # For TT-flavored fonts, xMin, yMin, xMax and yMax are set in table__m_a_x_p.recalc().
          if "CFF " in ttFont:
              topDict = ttFont["CFF "].cff.topDictIndex[0]
              self.xMin, self.yMin, self.xMax, self.yMax = intRect(
                  topDict.FontBBox
              )
          elif "CFF2" in ttFont:
              topDict = ttFont["CFF2"].cff.topDictIndex[0]
              charStrings = topDict.CharStrings
              fontBBox = None
              for charString in charStrings.values():
                  bounds = charString.calcBounds(charStrings)
                  if bounds is not None:
                      if fontBBox is not None:
                          fontBBox = unionRect(fontBBox, bounds)
                      else:
                          fontBBox = bounds
              if fontBBox is not None:
                  self.xMin, self.yMin, self.xMax, self.yMax = intRect(
                      fontBBox
                  )
      if ttFont.recalcTimestamp:
          self.modified = timestampNow()
      data = sstruct.pack(headFormat, self)
      return data
  
file_path: catboost/contrib/python/fonttools/fontTools/ttLib/tables/_h_e_a_d.py
imports: from fontTools.misc import sstruct
  from fontTools.misc.fixedTools import floatToFixedToStr, strToFixedToFloat
  from fontTools.misc.textTools import safeEval, num2binary, binary2num
  from fontTools.misc.timeTools import timestampFromString, timestampToString, timestampNow
  from fontTools.misc.timeTools import epoch_diff
  from fontTools.misc.arrayTools import intRect, unionRect
  from .None import DefaultTable
  import logging
label_desc: Use image node_id 2 for calling the table__h_e_a_d obj's underlying member method code with example usage: obj.compile(ttFont) and returns: data