code: def _interpolate(self, factor, minKerning, maxKerning,
                       round=True, suppressError=True):
          
          import fontMath
          kerningGroupCompatibility = self._testKerningGroupCompatibility(
                                                          minKerning,
                                                          maxKerning,
                                                          suppressError=suppressError
                                                          )
          if not kerningGroupCompatibility:
              self.clear()
          else:
              minKerning = fontMath.MathKerning(
                  kerning=minKerning, groups=minKerning.font.groups)
              maxKerning = fontMath.MathKerning(
                  kerning=maxKerning, groups=maxKerning.font.groups)
              result = interpolate(minKerning, maxKerning, factor)
              if round:
                  result.round()
              self.clear()
              result.extractKerning(self.font)
docs: This is the environment implementation of :meth:`BaseKerning.interpolate`.
  
          * **factor** will be an :ref:`type-int-float`, ``tuple`` or ``list``.
          * **minKerning** will be a :class:`BaseKerning` object.
          * **maxKerning** will be a :class:`BaseKerning` object.
          * **round** will be a ``bool`` indicating if the interpolated kerning
            should be rounded.
          * **suppressError** will be a ``bool`` indicating if incompatible data
            should be ignored.
  
          Subclasses may override this method.