
    -Ph
f                     6    d dl mZ d dlZ G d de          ZdS )    )BaseTraceHierarchyTypeNc                       e Zd ZdZdZh dZed             Zej        d             Zed             Z	e	j        d             Z	ed             Z
e
j        d	             Z
ed
             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed             Zej        d             Zed              Zej        d!             Zed"             Zej        d#             Zed$             Zej        d%             Zed&             Zej        d'             Zed(             Zej        d)             Zed*             Zej        d+             Zed,             Zej        d-             Zed.             Zej        d/             Zed0             Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d3 fd2	Z xZ S )4Linksankeyzsankey.link>   linecolorlabelvaluesourcetargetarrowlencolorsrclabelsrcvaluesrc	hoverinfo	sourcesrc	targetsrc
customdata
hovercolor
hoverlabelcolorscalescustomdatasrchovercolorsrchovertemplatehovertemplatesrccolorscaledefaultsc                     | d         S )a  
        Sets the length (in px) of the links arrow, if 0 no arrow will
        be drawn.

        The 'arrowlen' property is a number and may be specified as:
          - An int or float in the interval [0, inf]

        Returns
        -------
        int|float
        r    selfs    ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/plotly/graph_objs/sankey/_link.pyr   zLink.arrowlen%   s     J    c                     || d<   d S )Nr   r   r    vals     r!   r   zLink.arrowlen4       Zr"   c                     | d         S )a  
        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.

        The 'color' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color: see https://plotly.com/python/css-colors/ for a list
          - A list or array of any of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   r   s    r!   r   z
Link.color8   s    & G}r"   c                     || d<   d S )Nr   r   r$   s     r!   r   z
Link.colorM       Wr"   c                     | d         S )a  
        The 'colorscales' property is a tuple of instances of
        Colorscale that may be specified as:
          - A list or tuple of instances of plotly.graph_objs.sankey.link.Colorscale
          - A list or tuple of dicts of string/value properties that
            will be passed to the Colorscale constructor

        Returns
        -------
        tuple[plotly.graph_objs.sankey.link.Colorscale]
        r   r   r   s    r!   r   zLink.colorscalesQ   s     M""r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.colorscales`   s    !]r"   c                     | d         S )a@  
        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

        The 'colorscaledefaults' property is an instance of Colorscale
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sankey.link.Colorscale`
          - A dict of string/value properties that will be passed
            to the Colorscale constructor

        Returns
        -------
        plotly.graph_objs.sankey.link.Colorscale
        r   r   r   s    r!   r   zLink.colorscaledefaultsd   s    $ ())r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.colorscaledefaultsx   s    %(!"""r"   c                     | d         S )z
        Sets the source reference on Chart Studio Cloud for `color`.

        The 'colorsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   r   s    r!   r   zLink.colorsrc|        Jr"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.colorsrc   r&   r"   c                     | d         S )z
        Assigns extra data to each link.

        The 'customdata' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   r   s    r!   r   zLink.customdata   s     L!!r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.customdata        \r"   c                     | d         S )z
        Sets the source reference on Chart Studio Cloud for
        `customdata`.

        The 'customdatasrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   r   s    r!   r   zLink.customdatasrc        O$$r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.customdatasrc        #_r"   c                     | d         S )a  
        Sets the `link` hover color. It can be a single value, or an
        array for specifying hover colors for each `link`. If
        `link.hovercolor` is omitted, then by default, links will
        become slightly more opaque when hovered over.

        The 'hovercolor' property is a color and may be specified as:
          - A hex string (e.g. '#ff0000')
          - An rgb/rgba string (e.g. 'rgb(255,0,0)')
          - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
          - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
          - A named CSS color: see https://plotly.com/python/css-colors/ for a list
          - A list or array of any of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   r   s    r!   r   zLink.hovercolor   s    ( L!!r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.hovercolor   r3   r"   c                     | d         S )z
        Sets the source reference on Chart Studio Cloud for
        `hovercolor`.

        The 'hovercolorsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   r   s    r!   r   zLink.hovercolorsrc   r5   r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.hovercolorsrc   r7   r"   c                     | d         S )a  
        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.

        The 'hoverinfo' property is an enumeration that may be specified as:
          - One of the following enumeration values:
                ['all', 'none', 'skip']

        Returns
        -------
        Any
        r   r   r   s    r!   r   zLink.hoverinfo   s      K  r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.hoverinfo       [r"   c                     | d         S )au  
        The 'hoverlabel' property is an instance of Hoverlabel
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sankey.link.Hoverlabel`
          - A dict of string/value properties that will be passed
            to the Hoverlabel constructor

        Returns
        -------
        plotly.graph_objs.sankey.link.Hoverlabel
        r   r   r   s    r!   r   zLink.hoverlabel   s     L!!r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.hoverlabel  r3   r"   c                     | d         S )a  
        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}"
        as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When
        showing info for several points, "xother" will be added to
        those with different x positions from the first point. An
        underscore before or after "(x|y)other" will add a space on
        that side, only when this field is shown. Numbers are formatted
        using d3-format's syntax %{variable:d3-format}, for example
        "Price: %{y:$.2f}".
        https://github.com/d3/d3-format/tree/v1.4.5#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/tree/v2.2.3#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
        `source` and `target` are node objects.Finally, the template
        string has access to 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>`.

        The 'hovertemplate' property is a string and must be specified as:
          - A string
          - A number that will be converted to a string
          - A tuple, list, or one-dimensional numpy array of the above

        Returns
        -------
        str|numpy.ndarray
        r   r   r   s    r!   r   zLink.hovertemplate	  s    L O$$r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.hovertemplate1  r7   r"   c                     | d         S )a  
        Sets the source reference on Chart Studio Cloud for
        `hovertemplate`.

        The 'hovertemplatesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   r   s    r!   r   zLink.hovertemplatesrc5  s     &''r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.hovertemplatesrcD  s    #&   r"   c                     | d         S )z
        The shown name of the link.

        The 'label' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r	   r   r   s    r!   r	   z
Link.labelH       G}r"   c                     || d<   d S )Nr	   r   r$   s     r!   r	   z
Link.labelV  r)   r"   c                     | d         S )z
        Sets the source reference on Chart Studio Cloud for `label`.

        The 'labelsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   r   s    r!   r   zLink.labelsrcZ  r/   r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.labelsrch  r&   r"   c                     | d         S )aW  
        The 'line' property is an instance of Line
        that may be specified as:
          - An instance of :class:`plotly.graph_objs.sankey.link.Line`
          - A dict of string/value properties that will be passed
            to the Line constructor

        Returns
        -------
        plotly.graph_objs.sankey.link.Line
        r   r   r   s    r!   r   z	Link.linel  s     F|r"   c                     || d<   d S )Nr   r   r$   s     r!   r   z	Link.line{  s    Vr"   c                     | d         S )a  
        An integer number `[0..nodes.length - 1]` that represents the
        source node.

        The 'source' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   r   s    r!   r   zLink.source       H~r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.source      Xr"   c                     | d         S )z
        Sets the source reference on Chart Studio Cloud for `source`.

        The 'sourcesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   r   s    r!   r   zLink.sourcesrc       K  r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.sourcesrc  r>   r"   c                     | d         S )a  
        An integer number `[0..nodes.length - 1]` that represents the
        target node.

        The 'target' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r   r   r   s    r!   r   zLink.target  rM   r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.target  rO   r"   c                     | d         S )z
        Sets the source reference on Chart Studio Cloud for `target`.

        The 'targetsrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   r   s    r!   r   zLink.targetsrc  rQ   r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.targetsrc  r>   r"   c                     | d         S )z
        A numeric value representing the flow volume value.

        The 'value' property is an array that may be specified as a tuple,
        list, numpy array, or pandas Series

        Returns
        -------
        numpy.ndarray
        r
   r   r   s    r!   r
   z
Link.value  rF   r"   c                     || d<   d S )Nr
   r   r$   s     r!   r
   z
Link.value  r)   r"   c                     | d         S )z
        Sets the source reference on Chart Studio Cloud for `value`.

        The 'valuesrc' property must be specified as a string or
        as a plotly.grid_objs.Column object

        Returns
        -------
        str
        r   r   r   s    r!   r   zLink.valuesrc  r/   r"   c                     || d<   d S )Nr   r   r$   s     r!   r   zLink.valuesrc  r&   r"   c                     dS )Na~          arrowlen
            Sets the length (in px) of the links arrow, if 0 no
            arrow will be drawn.
        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`.
        hovercolor
            Sets the `link` hover color. It can be a single value,
            or an array for specifying hover colors for each
            `link`. If `link.hovercolor` is omitted, then by
            default, links will become slightly more opaque when
            hovered over.
        hovercolorsrc
            Sets the source reference on Chart Studio Cloud for
            `hovercolor`.
        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}" as well as %{xother}, {%_xother},
            {%_xother_}, {%xother_}. When showing info for several
            points, "xother" will be added to those with different
            x positions from the first point. An underscore before
            or after "(x|y)other" will add a space on that side,
            only when this field is shown. Numbers are formatted
            using d3-format's syntax %{variable:d3-format}, for
            example "Price: %{y:$.2f}".
            https://github.com/d3/d3-format/tree/v1.4.5#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/tree/v2.2.3#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 `source` and `target` are
            node objects.Finally, the template string has access to
            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`.
        r   r   s    r!   _prop_descriptionszLink._prop_descriptions  s    f fr"   Nc           	         t                                          d           d|v r|d         | _        dS |i }nct          || j                  r|                                }n9t          |t                    rt          j        |          }nt          d          |
                    dd          | _        |
                    dd          | _        |                     d	||           |                     d
||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||	           |                     d||
           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||           |                     d||            | j        di t          |fi | d| _        dS ) a  
        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`
        arrowlen
            Sets the length (in px) of the links arrow, if 0 no
            arrow will be drawn.
        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`.
        hovercolor
            Sets the `link` hover color. It can be a single value,
            or an array for specifying hover colors for each
            `link`. If `link.hovercolor` is omitted, then by
            default, links will become slightly more opaque when
            hovered over.
        hovercolorsrc
            Sets the source reference on Chart Studio Cloud for
            `hovercolor`.
        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}" as well as %{xother}, {%_xother},
            {%_xother_}, {%xother_}. When showing info for several
            points, "xother" will be added to those with different
            x positions from the first point. An underscore before
            or after "(x|y)other" will add a space on that side,
            only when this field is shown. Numbers are formatted
            using d3-format's syntax %{variable:d3-format}, for
            example "Price: %{y:$.2f}".
            https://github.com/d3/d3-format/tree/v1.4.5#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/tree/v2.2.3#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 `source` and `target` are
            node objects.Finally, the template string has access to
            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
        link_parentNzThe first argument to the plotly.graph_objs.sankey.Link
constructor must be a dict or
an instance of :class:`plotly.graph_objs.sankey.Link`skip_invalidF	_validateTr   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r
   r   r   )super__init__r_   
isinstance	__class__to_plotly_jsondict_copycopy
ValueErrorpop_skip_invalidra   _set_property_process_kwargs)r    argr   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r
   r   kwargsre   s                            r!   rc   zLink.__init__W  s   ^ 	   !),DLF;CCT^,, 
	$$&&CCT"" 	*S//CC9   $ZZ>>K66:sH5557C///=#{;;;/6HIII:sH555<j999?C???<j999?C???;Y777<j999?C???-s4DEEE7C///:sH55563---8S&111;Y7778S&111;Y7777C///:sH55533tC22622333"r"   )NNNNNNNNNNNNNNNNNNNNNNN)!__name__
__module____qualname___parent_path_str	_path_str_valid_propspropertyr   setterr   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r
   r   r\   rc   __classcell__)re   s   @r!   r   r      s       I  L2     X  _  _   X( \  \ # # X# " " " * * X*& ) ) )     X  _  _ " " X" ! ! ! % % X% $ $ $ " " X"* ! ! ! % % X% $ $ $ ! ! X!"       " " X" ! ! ! %% %% X%%N $ $ $ ( ( X( ' ' '   X \  \     X  _  _   X 
[  [   X ]  ] ! ! X!         X ]  ] ! ! X!         X \  \     X  _  _ g g XgV 1|# |# |# |# |# |# |# |# |# |#r"   r   )plotly.basedatatypesr   _BaseTraceHierarchyTyperi   rh   r   r   r"   r!   <module>r|      se    S R R R R R    K# K# K# K# K#" K# K# K# K# K#r"   