code: def decompile(self, ttFont):
      self.glyphName = ttFont.getGlyphName(self.gid)
      if self.rawdata is None:
          from fontTools import ttLib
  
          raise ttLib.TTLibError("No table data to decompile")
      if len(self.rawdata) > 0:
          if len(self.rawdata) < sbixGlyphHeaderFormatSize:
              from fontTools import ttLib
  
              # print "Glyph %i header too short: Expected %x, got %x." % (self.gid, sbixGlyphHeaderFormatSize, len(self.rawdata))
              raise ttLib.TTLibError("Glyph header too short.")
  
          sstruct.unpack(
              sbixGlyphHeaderFormat,
              self.rawdata[:sbixGlyphHeaderFormatSize],
              self,
          )
  
          if self.graphicType == "dupe":
              # this glyph is a reference to another glyph's image data
              (gid,) = struct.unpack(
                  ">H", self.rawdata[sbixGlyphHeaderFormatSize:]
              )
              self.referenceGlyphName = ttFont.getGlyphName(gid)
          else:
              self.imageData = self.rawdata[sbixGlyphHeaderFormatSize:]
              self.referenceGlyphName = None
      # clean up
      del self.rawdata
      del self.gid
  
file_path: catboost/contrib/python/fonttools/fontTools/ttLib/tables/sbixGlyph.py
imports: from fontTools.misc import sstruct
  from fontTools.misc.textTools import readHex, safeEval
  import struct
label_desc: Use image node_id 2 for calling the Glyph obj's underlying member method code with example usage: obj.decompile(ttFont) without return types