code: def AppendSource(self, type_indicator, attributes):
      
      if not type_indicator:
        raise errors.FormatError('Missing type indicator.')
  
      try:
        source_object = registry.ArtifactDefinitionsRegistry.CreateSourceType(
            type_indicator, attributes)
      except (AttributeError, TypeError) as exception:
        raise errors.FormatError((
            'Unable to create source type: {0:s} for artifact definition: {1:s} '
            'with error: {2!s}').format(type_indicator, self.name, exception))
  
      self.sources.append(source_object)
      return source_object
docs: Appends a source.
  
      If you want to implement your own source type you should create a subclass
      in source_type.py and change the AppendSource method to handle the new
      subclass. This function raises FormatError if an unsupported source type
      indicator is encountered.
  
      Args:
        type_indicator (str): source type indicator.
        attributes (dict[str, object]): source attributes.
  
      Returns:
        SourceType: a source type.
  
      Raises:
        FormatError: if the type indicator is not set or unsupported,
            or if required attributes are missing.