code: def __next__(self):
      from fate.arch import URI
  
      uri = URI.from_string(
          self.apply_config.uri.format(index=self.current)
      )
      writer = self.artifact_describe.get_writer(
          self.config,
          self.ctx,
          uri,
          self.artifact_describe.get_type().type_name,
      )
      _update_source_meta(
          writer.artifact.metadata, self.config, self.name, self.current
      )
      _maybe_update_model_overview_meta(
          writer.artifact.metadata, self.cpn, self.config
      )
      self.recorder.artifacts.append(writer.artifact)
      self.current += 1
      return writer
  
imports: import logging
  import typing
  from typing import Dict, Generic, List, Optional, Union
  from fate.components.core.essential import Role, Stage
  from .artifacts._base_type import AT, MM, ArtifactDescribe, M, _ArtifactsType, _ArtifactType
label_desc: Use image node_id 4 for calling the WriterGenerator obj's underlying member method code with example usage: obj.__next__() and returns: writer