docs: def addInfo(self, instanceLocation=None, sources=None, copySourceName=None):
          """ Add font info data. """
          if instanceLocation is None:
              instanceLocation = self.locationObject
          infoObject = self.font.info
          infoMasters = []
          if sources is None:
              sources = self.sources
          items = []
          for sourceName, (source, sourceLocation) in sources.items():
              if sourceName in self.muted['info']:
                  # info in this master was muted, so do not add.
                  continue
              items.append((sourceLocation, MathInfo(source.info)))
          try:
              bias, m = buildMutator(items, axes=self.axes)
          except:
              if self.logger:
                  self.logger.exception("Error processing font info. %s", items)
              return
          instanceObject = m.makeInstance(instanceLocation)
          if self.roundGeometry:
              try:
                  instanceObject = instanceObject.round()
              except AttributeError:
                  warnings.warn("MathInfo object missing round() method.")
          instanceObject.extractInfo(self.font.info)
  
          # handle the copyable info fields
          if copySourceName is not None:
              if not copySourceName in sources:
                  if self.verbose and self.logger:
                      self.logger.info("Copy info source %s not found, skipping.", copySourceName)
                      return
              copySourceObject, loc = sources[copySourceName]
              self._copyFontInfo(self.font.info, copySourceObject.info)