code: def __init__(
      self,
      name: str,
      roles: List[Role],
      provider,
      version,
      description,
      callback,
      parameters: ComponentParameterDescribes,
      artifacts: ComponentArtifactDescribes,
      is_subcomponent: bool = False,
  ) -> None:
      self.is_subcomponent = is_subcomponent
      self.name = name
      self.roles = roles
      self.provider = provider
      self.version = version
      self.description = description
      self.callback = callback
      self.parameters = parameters
      if not self.description:
          self.description = ""
      self.artifacts = artifacts
      self.func_args = list(
          inspect.signature(self.callback).parameters.keys()
      )
      self.stage_components: List[Component] = []
  
imports: import inspect
  import logging
  from typing import List, Optional
  from fate.components.core.essential import CROSS_VALIDATION, DEFAULT, PREDICT, TRAIN, Role, Stage
  from ._component_artifact import ArtifactDescribeAnnotation, ComponentArtifactDescribes
  from ._parameter import ComponentParameterDescribes, ParameterDescribeAnnotation
label_desc: Use image node_id 1 to create a new Component object  with example: obj = Component(name, roles, provider, version, description, callback, parameters, artifacts, is_subcomponent)