docstr: Construct a new Link object
  
  The links of the Sankey plot.
  
  Parameters
  ----------
  arg
      dict of properties compatible with this constructor or
      an instance of :class:`plotly.graph_objs.sankey.Link`
  color
      Sets the `link` color. It can be a single value, or an
      array for specifying color for each `link`. If
      `link.color` is omitted, then by default, a translucent
      grey link will be used.
  colorscales
      A tuple of
      :class:`plotly.graph_objects.sankey.link.Colorscale`
      instances or dicts with compatible properties
  colorscaledefaults
      When used in a template (as
      layout.template.data.sankey.link.colorscaledefaults),
      sets the default property values to use for elements of
      sankey.link.colorscales
  colorsrc
      Sets the source reference on Chart Studio Cloud for
      color .
  customdata
      Assigns extra data to each link.
  customdatasrc
      Sets the source reference on Chart Studio Cloud for
      customdata .
  hoverinfo
      Determines which trace information appear when hovering
      links. If `none` or `skip` are set, no information is
      displayed upon hovering. But, if `none` is set, click
      and hover events are still fired.
  hoverlabel
      :class:`plotly.graph_objects.sankey.link.Hoverlabel`
      instance or dict with compatible properties
  hovertemplate
      Template string used for rendering the information that
      appear on hover box. Note that this will override
      `hoverinfo`. Variables are inserted using %{variable},
      for example "y: %{y}". Numbers are formatted using
      d3-format's syntax %{variable:d3-format}, for example
      "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
      reference/blob/master/Formatting.md#d3_format for
      details on the formatting syntax. Dates are formatted
      using d3-time-format's syntax %{variable|d3-time-
      format}, for example "Day: %{2019-01-01|%A}".
      https://github.com/d3/d3-time-format#locale_format for
      details on the date formatting syntax. The variables
      available in `hovertemplate` are the ones emitted as
      event data described at this link
      https://plotly.com/javascript/plotlyjs-events/#event-
      data. Additionally, every attributes that can be
      specified per-point (the ones that are `arrayOk: true`)
      are available. variables `value` and `label`. Anything
      contained in tag `<extra>` is displayed in the
      secondary box, for example
      "<extra>{fullData.name}</extra>". To hide the secondary
      box completely, use an empty tag `<extra></extra>`.
  hovertemplatesrc
      Sets the source reference on Chart Studio Cloud for
      hovertemplate .
  label
      The shown name of the link.
  labelsrc
      Sets the source reference on Chart Studio Cloud for
      label .
  line
      :class:`plotly.graph_objects.sankey.link.Line` instance
      or dict with compatible properties
  source
      An integer number `[0..nodes.length - 1]` that
      represents the source node.
  sourcesrc
      Sets the source reference on Chart Studio Cloud for
      source .
  target
      An integer number `[0..nodes.length - 1]` that
      represents the target node.
  targetsrc
      Sets the source reference on Chart Studio Cloud for
      target .
  value
      A numeric value representing the flow volume value.
  valuesrc
      Sets the source reference on Chart Studio Cloud for
      value .
  
  Returns
  -------
  Link
code: def __init__(
      self,
      arg=None,
      color=None,
      colorscales=None,
      colorscaledefaults=None,
      colorsrc=None,
      customdata=None,
      customdatasrc=None,
      hoverinfo=None,
      hoverlabel=None,
      hovertemplate=None,
      hovertemplatesrc=None,
      label=None,
      labelsrc=None,
      line=None,
      source=None,
      sourcesrc=None,
      target=None,
      targetsrc=None,
      value=None,
      valuesrc=None,
      **kwargs,
  ):
      """
      Construct a new Link object
  
      The links of the Sankey plot.
  
      Parameters
      ----------
      arg
          dict of properties compatible with this constructor or
          an instance of :class:`plotly.graph_objs.sankey.Link`
      color
          Sets the `link` color. It can be a single value, or an
          array for specifying color for each `link`. If
          `link.color` is omitted, then by default, a translucent
          grey link will be used.
      colorscales
          A tuple of
          :class:`plotly.graph_objects.sankey.link.Colorscale`
          instances or dicts with compatible properties
      colorscaledefaults
          When used in a template (as
          layout.template.data.sankey.link.colorscaledefaults),
          sets the default property values to use for elements of
          sankey.link.colorscales
      colorsrc
          Sets the source reference on Chart Studio Cloud for
          color .
      customdata
          Assigns extra data to each link.
      customdatasrc
          Sets the source reference on Chart Studio Cloud for
          customdata .
      hoverinfo
          Determines which trace information appear when hovering
          links. If `none` or `skip` are set, no information is
          displayed upon hovering. But, if `none` is set, click
          and hover events are still fired.
      hoverlabel
          :class:`plotly.graph_objects.sankey.link.Hoverlabel`
          instance or dict with compatible properties
      hovertemplate
          Template string used for rendering the information that
          appear on hover box. Note that this will override
          `hoverinfo`. Variables are inserted using %{variable},
          for example "y: %{y}". Numbers are formatted using
          d3-format's syntax %{variable:d3-format}, for example
          "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
          reference/blob/master/Formatting.md#d3_format for
          details on the formatting syntax. Dates are formatted
          using d3-time-format's syntax %{variable|d3-time-
          format}, for example "Day: %{2019-01-01|%A}".
          https://github.com/d3/d3-time-format#locale_format for
          details on the date formatting syntax. The variables
          available in `hovertemplate` are the ones emitted as
          event data described at this link
          https://plotly.com/javascript/plotlyjs-events/#event-
          data. Additionally, every attributes that can be
          specified per-point (the ones that are `arrayOk: true`)
          are available. variables `value` and `label`. Anything
          contained in tag `<extra>` is displayed in the
          secondary box, for example
          "<extra>{fullData.name}</extra>". To hide the secondary
          box completely, use an empty tag `<extra></extra>`.
      hovertemplatesrc
          Sets the source reference on Chart Studio Cloud for
          hovertemplate .
      label
          The shown name of the link.
      labelsrc
          Sets the source reference on Chart Studio Cloud for
          label .
      line
          :class:`plotly.graph_objects.sankey.link.Line` instance
          or dict with compatible properties
      source
          An integer number `[0..nodes.length - 1]` that
          represents the source node.
      sourcesrc
          Sets the source reference on Chart Studio Cloud for
          source .
      target
          An integer number `[0..nodes.length - 1]` that
          represents the target node.
      targetsrc
          Sets the source reference on Chart Studio Cloud for
          target .
      value
          A numeric value representing the flow volume value.
      valuesrc
          Sets the source reference on Chart Studio Cloud for
          value .
  
      Returns
      -------
      Link
      """
      super(Link, self).__init__("link")
  
      if "_parent" in kwargs:
          self._parent = kwargs["_parent"]
          return
  
      # Validate arg
      # ------------
      if arg is None:
          arg = {}
      elif isinstance(arg, self.__class__):
          arg = arg.to_plotly_json()
      elif isinstance(arg, dict):
          arg = _copy.copy(arg)
      else:
          raise ValueError(
              """\
  The first argument to the plotly.graph_objs.sankey.Link 
  constructor must be a dict or 
  an instance of :class:`plotly.graph_objs.sankey.Link`"""
          )
  
      # Handle skip_invalid
      # -------------------
      self._skip_invalid = kwargs.pop("skip_invalid", False)
      self._validate = kwargs.pop("_validate", True)
  
      # Populate data dict with properties
      # ----------------------------------
      _v = arg.pop("color", None)
      _v = color if color is not None else _v
      if _v is not None:
          self["color"] = _v
      _v = arg.pop("colorscales", None)
      _v = colorscales if colorscales is not None else _v
      if _v is not None:
          self["colorscales"] = _v
      _v = arg.pop("colorscaledefaults", None)
      _v = colorscaledefaults if colorscaledefaults is not None else _v
      if _v is not None:
          self["colorscaledefaults"] = _v
      _v = arg.pop("colorsrc", None)
      _v = colorsrc if colorsrc is not None else _v
      if _v is not None:
          self["colorsrc"] = _v
      _v = arg.pop("customdata", None)
      _v = customdata if customdata is not None else _v
      if _v is not None:
          self["customdata"] = _v
      _v = arg.pop("customdatasrc", None)
      _v = customdatasrc if customdatasrc is not None else _v
      if _v is not None:
          self["customdatasrc"] = _v
      _v = arg.pop("hoverinfo", None)
      _v = hoverinfo if hoverinfo is not None else _v
      if _v is not None:
          self["hoverinfo"] = _v
      _v = arg.pop("hoverlabel", None)
      _v = hoverlabel if hoverlabel is not None else _v
      if _v is not None:
          self["hoverlabel"] = _v
      _v = arg.pop("hovertemplate", None)
      _v = hovertemplate if hovertemplate is not None else _v
      if _v is not None:
          self["hovertemplate"] = _v
      _v = arg.pop("hovertemplatesrc", None)
      _v = hovertemplatesrc if hovertemplatesrc is not None else _v
      if _v is not None:
          self["hovertemplatesrc"] = _v
      _v = arg.pop("label", None)
      _v = label if label is not None else _v
      if _v is not None:
          self["label"] = _v
      _v = arg.pop("labelsrc", None)
      _v = labelsrc if labelsrc is not None else _v
      if _v is not None:
          self["labelsrc"] = _v
      _v = arg.pop("line", None)
      _v = line if line is not None else _v
      if _v is not None:
          self["line"] = _v
      _v = arg.pop("source", None)
      _v = source if source is not None else _v
      if _v is not None:
          self["source"] = _v
      _v = arg.pop("sourcesrc", None)
      _v = sourcesrc if sourcesrc is not None else _v
      if _v is not None:
          self["sourcesrc"] = _v
      _v = arg.pop("target", None)
      _v = target if target is not None else _v
      if _v is not None:
          self["target"] = _v
      _v = arg.pop("targetsrc", None)
      _v = targetsrc if targetsrc is not None else _v
      if _v is not None:
          self["targetsrc"] = _v
      _v = arg.pop("value", None)
      _v = value if value is not None else _v
      if _v is not None:
          self["value"] = _v
      _v = arg.pop("valuesrc", None)
      _v = valuesrc if valuesrc is not None else _v
      if _v is not None:
          self["valuesrc"] = _v
  
      # Process unknown kwargs
      # ----------------------
      self._process_kwargs(**dict(arg, **kwargs))
  
      # Reset skip_invalid
      # ------------------
      self._skip_invalid = False
  
imports: from plotly.basedatatypes import BaseTraceHierarchyType
  import copy
label_desc: Use image node_id 40 to create a new Link object from inherited base classes: _BaseTraceHierarchyType with example: obj = Link(arg, color, colorscales, colorscaledefaults, colorsrc, customdata, customdatasrc, hoverinfo, hoverlabel, hovertemplate, hovertemplatesrc, label, labelsrc, line, source, sourcesrc, target, targetsrc, value, valuesrc)