code: def _interpolate(self, factor, minFont, maxFont,
                       round=True, suppressError=True):
          
          # layers
          for layerName in self.layerOrder:
              self.removeLayer(layerName)
          for layerName in minFont.layerOrder:
              if layerName not in maxFont.layerOrder:
                  continue
              minLayer = minFont.getLayer(layerName)
              maxLayer = maxFont.getLayer(layerName)
              dstLayer = self.newLayer(layerName)
              dstLayer.interpolate(factor, minLayer, maxLayer,
                                   round=round, suppressError=suppressError)
          if self.layerOrder:
              self.defaultLayer = self.getLayer(self.layerOrder[0])
          # kerning and groups
          self.kerning.interpolate(factor, minFont.kerning, maxFont.kerning,
                                   round=round, suppressError=suppressError)
          # info
          self.info.interpolate(factor, minFont.info, maxFont.info,
                                round=round, suppressError=suppressError)
docs: This is the environment implementation of
          :meth:`BaseFont.interpolate`.
  
          Subclasses may override this method.