§
    ²[6gÖ$  ã                   óz   — d dl mZmZ d dlmZ  ej        d¦  «        Zd„ Z	 	 	 	 	 	 	 dd„Z G d„ de	¦  «        Z
dS )é    )Ú
exceptionsÚoptional_imports)Ú
graph_objsÚpandasc                 ót   — ddt          | ¦  «        g}t          |¦  «        |vrt          j        d¦  «        ‚dS )zï
    Table-specific validations

    Check that font_colors is supplied correctly (1, 3, or len(text)
        colors).

    :raises: (PlotlyError) If font_colors is supplied incorretly.

    See FigureFactory.create_table() for params
    é   é   z>Oops, font_colors should be a list of length 1, 3 or len(text)N)Úlenr   ÚPlotlyError)Ú
table_textÚfont_colorsÚfont_colors_len_optionss      ú[/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/plotly/figure_factory/_table.pyÚvalidate_tabler      sK   € ð  ! !¥S¨¡_¤_Ð5ÐÝ
ˆ;ÑÔÐ6Ð6Ð6ÝÔ$ØOñ
ô 
ð 	
ð 7Ð6ó    NFÚ çÍÌÌÌÌÌÜ?é   Únonec                 óö  — |�|n
ddgddgddgg}|�|ng d¢}t          | |¦  «         t          | |||||fi |¤Ž                     ¦   «         }	t          | |||||fi |¤Ž                     ¦   «         }
t	          dd	|	d
|d|dœ|¤Ž}|g}t	          |
t          |	¦  «        |z  dz   t	          dddd¬¦  «        t	          ddddddd¬¦  «        t	          dddddd¬¦  «        ¬¦  «        }t          j        ||¬¦  «        S )a†
  
    Function that creates data tables.

    See also the plotly.graph_objects trace
    :class:`plotly.graph_objects.Table`

    :param (pandas.Dataframe | list[list]) text: data for table.
    :param (str|list[list]) colorscale: Colorscale for table where the
        color at value 0 is the header color, .5 is the first table color
        and 1 is the second table color. (Set .5 and 1 to avoid the striped
        table effect). Default=[[0, '#66b2ff'], [.5, '#d9d9d9'],
        [1, '#ffffff']]
    :param (list) font_colors: Color for fonts in table. Can be a single
        color, three colors, or a color for each row in the table.
        Default=['#000000'] (black text for the entire table)
    :param (int) height_constant: Constant multiplied by # of rows to
        create table height. Default=30.
    :param (bool) index: Create (header-colored) index column index from
        Pandas dataframe or list[0] for each list in text. Default=False.
    :param (string) index_title: Title for index column. Default=''.
    :param kwargs: kwargs passed through plotly.graph_objs.Heatmap.
        These kwargs describe other attributes about the annotated Heatmap
        trace such as the colorscale. For more information on valid kwargs
        call help(plotly.graph_objs.Heatmap)

    Example 1: Simple Plotly Table

    >>> from plotly.figure_factory import create_table

    >>> text = [['Country', 'Year', 'Population'],
    ...         ['US', 2000, 282200000],
    ...         ['Canada', 2000, 27790000],
    ...         ['US', 2010, 309000000],
    ...         ['Canada', 2010, 34000000]]

    >>> table = create_table(text)
    >>> table.show()

    Example 2: Table with Custom Coloring

    >>> from plotly.figure_factory import create_table
    >>> text = [['Country', 'Year', 'Population'],
    ...         ['US', 2000, 282200000],
    ...         ['Canada', 2000, 27790000],
    ...         ['US', 2010, 309000000],
    ...         ['Canada', 2010, 34000000]]
    >>> table = create_table(text,
    ...                      colorscale=[[0, '#000000'],
    ...                                  [.5, '#80beff'],
    ...                                  [1, '#cce5ff']],
    ...                      font_colors=['#ffffff', '#000000',
    ...                                 '#000000'])
    >>> table.show()

    Example 3: Simple Plotly Table with Pandas

    >>> from plotly.figure_factory import create_table
    >>> import pandas as pd
    >>> df = pd.read_csv('http://www.stat.ubc.ca/~jenny/notOcto/STAT545A/examples/gapminder/data/gapminderDataFiveYear.txt', sep='	')
    >>> df_p = df[0:25]
    >>> table_simple = create_table(df_p)
    >>> table_simple.show()

    Nr   z#00083eç      à?z#ededeer   ú#ffffff)r   ú#000000r   Úheatmapg      è?F)ÚtypeÚzÚopacityÚ
colorscaleÚ	showscaleÚ	hoverinfoé2   )ÚtÚbÚrÚlÚreversedé   r   )Ú	autorangeÚzerolineÚ	gridwidthÚticksÚdtickÚtick0Úshowticklabelsg      à¿)r)   r*   r+   r,   r-   r.   )ÚannotationsÚheightÚmarginÚyaxisÚxaxis)ÚdataÚlayout© )r   Ú_TableÚget_table_matrixÚmake_table_annotationsÚdictr
   r   ÚFigure)r   r   r   ÚindexÚindex_titleÚannotation_offsetÚheight_constantr    ÚkwargsÚtable_matrixr/   Útracer4   r5   s                 r   Úcreate_tablerC      sÃ  € ð^ Ð!ð 	ˆ
à�)ˆn˜s IÐ.°°I°Ð?ð ð #Ð.ˆˆÐ4UÐ4UÐ4Uð õ �:˜{Ñ+Ô+Ð+ÝØØØØØØðð ð ðð ÷ ÒÑÔð õ ØØØØØØðð ð ðð ÷ ÒÑÔð õ ð ØØ
ØØØØðð ð ðð €Eð ˆ7€DÝØÝ�<Ñ Ô  ?Ñ2°RÑ7Ý�a˜1  QÐ'Ñ'Ô'ÝØ ØØØØØØ ð
ñ 
ô 
õ ØØØØØØ ð
ñ 
ô 
ðñ ô €Fõ, Ô $¨vÐ6Ñ6Ô6Ð6r   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )r7   z<
    Refer to TraceFactory.create_table() for docstring
    c                 ó’  — t           rÔt          |t           j        ¦  «        rº|j                             ¦   «         }|j                             ¦   «         }	|j                             ¦   «         }|                     d|¦  «         |rW|	                     d|¦  «         t          t          |¦  «        ¦  «        D ]$}
||
                              d|	|
         ¦  «         Œ%|| _
        || _        || _        || _        || _        t          t          |d         ¦  «        ¦  «        | _        t          t          |¦  «        ¦  «        | _        d S )Nr   )ÚpdÚ
isinstanceÚ	DataFrameÚcolumnsÚtolistr<   ÚvaluesÚinsertÚranger
   r   r   r   r>   ÚxÚy)Úselfr   r   r   r<   r=   r>   r@   ÚheadersÚtable_text_indexÚis              r   Ú__init__z_Table.__init__¬   s.  € õ ð 	A•*˜Z­¬Ñ6Ô6ð 	AØ Ô(×/Ò/Ñ1Ô1ˆGØ)Ô/×6Ò6Ñ8Ô8ÐØ#Ô*×1Ò1Ñ3Ô3ˆJØ×Ò˜a Ñ)Ô)Ð)Øð AØ ×'Ò'¨¨;Ñ7Ô7Ð7Ý�s :™œÑ/Ô/ð Að A�AØ˜q”M×(Ò(¨Ð,<¸QÔ,?Ñ@Ô@Ð@Ð@Ø$ˆŒØ$ˆŒØ&ˆÔØˆŒ
Ø!2ˆÔÝ•s˜: aœ=Ñ)Ô)Ñ*Ô*ˆŒÝ•s˜:‘”Ñ'Ô'ˆŒˆˆr   c                 óÂ  — dgt          | j        d         ¦  «        z  }dgt          | j        d         ¦  «        z  }dgt          | j        d         ¦  «        z  }dgt          | j        ¦  «        z  }||d<   t          dt          | j        ¦  «        d¦  «        D ]}|||<   Œt          dt          | j        ¦  «        d¦  «        D ]}|||<   Œ| j        r
|D ]}d|d<   Œ|S )zº
        Create z matrix to make heatmap with striped table coloring

        :rtype (list[list]) table_matrix: z matrix to make heatmap with striped
            table coloring.
        r   r   r   Nr'   )r
   r   rM   r<   )rP   ÚheaderÚodd_rowÚeven_rowrA   rS   Úarrays          r   r8   z_Table.get_table_matrixÇ   sþ   € ð �•s˜4œ?¨1Ô-Ñ.Ô.Ñ.ˆØ�%�#˜dœo¨aÔ0Ñ1Ô1Ñ1ˆØ�3�˜Tœ_¨QÔ/Ñ0Ô0Ñ0ˆØ�v¥ D¤OÑ 4Ô 4Ñ4ˆØ ˆ�Q‰Ý�q�#˜dœoÑ.Ô.°Ñ2Ô2ð 	&ð 	&ˆAØ%ˆL˜‰OˆOÝ�q�#˜dœoÑ.Ô.°Ñ2Ô2ð 	'ð 	'ˆAØ&ˆL˜‰OˆOØŒ:ð 	Ø%ð ð �Ø��a‘�ØÐr   c                 óŒ  — t          | j        ¦  «        dk    r| j        t          | j        ¦  «        z  }�nt          | j        ¦  «        dk    r«t          t	          t          | j        ¦  «        ¦  «        ¦  «        }| j        d         |d<   t	          dt          | j        ¦  «        d¦  «        D ]}| j        d         ||<   Œt	          dt          | j        ¦  «        d¦  «        D ]}| j        d         ||<   ŒnJt          | j        ¦  «        t          | j        ¦  «        k    r| j        }ndgt          | j        ¦  «        z  }|S )aP  
        Fill font-color array.

        Table text color can vary by row so this extends a single color or
        creates an array to set a header color and two alternating colors to
        create the striped table pattern.

        :rtype (list[list]) all_font_colors: list of font colors for each row
            in table.
        r   r	   r   r'   r   )r
   r   r   ÚlistrM   )rP   Úall_font_colorsrS   s      r   Úget_table_font_colorz_Table.get_table_font_colorÜ   s9  € õ ˆtÔÑ Ô  AÒ%Ð%Ø"Ô.µ°T´_Ñ1EÔ1EÑEˆO‰OÝ�Ô!Ñ"Ô" aÒ'Ð'Ý"¥5­¨T¬_Ñ)=Ô)=Ñ#>Ô#>Ñ?Ô?ˆOØ!%Ô!1°!Ô!4ˆO˜AÑÝ˜1�c $¤/Ñ2Ô2°AÑ6Ô6ð 9ð 9�Ø%)Ô%5°aÔ%8� Ñ"Ð"Ý˜1�c $¤/Ñ2Ô2°AÑ6Ô6ð 9ð 9�Ø%)Ô%5°aÔ%8� Ñ"Ð"ð9å�Ô!Ñ"Ô"¥c¨$¬/Ñ&:Ô&:Ò:Ð:Ø"Ô.ˆOˆOà(˜k­C°´Ñ,@Ô,@Ñ@ˆOØÐr   c                 óP  — t                                | ¦  «        }t                                | ¦  «        }g }t          | j        ¦  «        D ]Ú\  }}t          |¦  «        D ]Å\  }}|dk    s| j        r|dk     rdt          |¦  «        z   dz   nt          |¦  «        }| j        r|dk    r| j        d         n||         }	|                     t          j
                             || j        |         | j        z
  | j        |         ddddt          |	¬¦  «        d	¬
¦	  «	        ¦  «         ŒÆŒÛ|S )zœ
        Generate annotations to fill in table text

        :rtype (list) annotations: list of annotations for each cell of the
            table.
        r   r   z<b>z</b>Úx1Úy1Úleft)ÚcolorF)	ÚtextrN   rO   ÚxrefÚyrefÚalignÚxanchorÚfontÚ	showarrow)r7   r8   r]   Ú	enumerater   r<   Ústrr   Úappendr   r5   Ú
AnnotationrN   r>   rO   r:   )
rP   rA   r\   r/   ÚnÚrowÚmÚvalÚformat_textÚ
font_colors
             r   r9   z_Table.make_table_annotationsö   sQ  € õ ×.Ò.¨tÑ4Ô4ˆÝ ×5Ò5°dÑ;Ô;ˆØˆÝ ¤Ñ0Ô0ð 	ð 	‰FˆAˆsÝ# C™.œ.ð ð ‘��3ð ˜A’v�v ¤�v°°A²°ð �C ™HœHÑ$ vÑ-Ð-å˜S™œð ð ,0¬:ÐX¸!¸qº&¸&�DÔ$ QÔ'Ð'ÀoÐVWÔFXð ð ×"Ò"ÝÔ%×0Ò0Ø(Øœ& œ) dÔ&<Ñ<Øœ& œ)Ø!Ø!Ø$Ø &Ý!¨
Ð3Ñ3Ô3Ø"'ð 1ñ 
ô 
ñô ð ð ðð0 Ðr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rT   r8   r]   r9   r6   r   r   r7   r7   §   sZ   € € € € € ðð ð(ð (ð (ð6ð ð ð*ð ð ð4#ð #ð #ð #ð #r   r7   )NNFr   r   r   r   )Úplotlyr   r   Úplotly.graph_objsr   Ú
get_modulerF   r   rC   Úobjectr7   r6   r   r   ú<module>r|      s¿   ðØ /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø (Ð (Ð (Ð (Ð (Ð (à ÐÔ  Ñ*Ô*€ð
ð 
ð 
ð( ØØ
ØØØØðK7ð K7ð K7ð K7ð\rð rð rð rð rˆVñ rô rð rð rð rr   