§
    tŠtjé_  ã                  óØ   — d Z ddlmZ ddlmZ ddlmZmZmZm	Z	 ddl
mZ ddlmZ ddlmZmZ ddlmZ dd	lmZmZ dd
lmZ er
ddlmZmZmZ  G d„ d¦  «        Z G d„ de¦  «        ZdS )z,
Module for formatting output data in HTML.
é    )Úannotations)Údedent)ÚTYPE_CHECKINGÚAnyÚFinalÚcast)Ú
get_option)Úlib)Ú
MultiIndexÚoption_context)Úis_url)ÚDataFrameFormatterÚget_level_lengths)Úpprint_thing)ÚHashableÚIterableÚMappingc                  ó`  — e Zd ZU dZdZded<   	 	 	 	 d=d>d„Zd?d„Zd@d„Ze	dAd„¦   «         Z
e	dAd„¦   «         Ze	dAd„¦   «         Ze	dBd„¦   «         ZdCd„Ze	dAd„¦   «         Ze	dBd „¦   «         ZdDdEd%„Z	 dFdGd(„ZdHdId)„Z	 dJdKd,„Z	 	 	 	 	 	 dLdMd1„ZdDdNd2„ZdNd3„ZdNd4„ZdNd5„ZdOd7„ZdNd8„ZdPd;„ZdPd<„ZdS )QÚHTMLFormatterac  
    Internal class for formatting output data in html.
    This class is intended for shared functionality between
    DataFrame.to_html() and DataFrame._repr_html_().
    Any logic in common with other output formatting methods
    should ideally be inherited from classes in format.py
    and this class responsible for only producing html markup.
    é   r   Úindent_deltaNFÚ	formatterr   Úclassesú(str | list[str] | tuple[str, ...] | NoneÚborderúint | bool | NoneÚtable_idú
str | NoneÚrender_linksÚboolÚreturnÚNonec                ó¤  — || _         || _        | j         j        | _        | j         j        j        | _        g | _        | j         j        | _        | j         j        | _        | j         j        | _        |�|du r#t          t          t          d¦  «        ¦  «        }n|sd }|| _        || _        || _        i | _        t!          | j        t"          ¦  «        }| j         j                             ¦   «         D ]^\  }}t!          |t          ¦  «        r|› d�n|}	|	| j        |<   |r1t!          |t&          ¦  «        r|D ]}
|	| j        t)          |
¦  «        <   ŒŒ_d S )NTzdisplay.html.borderÚpx)Úfmtr   ÚframeÚtr_frameÚcolumnsÚelementsÚ	bold_rowsÚescapeÚshow_dimensionsr   Úintr	   r   r   r   Ú	col_spaceÚ
isinstancer   ÚitemsÚtupleÚstr)Úselfr   r   r   r   r   Úis_multi_indexÚcolumnÚvalueÚcol_space_valueÚcolumn_indexs              úT/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/io/formats/html.pyÚ__init__zHTMLFormatter.__init__3   s[  € ð ˆŒØˆŒà”X”^ˆŒ
Ø”xÔ(Ô0ˆŒØ#%ˆŒØœÔ+ˆŒØ”h”oˆŒØ#œxÔ7ˆÔØˆ>˜V t˜^˜^Ý�#�zÐ*?Ñ@Ô@ÑAÔAˆFˆFØð 	ØˆFàˆŒØ ˆŒØ(ˆÔàˆŒÝ# D¤Lµ*Ñ=Ô=ˆØ!œXÔ/×5Ò5Ñ7Ô7ð 	Hð 	H‰MˆF�EÝ.8¸ÅÑ.DÔ.DÐO ˜l˜l˜l˜lÈ%ˆOØ%4ˆDŒN˜6Ñ"ð ð H¥*¨VµUÑ";Ô";ð HØ$*ð Hð H�LØ8G�D”N¥3 |Ñ#4Ô#4Ñ5Ð5øð	Hð 	Hó    r2   c                óž   — |                       ¦   «         }t          d„ |D ¦   «         ¦  «        rd„ |D ¦   «         }d                     |¦  «        S )Nc              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S ©N)r/   r2   ©Ú.0Úxs     r9   ú	<genexpr>z*HTMLFormatter.to_string.<locals>.<genexpr>Z   s,   è è € Ð1Ð1 a�z˜!�SÑ!Ô!Ð1Ð1Ð1Ð1Ð1Ð1r;   c                ó,   — g | ]}t          |¦  «        ‘ŒS © )r2   r?   s     r9   ú
<listcomp>z+HTMLFormatter.to_string.<locals>.<listcomp>[   s   € Ð+Ð+Ð+ •S˜‘V”VÐ+Ð+Ð+r;   ú
)ÚrenderÚanyÚjoin)r3   Úliness     r9   Ú	to_stringzHTMLFormatter.to_stringX   sS   € Ø—’‘”ˆÝÐ1Ð1¨5Ð1Ñ1Ô1Ñ1Ô1ð 	,Ø+Ð+ UÐ+Ñ+Ô+ˆEØ�yŠy˜ÑÔÐr;   ú	list[str]c           
     óô   — |                       ¦   «          | j        rWt          d¦  «        }|                      dt	          | j        ¦  «        › d|› dt	          | j        j        ¦  «        › d�¦  «         | j        S )Né×   z<p>z rows ú z columns</p>)Ú_write_tableÚshould_show_dimensionsÚchrÚwriteÚlenr&   r(   r)   )r3   Úbys     r9   rG   zHTMLFormatter.render^   s}   € Ø×ÒÑÔÐàÔ&ð 	Ý�S‘”ˆBØ�JŠJØW•c˜$œ*‘o”oÐWÐW¨RÐWÐWµ#°d´jÔ6HÑ2IÔ2IÐWÐWÐWñô ð ð Œ}Ðr;   c                ó   — | j         j        S r>   )r%   rQ   ©r3   s    r9   rQ   z$HTMLFormatter.should_show_dimensionsi   s   € àŒxÔ.Ð.r;   c                ó   — | j         j        S r>   )r%   Úshow_row_idx_namesrW   s    r9   rY   z HTMLFormatter.show_row_idx_namesm   ó   € àŒxÔ*Ð*r;   c                ó   — | j         j        S r>   )r%   Úshow_col_idx_namesrW   s    r9   r\   z HTMLFormatter.show_col_idx_namesq   rZ   r;   r-   c                óR   — | j         j        r| j        j        j        S | j        rdS dS )Né   r   )r%   Úindexr&   Únlevelsr\   rW   s    r9   Ú
row_levelszHTMLFormatter.row_levelsu   s3   € àŒ8Œ>ð 		à”:Ô#Ô+Ð+ØÔ$ð 	ð �1àˆqr;   r   c                ó   — | j         S r>   )r(   rW   s    r9   Ú_get_columns_formatted_valuesz+HTMLFormatter._get_columns_formatted_values„   s
   € ØŒ|Ðr;   c                ó   — | j         j        S r>   )r%   Úis_truncatedrW   s    r9   re   zHTMLFormatter.is_truncated‡   s   € àŒxÔ$Ð$r;   c                ó>   — t          | j        j        j        ¦  «        S r>   )rT   r%   r'   r(   rW   s    r9   ÚncolszHTMLFormatter.ncols‹   s   € å�4”8Ô$Ô,Ñ-Ô-Ð-r;   r   Úsr   Úindentc                ód   — t          |¦  «        }| j                             d|z  |z   ¦  «         d S )NrO   )r   r)   Úappend)r3   rh   ri   Úrss       r9   rS   zHTMLFormatter.write�   s2   € Ý˜!‰_Œ_ˆØŒ×Ò˜S 6™\¨BÑ.Ñ/Ô/Ð/Ð/Ð/r;   ÚheaderÚtagsc                ó�   — | j                              |d¦  «        }|r|�|pd}|d|› d�z  }|                      |d||¬¦  «         dS )aŠ  
        Method for writing a formatted <th> cell.

        If col_space is set on the formatter then that is used for
        the value of min-width.

        Parameters
        ----------
        s : object
            The data to be written inside the cell.
        header : bool, default False
            Set to True if the <th> is for use inside <thead>.  This will
            cause min-width to be set if there is one.
        indent : int, default 0
            The indentation level of the cell.
        tags : str, default None
            Tags to include in the cell.

        Returns
        -------
        A written <th> cell.
        NÚ zstyle="min-width: z;"Úth©Úkindri   rn   )r.   ÚgetÚ_write_cell)r3   rh   rm   ri   rn   r.   s         r9   Úwrite_thzHTMLFormatter.write_th“   sj   € ð2 ”N×&Ò& q¨$Ñ/Ô/ˆ	àð 	7�iÐ+Ø�:˜2ˆDØÐ6¨Ð6Ð6Ð6Ñ6ˆDà×Ò˜ ¨f¸4ÐÑ@Ô@Ð@Ð@Ð@r;   c                ó8   — |                       |d||¬¦  «         d S )NÚtdrr   )ru   )r3   rh   ri   rn   s       r9   Úwrite_tdzHTMLFormatter.write_td´   s%   € Ø×Ò˜ ¨f¸4ÐÑ@Ô@Ð@Ð@Ð@r;   rx   rs   c                óŠ  — |�
d|› d|› d�}nd|› d�}| j         rddddœ}ni }t          ||¬¦  «                             ¦   «         }|                     d	d
¦  «        }| j        r>t          |¦  «        r/t          |i ¬¦  «                             ¦   «         }|d|› d�z  }d}	nd}	|                      |› |› |	› d|› d�|¦  «         d S )Nú<rO   ú>z&amp;z&lt;z&gt;)ú&r{   r|   )Úescape_charsz  z&nbsp;&nbsp;z	<a href="z" target="_blank">z</a>rp   z</)r+   r   ÚstripÚreplacer   r   rS   )
r3   rh   rs   ri   rn   Ú	start_tagÚescrl   Úrs_unescapedÚend_as
             r9   ru   zHTMLFormatter._write_cell·   s  € ð ÐØ*˜DÐ*Ð* 4Ð*Ð*Ð*ˆIˆIà#˜D˜˜˜ˆIàŒ;ð 	à  w°WÐ=Ð=ˆCˆCàˆCå˜!¨#Ð.Ñ.Ô.×4Ò4Ñ6Ô6ˆà�ZŠZ˜˜nÑ-Ô-ˆàÔð 	¥¨¡¤ð 	Ý'¨¸Ð;Ñ;Ô;×AÒAÑCÔCˆLØÐE \ÐEÐEÐEÑEˆIØˆEˆEàˆEà�
Š
�iÐ5 Ð5 UÐ5Ð5¨dÐ5Ð5Ð5°vÑ>Ô>Ð>Ð>Ð>r;   ÚlineÚalignúdict[int, str] | NoneÚnindex_levelsc                óŒ  — |€i }|€|                       d|¦  «         n|                       d|› d�|¦  «         ||z  }t          |¦  «        D ]\\  }}	|                     |d ¦  «        }
|s| j        r ||k     r|                      |	|||
¬¦  «         ŒD|                      |	||
¬¦  «         Œ]||z  }|                       d|¦  «         d S )Nz<tr>z<tr style="text-align: z;">)ri   rm   rn   )rn   z</tr>)rS   Ú	enumeratert   r*   rv   ry   )r3   r…   ri   r   rm   r†   rn   rˆ   Úirh   Úval_tags              r9   Úwrite_trzHTMLFormatter.write_trÒ   s÷   € ð ˆ<ØˆDàˆ=Ø�JŠJ�v˜vÑ&Ô&Ð&Ð&à�JŠJÐ;°Ð;Ð;Ð;¸VÑDÔDÐDØ�,Ñˆå˜d‘O”Oð 	7ð 	7‰DˆAˆqØ—h’h˜q $Ñ'Ô'ˆGØð 7˜$œ.ð 7¨Q°Ò->Ð->Ø—’˜a¨°vÀG�ÑLÔLÐLÐLà—’˜a ¨g�Ñ6Ô6Ð6Ð6à�,ÑˆØ�
Š
�7˜FÑ#Ô#Ð#Ð#Ð#r;   c           	     ó>  — dg}t          d¦  «        }|s*|                     d¦  «         |                     d¦  «         | j        �—t          | j        t          ¦  «        r| j                             ¦   «         | _        t          | j        t          t          f¦  «        s$t          dt          | j        ¦  «        › �¦  «        ‚| 
                    | j        ¦  «         | j        €d}nd| j        › d�}| j        €d}nd	| j        › d�}|                      d
|› dd                     |¦  «        › d|› d�|¦  «         | j        j        s| j        r|                      || j        z   ¦  «         |                      || j        z   ¦  «         |                      d|¦  «         d S )NÚ	dataframezdisplay.html.use_mathjaxÚtex2jax_ignoreÚmathjax_ignorez.classes must be a string, list, or tuple, not rp   z id="ú"z	 border="z<tablez class="rO   r|   z</table>)r	   rk   r   r/   r2   ÚsplitÚlistr1   Ú	TypeErrorÚtypeÚextendr   r   rS   rI   r%   rm   rY   Ú_write_headerr   Ú_write_body)r3   ri   Ú_classesÚuse_mathjaxÚ
id_sectionÚborder_attrs         r9   rP   zHTMLFormatter._write_tableï   sÁ  € Ø�=ˆÝ Ð!;Ñ<Ô<ˆØð 	.Ø�OŠOÐ,Ñ-Ô-Ð-Ø�OŠOÐ,Ñ-Ô-Ð-ØŒ<Ð#Ý˜$œ,­Ñ,Ô,ð 4Ø#œ|×1Ò1Ñ3Ô3�”Ý˜dœl­Tµ5¨MÑ:Ô:ð Ýð:Ý%)¨$¬,Ñ%7Ô%7ð:ð :ñô ð ð �OŠO˜DœLÑ)Ô)Ð)àŒ=Ð ØˆJˆJà1 ¤Ð1Ð1Ð1ˆJàŒ;ÐØˆKˆKà4 d¤kÐ4Ð4Ð4ˆKà�
Š
ØL�[ÐLÐL¨#¯(ª(°8Ñ*<Ô*<ÐLÐL¸zÐLÐLÐLØñ	
ô 	
ð 	
ð
 Œ8Œ?ð 	;˜dÔ5ð 	;Ø×Ò˜v¨Ô(9Ñ9Ñ:Ô:Ð:à×Ò˜ $Ô"3Ñ3Ñ4Ô4Ð4à�
Š
�:˜vÑ&Ô&Ð&Ð&Ð&r;   c                óÖ  — | j         j        }t          | j        t          ¦  «        �rßd}| j         j        rt          j        }nd}| j                             |d¬¦  «        }t          ||¦  «        }t          |¦  «        dz
  }t          t          ||d¬¦  «        ¦  «        D �]a\  }\  }	}
|�rL| j         j        }| j         j        rØi }t          |	                     ¦   «         ¦  «        D ]”\  }}||k    r	|||dz   <   nY||z   |k    rK|dz   ||<   ||k    rg |
d |…         ¢d‘|
|d …         ¢R }
n(g |
d |…         ¢|
|dz
           ‘|
|d …         ¢R }
n|||<   ||z   |k    rd||<   g |
d |…         ¢d‘|
|d …         ¢R }
Œ•|}	t          |¦  «        dz
  }||k    rd|	|<   n\i }t          |	                     ¦   «         ¦  «        D ]\  }}||k    r	|||dz   <   Œ|||<   Œd||<   |}	g |
d |…         ¢d‘|
|d …         ¢}
dg| j        dz
  z  }| j         j        s| j        rX| j         j        r7| j        j        |         }|                     t-          |pd¦  «        ¦  «         n|                     d¦  «         i }t          |¦  «        }t          |
¦  «        D ]P\  }}||	v r,|	|         dk    r|                     |	|         ¬	¦  «        ||<   nŒ6|dz  }|                     |¦  «         ŒQ|                      ||| j        |d¬
¦  «         �Œcd S dg| j        dz
  z  }| j         j        s| j        rC| j         j        r"|                     | j        j        pd¦  «         n|                     d¦  «         |                     |                      ¦   «         ¦  «         | j         j        }|r*| j        | j         j        z   }|                     |d¦  «         |                      ||| j        d|¬¦  «         d S )Nz colspan="{span:d}" halign="left"F©ÚsparsifyÚinclude_namesr^   T©Ústrictú...rp   ©Úspan)rn   rm   )rm   r†   )r%   Úis_truncated_horizontallyr/   r(   r   r    r
   Ú
no_defaultÚ_format_multir   rT   rŠ   ÚzipÚ
tr_col_numr”   r0   ra   r_   r\   Úshow_index_namesÚnamesrk   r   Úformatr�   r   Únamer—   rc   ÚjustifyÚinsert)r3   ri   r§   ÚtemplateÚsentinelÚlevelsÚlevel_lengthsÚ	inner_lvlÚlnumÚrecordsÚvaluesÚins_colÚrecs_newÚtagr¦   Úrowr¯   rn   Újr‹   Úvr†   s                         r9   Ú_write_col_headerzHTMLFormatter._write_col_header  sÌ  € à$(¤HÔ$FÐ!Ý�d”l¥JÑ/Ô/ñ v	TØ9ˆHð ŒxÔ ð !åœ>��à �Ø”\×/Ò/¸ÐQVÐ/ÑWÔWˆFÝ-¨f°hÑ?Ô?ˆMÝ˜MÑ*Ô*¨QÑ.ˆIÝ+4Ý�M 6°$Ð7Ñ7Ô7ñ,ô ,ð PVñ PVÑ'�Ñ'�w ð -ñ ,Oà"œhÔ1�GØ”xÔ(ð )OØ#%˜å)-¨g¯mªm©o¬oÑ)>Ô)>ð Wð W™I˜C Ø" gš~˜~Ø48 ¨¨q©Ñ 1Ð 1Ø!$ t¡¨gÒ!5Ð!5Ø04°q± ¨¡Ø#'¨9Ò#4Ð#4ð.&Ø)/°°°Ô)9ð.&à(-ð.&ð *0°°°Ô)9ð.&ð .& F Fð.&Ø)/°°°Ô)9ð.&à(.¨w¸©{Ô(;ð.&ð *0°°°Ô)9ð.&ð .& F Fð 15 ¨¡ð  # T™z¨WÒ4Ð4Ø45 ¨Ñ 1Ø)V¨6°(°7°(Ô+;Ð)V¸UÐ)VÀVÈGÈHÈHÔEUÐ)VÐ)V øØ"*˜Ý$'¨Ñ$6Ô$6¸Ñ$:˜	Ø 9Ò,Ð,Ø/0˜G GÑ,øà#%˜Ý)-¨g¯mªm©o¬oÑ)>Ô)>ð 5ð 5™I˜C Ø" gš~˜~Ø48 ¨¨q©Ñ 1Ð 1à04 ¨¡ Ø,-˜ Ñ)Ø"*˜Ø!N 6¨(¨7¨(Ô#3Ð!N°UÐ!N¸VÀGÀHÀHÔ=MÐ!N˜ð �d˜dœo°Ñ1Ñ2�Ø”8”>ð ' TÔ%<ð 'ð ”xÔ0ð 'Ø#œ|Ô1°$Ô7˜ØŸ
š
¥<°°
¸Ñ#;Ô#;Ñ<Ô<Ð<Ð<àŸ
š
 2™œ˜à�Ý˜‘H”H�Ý% fÑ-Ô-ð "ð "‘D�A�qØ˜G�|�|Ø" 1œ:¨š>˜>Ø&.§o¢o¸7À1¼: oÑ&FÔ&F˜D ™Gøà Ø˜‘F�AØ—J’J˜q‘M”M�M�MØ—’˜c 6¨4Ô+<À4ÐPT�ÑUÔUÐUÑUðaPVð PVðp �$˜$œ/¨AÑ-Ñ.ˆCØŒxŒ~ð 	# Ô!8ð 	#ð ”8Ô,ð #Ø—J’J˜tœ|Ô0Ð6°BÑ7Ô7Ð7Ð7à—J’J˜r‘N”N�NØ�JŠJ�t×9Ò9Ñ;Ô;Ñ<Ô<Ð<Ø”HÔ$ˆEà(ð +Øœ/¨D¬HÔ,?Ñ?�Ø—
’
˜7 EÑ*Ô*Ð*à�MŠM˜#˜v tÔ'8ÀÈUˆMÑSÔSÐSÐSÐSr;   c                ó¶   — | j         j        }d„ | j        j        j        D ¦   «         dg| j        |rdndz   z  z   }|                      ||| j        d¬¦  «         d S )Nc                ó   — g | ]}|�|nd‘Œ	S )Nrp   rD   r?   s     r9   rE   z3HTMLFormatter._write_row_header.<locals>.<listcomp>’  s    € ÐJÐJÐJ¨a�A�Mˆqˆq rÐJÐJÐJr;   rp   r^   r   T)rm   )r%   r§   r&   r_   r­   rg   r�   r   )r3   ri   r§   r½   s       r9   Ú_write_row_headerzHTMLFormatter._write_row_header�  sp   € Ø$(¤HÔ$FÐ!ØJÐJ°4´:Ô3CÔ3IÐJÑJÔJÈbÈTØŒJÐ8Ð?˜!˜!¸aÑ@ñN
ñ 
ˆð 	�Š�c˜6 4Ô#4¸TˆÑBÔBÐBÐBÐBr;   c                óø   — |                       d|¦  «         | j        j        r|                      || j        z   ¦  «         | j        r|                      || j        z   ¦  «         |                       d|¦  «         d S )Nz<thead>z</thead>)rS   r%   rm   rÀ   r   rY   rÃ   )r3   ri   s     r9   r˜   zHTMLFormatter._write_header—  s   € Ø�
Š
�9˜fÑ%Ô%Ð%àŒ8Œ?ð 	?Ø×"Ò" 6¨DÔ,=Ñ#=Ñ>Ô>Ð>àÔ"ð 	?Ø×"Ò" 6¨DÔ,=Ñ#=Ñ>Ô>Ð>à�
Š
�:˜vÑ&Ô&Ð&Ð&Ð&r;   údict[int, list[str]]c                ó˜   ‡ — t          dd ¦  «        5  ˆ fd„t          ‰ j        ¦  «        D ¦   «         }d d d ¦  «         n# 1 swxY w Y   |S )Nzdisplay.max_colwidthc                óF   •— i | ]}|‰j                              |¦  «        “ŒS rD   ©r%   Ú
format_col©r@   r‹   r3   s     €r9   ú
<dictcomp>z7HTMLFormatter._get_formatted_values.<locals>.<dictcomp>¤  s+   ø€ ÐOÐOÐO¸˜!˜TœX×0Ò0°Ñ3Ô3ÐOÐOÐOr;   )r   Úrangerg   )r3   Ú
fmt_valuess   ` r9   Ú_get_formatted_valuesz#HTMLFormatter._get_formatted_values¢  s£   ø€ ÝÐ2°DÑ9Ô9ð 	Pð 	PØOÐOÐOÐO½UÀ4Ä:Ñ=NÔ=NÐOÑOÔOˆJð	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	PàÐs   ’!?¿AÁAc                óV  — |                       d|¦  «         |                      ¦   «         }| j        j        r>t	          | j        j        t          ¦  «        r|                      ||| j        z   ¦  «         n|  	                    ||| j        z   ¦  «         |                       d|¦  «         d S )Nz<tbody>z</tbody>)
rS   rÎ   r%   r_   r/   r&   r   Ú_write_hierarchical_rowsr   Ú_write_regular_rows)r3   ri   rÍ   s      r9   r™   zHTMLFormatter._write_body§  s¦   € Ø�
Š
�9˜fÑ%Ô%Ð%Ø×/Ò/Ñ1Ô1ˆ
ð Œ8Œ>ð 	M�j¨¬Ô)9½:ÑFÔFð 	MØ×)Ò)¨*°f¸tÔ?PÑ6PÑQÔQÐQÐQà×$Ò$ Z°¸$Ô:KÑ1KÑLÔLÐLà�
Š
�:˜vÑ&Ô&Ð&Ð&Ð&r;   rÍ   úMapping[int, list[str]]c                ó¢  ‡‡— | j         j        }| j         j        }t          | j         j        ¦  «        }| j         j        rf| j                              d¦  «        }|�%| j         j        j                             |¦  «        }n%| j         j        j                             d¬¦  «        }g }t          |¦  «        D �]Š|rG‰| j         j
        k    r7dgt          |¦  «        z  }	|                      |	|| j        d | j        ¬¦  «         g }| j         j        r|                     |‰         ¦  «         n| j        r|                     d¦  «         |                     ˆˆfd„t          | j        ¦  «        D ¦   «         ¦  «         |r*| j         j        | j        z   }
|                     |
d¦  «         |                      ||| j        d | j        ¬¦  «         �Œd S )NÚ	__index__F©Úinclude_namer¤   ©rn   rˆ   rp   c              3  ó4   •K  — | ]}‰|         ‰         V — Œd S r>   rD   ©r@   r¾   rÍ   r‹   s     €€r9   rB   z4HTMLFormatter._write_regular_rows.<locals>.<genexpr>Ø  s,   øè è € ÐCÐC¨A�z !”} QÔ'ÐCÐCÐCÐCÐCÐCr;   )r%   r§   Úis_truncated_verticallyrT   r'   r_   Ú_get_formatterÚmapÚ_format_flatrÌ   Ú
tr_row_numr�   r   ra   rk   r\   r—   rg   r«   r±   )r3   rÍ   ri   r§   rÚ   Únrowsr%   Úindex_valuesr½   Ústr_sep_rowÚ
dot_col_ixr‹   s    `         @r9   rÑ   z!HTMLFormatter._write_regular_rows³  sè  øø€ ð %)¤HÔ$FÐ!Ø"&¤(Ô"BÐå�D”HÔ%Ñ&Ô&ˆàŒ8Œ>ð 	XØ”(×)Ò)¨+Ñ6Ô6ˆCØˆØ#œxÔ0Ô6×:Ò:¸3Ñ?Ô?��ð  $œxÔ0Ô6×CÒCÐQVÐCÑWÔW�àˆÝ�u‘”ð 	ñ 	ˆAØ&ð ¨1°´Ô1DÒ+EÐ+EØ$˜g­¨C©¬Ñ0�Ø—’ØØØÔ%ØØ"&¤/ð ñ ô ð ð ˆCØŒxŒ~ð Ø—
’
˜<¨œ?Ñ+Ô+Ð+Ð+ð
 Ô(ð Ø—
’
˜2‘”�Ø�JŠJÐCÐCÐCÐCÐCµ°t´zÑ1BÔ1BÐCÑCÔCÑCÔCÐCà(ð .Ø!œXÔ0°4´?ÑB�
Ø—
’
˜: uÑ-Ô-Ð-Ø�MŠMØ�V˜TÔ.°TÈÌð ñ ô ð ñ ð3	ð 	r;   c                ó¼	  ‡‡— d}| j         j        }| j         j        }| j         j        }t	          |¦  «        }t          |j        t          ¦  «        sJ ‚|j                             dd¬¦  «        }t          t          |ddiŽ¦  «        }| j         j        �rt          j        }	|j                             |	d¬¦  «        }
t          |
|	¦  «        }t	          |¦  «        dz
  }|�rš| j         j        }d}t!          |¦  «        D �]J\  }}i }t          |                     ¦   «         ¦  «        D �]\  }}||k    r	|||dz   <   n‹||z   |k    r}|dz   ||<   |sCt          ||dz
           ¦  «        }d|d<   |                     |t'          |¦  «        ¦  «         d}n5t          ||         ¦  «        }d|||z
  <   t'          |¦  «        ||<   n|||<   ||z   |k    rqd||<   |d	k    r5|                     |t'          dgt	          |¦  «        z  ¦  «        ¦  «         Œé|r/t          ||         ¦  «        }d|||z
  <   t'          |¦  «        ||<   �Œ|||<   �ŒLd||         |<   ‰D ]}‰|                              |d¦  «         Œ|dz  }t)          |¦  «        D �]	Šg }i }d	}d	}t          ||‰         d¬
¦  «        D ]U\  }}‰|v r,|‰         dk    r|                     |‰         ¬¦  «        ||<   n|dz  }Œ;|dz  }|                     |¦  «         ŒV|                     ˆˆfd„t)          | j        ¦  «        D ¦   «         ¦  «         |r+|                     | j        |z
  | j         j        z   d¦  «         |                      ||| j        |t	          |
¦  «        |z
  ¬¦  «         �Œd S g }t)          t	          |¦  «        ¦  «        D �]#Š|rG‰| j         j        k    r7dgt	          |¦  «        z  }|                      ||| j        d | j        ¬¦  «         t          t          |j                             dd¬¦  «        ddiŽ¦  «        }g }|                     |‰         ¦  «         |                     ˆˆfd„t)          | j        ¦  «        D ¦   «         ¦  «         |r(|                     | j        | j         j        z   d¦  «         |                      ||| j        d |j        j        ¬¦  «         �Œ%d S )Nzrowspan="{span}" valign="top"FrŸ   r£   Tr^   r¤   éÿÿÿÿr   r¢   r¥   c              3  ó4   •K  — | ]}‰|         ‰         V — Œd S r>   rD   rÙ   s     €€r9   rB   z9HTMLFormatter._write_hierarchical_rows.<locals>.<genexpr>5  ó,   øè è € ÐGÐG°˜: aœ=¨Ô+ÐGÐGÐGÐGÐGÐGr;   r×   c              3  ó4   •K  — | ]}‰|         ‰         V — Œd S r>   rD   rÙ   s     €€r9   rB   z9HTMLFormatter._write_hierarchical_rows.<locals>.<genexpr>V  ræ   r;   )r%   r§   rÚ   r'   rT   r/   r_   r   r©   r”   rª   r    r
   r¨   r   rÞ   rŠ   r0   r±   r1   rÌ   r®   rk   r—   rg   ra   r«   r�   r   r`   )r3   rÍ   ri   r²   r§   rÚ   r&   rß   Ú
idx_valuesr³   r´   rµ   r¶   Úins_rowÚinsertedr·   r¸   Úrec_newr¼   r¦   Údot_rowÚix_colr½   rn   Úsparse_offsetr¾   r¿   rá   r‹   s    `                          @r9   rÐ   z&HTMLFormatter._write_hierarchical_rowsá  s¬  øø€ ð 3ˆà$(¤HÔ$FÐ!Ø"&¤(Ô"BÐØ”Ô!ˆÝ�E‘
”
ˆå˜%œ+¥zÑ2Ô2Ð2Ð2Ð2Ø”[×.Ò.¸ÈUÐ.ÑSÔSˆ
Ý�#˜zÐ7°$Ð7Ð7Ñ8Ô8ˆ
àŒ8Ôñ p	å”~ˆHØ”[×.Ò.¸ÐPUÐ.ÑVÔVˆFå-¨f°hÑ?Ô?ˆMÝ˜MÑ*Ô*¨QÑ.ˆIØ&ñ ,ð œ(Ô-�Ø �Ý%.¨}Ñ%=Ô%=ð "2ñ "2‘M�D˜'Ø �GÝ%)¨'¯-ª-©/¬/Ñ%:Ô%:ð Eñ E™	˜˜TØ 'š>˜>Ø/3˜G C¨!¡GÑ,Ð,Ø  4™Z¨'Ò1Ð1Ø+/°!©8˜G C™Lð $,ð EÝ*.¨z¸'ÀA¹+Ô/FÑ*GÔ*G Ø.3 ¨¡Ø *× 1Ò 1°'½5À¹>¼>Ñ JÔ JÐ JØ+/  å*.¨z¸'Ô/BÑ*CÔ*C Ø<A ¨	°DÑ(8Ñ 9Ý6;¸G±n´n 
¨7Ñ 3Ð 3à+/˜G C™Lð  ™:¨Ò0Ð0Ø/0˜G GÑ,Ø# qšy˜yØ *× 1Ò 1Ø$+­U°E°7½SÀÑ=OÔ=OÑ3OÑ-PÔ-Pñ!"ô !"ð !"ð !"ð
 "*ð EÝ*.¨z¸'Ô/BÑ*CÔ*C Ø<A ¨	°DÑ(8Ñ 9Ý6;¸G±n´n 
¨7Ñ 3ùØ*1�M $Ñ'Ñ'à45�˜iÔ(¨Ñ1Ø(ð >ð >�FØ˜vÔ&×-Ò-¨g°uÑ=Ô=Ð=Ð=Ø˜‘
�å˜5‘\”\ð ñ �Ø�Ø�à !�Ø�Ý"% m°ZÀ´]È4Ð"PÑ"PÔ"Pð 	"ð 	"‘J�G˜QØ˜G�|�|Ø" 1œ:¨š>˜>Ø&.§o¢o¸7À1¼: oÑ&FÔ&F˜D ™Gøà%¨Ñ*˜Ø à˜‘F�AØ—J’J˜q‘M”M�M�Mà—
’
ÐGÐGÐGÐGÐGµU¸4¼:Ñ5FÔ5FÐGÑGÔGÑGÔGÐGØ,ð Ø—J’JØœ¨-Ñ7¸$¼(Ô:MÑMÈuñô ð ð —’ØØØÔ%ØÝ"% f¡+¤+°Ñ"=ð ñ ô ð ñ ð-ð ð< ˆCÝ�3˜u™:œ:Ñ&Ô&ð ñ �Ø*ð ¨q°T´XÔ5HÒ/IÐ/IØ#( '­C°©H¬HÑ"4�KØ—M’MØ#ØØÔ)Ø!Ø&*¤oð "ñ ô ð õ "ÝØœ×2Ò2¸EÐQVÐ2ÑWÔWðà#ðð ñô �
ð �Ø—
’
˜: aœ=Ñ)Ô)Ð)Ø—
’
ÐGÐGÐGÐGÐGµU¸4¼:Ñ5FÔ5FÐGÑGÔGÑGÔGÐGØ,ð MØ—J’J˜tœ°´Ô1DÑDÀeÑLÔLÐLØ—’ØØØÔ%ØØ"'¤+Ô"5ð ñ ô ð ñ ð-ð r;   )NNNF)r   r   r   r   r   r   r   r   r   r    r!   r"   )r!   r2   ©r!   rL   )r!   r    )r!   r-   )r!   r   )r   )rh   r   ri   r-   r!   r"   )Fr   N)
rh   r   rm   r    ri   r-   rn   r   r!   r"   )r   N)rh   r   ri   r-   rn   r   r!   r"   )rx   r   N)
rh   r   rs   r2   ri   r-   rn   r   r!   r"   )r   r   FNNr   )r…   r   ri   r-   r   r-   rm   r    r†   r   rn   r‡   rˆ   r-   r!   r"   )ri   r-   r!   r"   ©r!   rÅ   )rÍ   rÒ   ri   r-   r!   r"   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r:   rK   rG   ÚpropertyrQ   rY   r\   ra   rc   re   rg   rS   rv   ry   ru   r�   rP   rÀ   rÃ   r˜   rÎ   r™   rÑ   rÐ   rD   r;   r9   r   r   '   sÁ  € € € € € € ðð ð €LÐÐÐÑð
 =AØ$(Ø#Ø"ð#Hð #Hð #Hð #Hð #HðJ ð  ð  ð  ð	ð 	ð 	ð 	ð ð/ð /ð /ñ „Xð/ð ð+ð +ð +ñ „Xð+ð ð+ð +ð +ñ „Xð+ð ðð ð ñ „Xððð ð ð ð ð%ð %ð %ñ „Xð%ð ð.ð .ð .ñ „Xð.ð0ð 0ð 0ð 0ð 0ð
 QUðAð Að Að Að AðBAð Að Að Að Að MQð?ð ?ð ?ð ?ð ?ð< ØØØ Ø&*Øð$ð $ð $ð $ð $ð:$'ð $'ð $'ð $'ð $'ðLyTð yTð yTð yTðvCð Cð Cð Cð	'ð 	'ð 	'ð 	'ðð ð ð ð

'ð 
'ð 
'ð 
'ð,ð ,ð ,ð ,ð\~ð ~ð ~ð ~ð ~ð ~r;   r   c                  ó<   ‡ — e Zd ZdZd
d„Zdd„Zdd„Zdˆ fd	„Zˆ xZS )ÚNotebookFormatterz×
    Internal class for formatting output data in html for display in Jupyter
    Notebooks. This class is intended for functionality specific to
    DataFrame._repr_html_() and DataFrame.to_html(notebook=True)
    r!   rÅ   c                óD   ‡ — ˆ fd„t          ‰ j        ¦  «        D ¦   «         S )Nc                óF   •— i | ]}|‰j                              |¦  «        “ŒS rD   rÈ   rÊ   s     €r9   rË   z;NotebookFormatter._get_formatted_values.<locals>.<dictcomp>j  s+   ø€ ÐEÐEÐE¨a��4”8×&Ò& qÑ)Ô)ÐEÐEÐEr;   )rÌ   rg   rW   s   `r9   rÎ   z'NotebookFormatter._get_formatted_valuesi  s'   ø€ ØEÐEÐEÐEµ5¸¼Ñ3DÔ3DÐEÑEÔEÐEr;   rL   c                ó8   — | j                              d¬¦  «        S )NFrÕ   )r(   rÝ   rW   s    r9   rc   z/NotebookFormatter._get_columns_formatted_valuesl  s   € àŒ|×(Ò(°eÐ(Ñ<Ô<Ð<r;   r"   c                óx  ‡— d}d}dŠddg}t          | j        t          ¦  «        r2|                     d¦  «         | j        r|                     d¦  «         n|                     d¦  «         d	                     ˆfd
„|D ¦   «         ¦  «        }t          |› d|› d|› �¦  «        }|                      |¦  «         d S )Nz            <style scoped>z            </style>zM                .dataframe %s {
                    %s: %s;
                })ztbody tr th:only-of-typeúvertical-alignÚmiddle)ztbody tr thrý   Útop)zthead tr thú
text-alignÚleft)zthead tr:last-of-type thr   Úright)zthead thr   r  z

c              3  ó"   •K  — | ]	}‰|z  V — Œ
d S r>   rD   )r@   ÚtÚtemplate_selects     €r9   rB   z0NotebookFormatter.write_style.<locals>.<genexpr>ˆ  s(   øè è € Ð"NÐ"N¸1 ?°QÑ#6Ð"NÐ"NÐ"NÐ"NÐ"NÐ"Nr;   rF   )r/   r(   r   rk   rY   rI   r   rS   )r3   Útemplate_firstÚtemplate_lastÚelement_propsÚtemplate_midr²   r  s         @r9   Úwrite_stylezNotebookFormatter.write_stylep  só   ø€ ðˆðˆðˆð
 EØ4ð
ˆõ �d”l¥JÑ/Ô/ð 	FØ× Ò Ð!FÑGÔGÐGØÔ&ð Ø×$Ò$ØGñô ð øð × Ò Ð!DÑEÔEÐEØ—{’{Ð"NÐ"NÐ"NÐ"NÀÐ"NÑ"NÔ"NÑNÔNˆÝ˜^ÐNÐN¨|ÐNÐN¸}ÐNÐNÑOÔOˆØ�
Š
�8ÑÔÐÐÐr;   c                óÎ   •— |                       d¦  «         |                      ¦   «          t          ¦   «                              ¦   «          |                       d¦  «         | j        S )Nz<div>z</div>)rS   r
  ÚsuperrG   r)   )r3   Ú	__class__s    €r9   rG   zNotebookFormatter.renderŒ  sU   ø€ Ø�
Š
�7ÑÔÐØ×ÒÑÔÐÝ‰Œ�ŠÑÔÐØ�
Š
�8ÑÔÐØŒ}Ðr;   rð   rï   )r!   r"   )	rñ   rò   ró   rô   rÎ   rc   r
  rG   Ú__classcell__)r  s   @r9   rø   rø   b  s‡   ø€ € € € € ðð ðFð Fð Fð Fð=ð =ð =ð =ðð ð ð ð8ð ð ð ð ð ð ð ð ð r;   rø   N)rô   Ú
__future__r   Útextwrapr   Útypingr   r   r   r   Úpandas._configr	   Úpandas._libsr
   Úpandasr   r   Úpandas.io.commonr   Úpandas.io.formats.formatr   r   Úpandas.io.formats.printingr   Úcollections.abcr   r   r   r   rø   rD   r;   r9   ú<module>r     s®  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð &Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð
 $Ð #Ð #Ð #Ð #Ð #ðð ð ð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3àð ðð ð ð ð ð ð ð ð ð ðxð xð xð xð xñ xô xð xðv/ð /ð /ð /ð /˜ñ /ô /ð /ð /ð /r;   