Ë
    ¤ehe^  ã                  óÊ   — 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y)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	d!d	„«       Z
e	d!d
„«       Ze	d!d„«       Ze	d"d„«       Zd#d„Ze	d!d„«       Ze	d"d„«       Zd$d%d„Z	 d&	 	 	 	 	 	 	 	 	 d'd„Zd(d)d„Z	 d*	 	 	 	 	 	 	 	 	 d+d„Z	 	 	 	 	 	 d,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d-d„Zd$d.d„Zd.d„Zd.d„Zd.d„Zd/d„Zd.d„Z	 	 	 	 	 	 d0d„Z	 	 	 	 	 	 d0d„Zy)1Ú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_deltaNc                ó  — || _         || _        | 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                  j%                  «       D ]^  \  }}t!        |t        «      r|› d�n|}	|	| j                  |<   |sŒ/t!        |t&        «      sŒ@|D ]  }
|	| j                  t)        |
«      <   Œ Œ` y )NTzdisplay.html.borderÚpx)ÚfmtÚclassesÚframeÚtr_frameÚcolumnsÚelementsÚ	bold_rowsÚescapeÚshow_dimensionsr   Úintr	   ÚborderÚtable_idÚrender_linksÚ	col_spaceÚ
isinstancer   ÚitemsÚtupleÚstr)ÚselfÚ	formatterr   r$   r%   r&   Úis_multi_indexÚcolumnÚvalueÚcol_space_valueÚcolumn_indexs              úT/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/io/formats/html.pyÚ__init__zHTMLFormatter.__init__2   sA  € ð ˆŒØˆŒà—X‘X—^‘^ˆŒ
Ø—x‘x×(Ñ(×0Ñ0ˆŒØ#%ˆŒØŸ™×+Ñ+ˆŒØ—h‘h—o‘oˆŒØ#Ÿx™x×7Ñ7ˆÔØˆ>˜V t™^Üœ#œzÐ*?Ó@ÓA‰FÙØˆFàˆŒØ ˆŒØ(ˆÔàˆŒÜ# D§L¡L´*Ó=ˆØ!ŸX™X×/Ñ/×5Ñ5Ó7ò 	H‰MˆF�EÜ.8¸ÄÔ.D   r™lÈ%ˆOØ%4ˆD�N‰N˜6Ñ"ò ¤*¨V´UÕ";Ø$*ò H�LØ8G�D—N‘N¤3 |Ó#4Ò5ñHñ	Hó    c                ó¢   — | j                  «       }t        d„ |D «       «      r|D �cg c]  }t        |«      ‘Œ }}dj                  |«      S c c}w )Nc              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­w©N)r(   r+   )Ú.0Úxs     r3   ú	<genexpr>z*HTMLFormatter.to_string.<locals>.<genexpr>Y   s   è ø€ Ò1 aŒz˜!œS×!Ñ1ùs   ‚ú
)ÚrenderÚanyr+   Újoin)r,   Úlinesr:   s      r3   Ú	to_stringzHTMLFormatter.to_stringW   sF   € Ø—‘“ˆÜÑ1¨5Ô1Ô1Ø%*Ö+ ”S˜•VÐ+ˆEÐ+Ø�y‰y˜ÓÐùò ,s   §Ac           
     óþ   — | j                  «        | j                  rVt        d«      }| j                  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   )r,   Úbys     r3   r=   zHTMLFormatter.render]   si   € Ø×ÑÔà×&Ò&Ü�S“ˆBØ�J‰JØ”c˜$Ÿ*™*“oÐ& f¨R¨D°´#°d·j±j×6HÑ6HÓ2IÐ1JÈ,ÐWôð �}‰}Ðr5   c                ó.   — | j                   j                  S r8   )r   rF   ©r,   s    r3   rF   z$HTMLFormatter.should_show_dimensionsh   s   € à�x‰x×.Ñ.Ð.r5   c                ó.   — | j                   j                  S r8   )r   Úshow_row_idx_namesrL   s    r3   rN   z HTMLFormatter.show_row_idx_namesl   ó   € à�x‰x×*Ñ*Ð*r5   c                ó.   — | j                   j                  S r8   )r   Úshow_col_idx_namesrL   s    r3   rQ   z HTMLFormatter.show_col_idx_namesp   rO   r5   c                óŠ   — | j                   j                  r | j                  j                  j                  S | j                  ryy)Né   r   )r   Úindexr   ÚnlevelsrQ   rL   s    r3   Ú
row_levelszHTMLFormatter.row_levelst   s4   € à�8‰8�>Š>à—:‘:×#Ñ#×+Ñ+Ð+Ø×$Ò$ð àr5   c                ó   — | j                   S r8   )r   rL   s    r3   Ú_get_columns_formatted_valuesz+HTMLFormatter._get_columns_formatted_valuesƒ   s   € Ø�|‰|Ðr5   c                ó.   — | j                   j                  S r8   )r   Úis_truncatedrL   s    r3   rZ   zHTMLFormatter.is_truncated†   s   € à�x‰x×$Ñ$Ð$r5   c                óT   — t        | j                  j                  j                  «      S r8   )rI   r   r   r   rL   s    r3   ÚncolszHTMLFormatter.ncolsŠ   s   € ä�4—8‘8×$Ñ$×,Ñ,Ó-Ð-r5   c                ó\   — t        |«      }| j                  j                  d|z  |z   «       y )NrD   )r   r   Úappend)r,   ÚsÚindentÚrss       r3   rH   zHTMLFormatter.writeŽ   s&   € Ü˜!‹_ˆØ�‰×Ñ˜S 6™\¨BÑ.Õ/r5   c                óŒ   — | j                   j                  |d«      }|r|�|xs d}|d|› d�z  }| j                  |d||¬«       y)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©Úkindr`   Útags)r'   ÚgetÚ_write_cell)r,   r_   Úheaderr`   rg   r'   s         r3   Úwrite_thzHTMLFormatter.write_th’   sV   € ð2 —N‘N×&Ñ& q¨$Ó/ˆ	á�iÐ+Ø’:˜2ˆDØÐ(¨¨°2Ð6Ñ6ˆDà×Ñ˜ ¨f¸4ÐÕ@r5   c                ó.   — | j                  |d||¬«       y )NÚtdre   )ri   )r,   r_   r`   rg   s       r3   Úwrite_tdzHTMLFormatter.write_td³   s   € Ø×Ñ˜ ¨f¸4ÐÕ@r5   c                ó@  — |�
d|› d|› d�}nd|› d�}| j                   rddddœ}ni }t        ||¬«      j                  «       }| j                  r2t	        |«      r't        |i ¬«      j                  «       }|d	|› d
�z  }d}	nd}	| j                  |› |› |	› d|› d�|«       y )Nú<rD   ú>z&amp;z&lt;z&gt;)ú&rp   rq   )Úescape_charsz	<a href="z" target="_blank">z</a>rc   z</)r!   r   Ústripr&   r   rH   )
r,   r_   rf   r`   rg   Ú	start_tagÚescra   Úrs_unescapedÚend_as
             r3   ri   zHTMLFormatter._write_cell¶   s½   € ð ÐØ˜D˜6  4 &¨Ð*‰Ià˜D˜6 ˜ˆIà�;Š;à  w°WÑ=‰CàˆCä˜!¨#Ô.×4Ñ4Ó6ˆà×Ò¤¨¤Ü'¨¸Ô;×AÑAÓCˆLØ˜9 \ NÐ2DÐEÑEˆIØ‰EàˆEà�
‰
�i�[   U G¨2¨d¨V°1Ð5°vÕ>r5   c                ó^  — |€i }|€| j                  d|«       n| j                  d|› d�|«       ||z  }t        |«      D ]T  \  }}	|j                  |d «      }
|s| j                  r||k  r| j	                  |	|||
¬«       ŒA| j                  |	||
¬«       ŒV ||z  }| j                  d|«       y )Nz<tr>z<tr style="text-align: z;">)r`   rj   rg   )rg   z</tr>)rH   Ú	enumeraterh   r    rk   rn   )r,   Úliner`   r   rj   Úalignrg   Únindex_levelsÚir_   Úval_tags              r3   Úwrite_trzHTMLFormatter.write_trÏ   sº   € ð ˆ<ØˆDàˆ=Ø�J‰J�v˜vÕ&à�J‰JÐ0°°°sÐ;¸VÔDØ�,Ñˆä˜d“Oò 	7‰DˆAˆqØ—h‘h˜q $Ó'ˆGÙ˜$Ÿ.š.¨Q°Ò->Ø—‘˜a¨°vÀG�ÕLà—‘˜a ¨g�Õ6ð	7ð 	�,ÑˆØ�
‰
�7˜FÕ#r5   c           	     ó:  — dg}t        d«      }|s|j                  d«       | j                  �•t        | j                  t        «      r| j                  j                  «       | _        t        | j                  t        t        f«      s!t        dt        | j                  «      › �«      ‚|j                  | j                  «       | j                  €d}nd| j                  › d�}| j                  €d}nd| j                  › d�}| j                  d	|› d
dj                  |«      › d|› d�|«       | j                  j                   s| j"                  r| j%                  || j&                  z   «       | j)                  || j&                  z   «       | j                  d|«       y )NÚ	dataframezdisplay.html.use_mathjaxÚtex2jax_ignorez.classes must be a string, list, or tuple, not rc   z id="ú"z	 border="z<tablez class="rD   rq   z</table>)r	   r^   r   r(   r+   ÚsplitÚlistr*   Ú	TypeErrorÚtypeÚextendr%   r$   rH   r?   r   rj   rN   Ú_write_headerr   Ú_write_body)r,   r`   Ú_classesÚuse_mathjaxÚ
id_sectionÚborder_attrs         r3   rE   zHTMLFormatter._write_tableì   sb  € Ø�=ˆÜ Ð!;Ó<ˆÙØ�O‰OÐ,Ô-Ø�<‰<Ð#Ü˜$Ÿ,™,¬Ô,Ø#Ÿ|™|×1Ñ1Ó3�”Ü˜dŸl™l¬T´5¨MÔ:Üð%Ü%)¨$¯,©,Ó%7Ð$8ð:óð ð �O‰O˜DŸL™LÔ)à�=‰=Ð Ø‰Jà  §¡ ¨qÐ1ˆJà�;‰;ÐØ‰Kà% d§k¡k ]°!Ð4ˆKà�
‰
Ø�[�M ¨#¯(©(°8Ó*<Ð)=¸Q¸z¸lÈ!ÐLØô	
ð
 �8‰8�?Š?˜d×5Ò5Ø×Ñ˜v¨×(9Ñ(9Ñ9Ô:à×Ñ˜ $×"3Ñ"3Ñ3Ô4à�
‰
�:˜vÕ&r5   c                óø  — | j                   j                  }t        | j                  t        «      �r·d}| j                   j
                  rt        j                  }nd}| j                  j                  |d¬«      }t        ||«      }t        |«      dz
  }t        t        ||«      «      D �];  \  }\  }	}
|�r| j                   j                  }| j                   j
                  r§i }t        |	j                  «       «      D ]n  \  }}||k\  r	|||dz   <   n?||z   |kD  r2|dz   ||<   ||k(  r|
d | dz   |
|d  z   }
n|
d | |
|dz
     fz   |
|d  z   }
n|||<   ||z   |k(  sŒ\d||<   |
d | dz   |
|d  z   }
Œp |}	t        |«      dz
  }||k(  rRd|	|<   nLi }t        |	j                  «       «      D ]  \  }}||k\  r	|||dz   <   Œ|||<   Œ d||<   |}	|
d | dgz   |
|d  z   }
dg| j                   dz
  z  }| j                   j"                  s| j$                  r_| j                   j&                  r8| j                  j(                  |   }|j+                  t-        |xs d«      «       n|j+                  d«       i }t        |«      }t        |
«      D ]A  \  }}||	v r!|	|   dkD  r|j/                  |	|   ¬«      ||<   nŒ,|dz  }|j+                  |«       ŒC | j1                  ||| j2                  |d	¬
«       �Œ> y dg| j                   dz
  z  }| j                   j"                  s| j$                  rQ| j                   j&                  r*|j+                  | j                  j4                  xs d«       n|j+                  d«       |j7                  | j9                  «       «       | j                   j:                  }|r5| j                   | j                   j                  z   }|j=                  |d«       | j1                  ||| j2                  d	|¬«       y )Nz colspan="{span:d}" halign="left"F©ÚsparsifyÚinclude_namesrS   )ú...r”   rc   ©ÚspanT)rg   rj   )rj   r|   )r   Úis_truncated_horizontallyr(   r   r   r’   r
   Ú
no_defaultÚ_format_multir   rI   rz   ÚzipÚ
tr_col_numr†   r)   rV   rT   rQ   Úshow_index_namesÚnamesr^   r   Úformatr€   r   Únamer‰   rX   ÚjustifyÚinsert)r,   r`   r—   ÚtemplateÚsentinelÚlevelsÚlevel_lengthsÚ	inner_lvlÚlnumÚrecordsÚvaluesÚins_colÚrecs_newÚtagr–   ÚrowrŸ   rg   Újr~   Úvr|   s                         r3   Ú_write_col_headerzHTMLFormatter._write_col_header  s  € à$(§H¡H×$FÑ$FÐ!Ü�d—l‘l¤JÕ/Ø9ˆHð �x‰x× Ò äŸ>™>‘à �Ø—\‘\×/Ñ/¸ÐQVÐ/ÓWˆFÜ-¨f°hÓ?ˆMÜ˜MÓ*¨QÑ.ˆIÜ+4´S¸ÈÓ5OÓ+Pó LVÑ'�Ñ'�w Ú,à"Ÿh™h×1Ñ1�GØ—x‘x×(Ò(Ø#%˜ä)-¨g¯m©m«oÓ)>ò X™I˜C Ø" gš~Ø48 ¨¨q©Ò 1Ø!$ t¡¨gÒ!5Ø04°q± ¨¡Ø#'¨9Ò#4à(.¨x°Ð(8¸8Ñ(CÀfÈWÈXÐFVÑ(Vñ %+ð )/¨x°Ð(8Ø+1°'¸A±+Ñ+>Ð*@ñ)Aà*0°°Ð*:ñ);ñ %+ð 15 ¨¡ð  # T™z¨WÓ4Ø45 ¨Ñ 1Ø)/°°Ð)9¸HÑ)DÀvÈgÈhÐGWÑ)W¡ð-Xð. #+˜Ü$'¨Ó$6¸Ñ$:˜	Ø 9Ò,Ø/0˜G GÒ,à#%˜Ü)-¨g¯m©m«oÓ)>ò 5™I˜C Ø" gš~Ø48 ¨¨q©Ò 1à04 ¨¢ð	5ð
 -.˜ Ñ)Ø"*˜Ø!'¨¨Ð!1°U°GÑ!;¸fÀWÀXÐ>NÑ!N˜ð �d˜dŸo™o°Ñ1Ñ2�Ø—8‘8—>’> T×%<Ò%<ð —x‘x×0Ò0Ø#Ÿ|™|×1Ñ1°$Ñ7˜ØŸ
™
¤<°²
¸Ó#;Õ<àŸ
™
 2œà�Ü˜“H�Ü% fÓ-ò "‘D�A�qØ˜G‘|Ø" 1™:¨š>Ø&.§o¡o¸7À1¹: oÓ&F˜D šGà Ø˜‘F�AØ—J‘J˜q•Mð"ð —‘˜c 6¨4×+<Ñ+<À4ÐPT�ÖUñYLVðh �$˜$Ÿ/™/¨AÑ-Ñ.ˆCØ�x‰x�~Š~ ×!8Ò!8ð —8‘8×,Ò,Ø—J‘J˜tŸ|™|×0Ñ0Ò6°BÕ7à—J‘J˜r”NØ�J‰J�t×9Ñ9Ó;Ô<Ø—H‘H×$Ñ$ˆEá(ØŸ/™/¨D¯H©H×,?Ñ,?Ñ?�Ø—
‘
˜7 EÔ*à�M‰M˜#˜v t×'8Ñ'8ÀÈUˆMÕSr5   c                ó  — | j                   j                  }| j                  j                  j                  D �cg c]  }|�|nd‘Œ
 c}dg| j
                  |rdndz   z  z   }| j                  ||| j                  d¬«       y c c}w )Nrc   rS   r   T)rj   )r   r—   r   rT   r�   r\   r€   r   )r,   r`   r—   r:   r­   s        r3   Ú_write_row_headerzHTMLFormatter._write_row_headerˆ  s}   € Ø$(§H¡H×$FÑ$FÐ!Ø37·:±:×3CÑ3C×3IÑ3IÖJ¨a�A�M‰q rÑ)ÒJÈbÈTØ�J‰JÑ8™!¸aÑ@ñN
ñ 
ˆð 	�‰�c˜6 4×#4Ñ#4¸TˆÕBùò Ks   ¹Bc                ó  — | j                  d|«       | j                  j                  r| j                  || j                  z   «       | j
                  r| j                  || j                  z   «       | j                  d|«       y )Nz<thead>z</thead>)rH   r   rj   r°   r   rN   r²   )r,   r`   s     r3   rŠ   zHTMLFormatter._write_header�  sd   € Ø�
‰
�9˜fÔ%à�8‰8�?Š?Ø×"Ñ" 6¨D×,=Ñ,=Ñ#=Ô>à×"Ò"Ø×"Ñ" 6¨D×,=Ñ,=Ñ#=Ô>à�
‰
�:˜vÕ&r5   c                óÌ   — t        dd «      5  t        | j                  «      D �ci c]  }|| j                  j	                  |«      “Œ  }}d d d «       |S c c}w # 1 sw Y   S xY w)Nzdisplay.max_colwidth)r   Úranger\   r   Ú
format_col)r,   r~   Ú
fmt_valuess      r3   Ú_get_formatted_valuesz#HTMLFormatter._get_formatted_valuesš  sb   € ÜÐ2°DÓ9ñ 	PÜ=BÀ4Ç:Á:Ó=NÖO¸˜!˜TŸX™X×0Ñ0°Ó3Ñ3ÐOˆJÐO÷	PàÐùò P÷	PàÐús   �A¥#AÁAÁAÁA#c                ó^  — | j                  d|«       | j                  «       }| j                  j                  rDt	        | j
                  j                  t        «      r | j                  ||| j                  z   «       n| j                  ||| j                  z   «       | j                  d|«       y )Nz<tbody>z</tbody>)
rH   r¸   r   rT   r(   r   r   Ú_write_hierarchical_rowsr   Ú_write_regular_rows)r,   r`   r·   s      r3   r‹   zHTMLFormatter._write_bodyŸ  s‚   € Ø�
‰
�9˜fÔ%Ø×/Ñ/Ó1ˆ
ð �8‰8�>Š>œj¨¯©×)9Ñ)9¼:ÔFØ×)Ñ)¨*°f¸t×?PÑ?PÑ6PÕQà×$Ñ$ Z°¸$×:KÑ:KÑ1KÔLà�
‰
�:˜vÕ&r5   c                óF  ‡‡— | j                   j                  }| j                   j                  }t        | j                   j                  «      }| j                   j
                  r}| j                   j                  d«      }|�0| j                   j                  j
                  j                  |«      }n0| j                   j                  j
                  j                  d¬«      }g }t        |«      D �]0  Š|rR‰| j                   j                  k(  r9dgt        |«      z  }	| j                  |	|| j                  d | j                  ¬«       g }| j                   j
                  r|j                  ‰   «       n| j                  r|j                  d«       |j!                  ˆˆfd„t        | j"                  «      D «       «       |r5| j                   j$                  | j                  z   }
|j'                  |
d«       | j                  ||| j                  d | j                  ¬«       �Œ3 y )NÚ	__index__F©Úinclude_namer”   ©rg   r}   rc   c              3  ó.   •K  — | ]  }‰|   ‰   –— Œ y ­wr8   © ©r9   r®   r·   r~   s     €€r3   r;   z4HTMLFormatter._write_regular_rows.<locals>.<genexpr>Ð  s   øè ø€ ÒC¨A�z !‘} QÕ'ÑCùó   ƒ)r   r—   Úis_truncated_verticallyrI   r   rT   Ú_get_formatterÚmapÚ_format_flatrµ   Ú
tr_row_numr€   r   rV   r^   rQ   r‰   r\   r›   r¡   )r,   r·   r`   r—   rÅ   Únrowsr   Úindex_valuesr­   Ústr_sep_rowÚ
dot_col_ixr~   s    `         @r3   r»   z!HTMLFormatter._write_regular_rows«  s«  ù€ ð %)§H¡H×$FÑ$FÐ!Ø"&§(¡(×"BÑ"BÐä�D—H‘H×%Ñ%Ó&ˆà�8‰8�>Š>Ø—(‘(×)Ñ)¨+Ó6ˆCØˆØ#Ÿx™x×0Ñ0×6Ñ6×:Ñ:¸3Ó?‘ð  $Ÿx™x×0Ñ0×6Ñ6×CÑCÐQVÐCÓW�àˆÜ�u“ó 	ˆAÙ&¨1°·±×1DÑ1DÒ+EØ$˜g¬¨C«Ñ0�Ø—‘ØØØ×%Ñ%ØØ"&§/¡/ð ô ð ˆCØ�x‰x�~Š~Ø—
‘
˜<¨™?Õ+ð
 ×(Ò(Ø—
‘
˜2”Ø�J‰JÔC´°t·z±zÓ1BÔCÔCá(Ø!ŸX™X×0Ñ0°4·?±?ÑB�
Ø—
‘
˜: uÔ-Ø�M‰MØ�V˜T×.Ñ.°TÈÏÉð ö ñ3	r5   c                óT	  ‡‡— d}| j                   j                  }| j                   j                  }| j                   j                  }t	        |«      }t        |j                  t        «      sJ ‚|j                  j                  dd¬«      }t        t        |Ž «      }| j                   j                  �r¬t        j                  }	|j                  j                  |	d¬«      }
t        |
|	«      }t	        |«      dz
  }|�r_| j                   j                  }d}t!        |«      D �]  \  }}i }t        |j#                  «       «      D ]æ  \  }}||k\  r	|||dz   <   np||z   |kD  rc|dz   ||<   |s4t        ||dz
     «      }d|d<   |j%                  |t'        |«      «       d}n*t        ||   «      }d|||z
  <   t'        |«      ||<   n|||<   ||z   |k(  sŒ�d||<   |dk(  r)|j%                  |t'        dgt	        |«      z  «      «       ŒÀ|sŒÃt        ||   «      }d|||z
  <   t'        |«      ||<   Œè |||<   �Œ d||   |<   ‰D ]  }‰|   j%                  |d«       Œ |dz  }t)        |«      D ]ô  Šg }i }d}d}t        ||‰   «      D ]F  \  }}‰|v r!|‰   dkD  r|j+                  |‰   ¬	«      ||<   n|dz  }Œ1|dz  }|j-                  |«       ŒH |j/                  ˆˆfd
„t)        | j0                  «      D «       «       |r6|j%                  | j2                  |z
  | j                   j4                  z   d«       | j7                  ||| j8                  |t	        |
«      |z
  ¬«       Œö y g }t)        t	        |«      «      D �]0  Š|rR‰| j                   j                  k(  r9dgt	        |«      z  }| j7                  ||| j8                  d | j2                  ¬«       t        t        |j                  j                  dd¬«      Ž «      }g }|j/                  |‰   «       |j/                  ˆˆfd„t)        | j0                  «      D «       «       |r3|j%                  | j2                  | j                   j4                  z   d«       | j7                  ||| j8                  d |j                  j:                  ¬«       �Œ3 y )Nzrowspan="{span}" valign="top"Fr‘   rS   r”   éÿÿÿÿTr   r•   c              3  ó.   •K  — | ]  }‰|   ‰   –— Œ y ­wr8   rÂ   rÃ   s     €€r3   r;   z9HTMLFormatter._write_hierarchical_rows.<locals>.<genexpr>-  ó   øè ø€ ÒG°˜: a™=¨Õ+ÑGùrÄ   rÀ   c              3  ó.   •K  — | ]  }‰|   ‰   –— Œ y ­wr8   rÂ   rÃ   s     €€r3   r;   z9HTMLFormatter._write_hierarchical_rows.<locals>.<genexpr>K  rÑ   rÄ   )r   r—   rÅ   r   rI   r(   rT   r   r™   r†   rš   r’   r
   r˜   r   rÉ   rz   r)   r¡   r*   rµ   rž   r^   r‰   r\   rV   r›   r€   r   rU   )r,   r·   r`   r¢   r—   rÅ   r   rÊ   Ú
idx_valuesr£   r¤   r¥   r¦   Úins_rowÚinsertedr§   r¨   Úrec_newr¬   r–   Údot_rowÚix_colr­   rg   Úsparse_offsetr®   r¯   rÌ   r~   s    `                          @r3   rº   z&HTMLFormatter._write_hierarchical_rowsÙ  s£  ù€ ð 3ˆà$(§H¡H×$FÑ$FÐ!Ø"&§(¡(×"BÑ"BÐØ—‘×!Ñ!ˆÜ�E“
ˆä˜%Ÿ+™+¤zÔ2Ð2Ð2Ø—[‘[×.Ñ.¸ÈUÐ.ÓSˆ
Üœ#˜zÐ*Ó+ˆ
à�8‰8×Óä—~‘~ˆHØ—[‘[×.Ñ.¸ÐPUÐ.ÓVˆFä-¨f°hÓ?ˆMÜ˜MÓ*¨QÑ.ˆIÚ&ð Ÿ(™(×-Ñ-�Ø �Ü%.¨}Ó%=ó "2‘M�D˜'Ø �GÜ%)¨'¯-©-«/Ó%:ò E™	˜˜TØ 'š>Ø/3˜G C¨!¡GÒ,Ø  4™Z¨'Ò1Ø+/°!©8˜G C™Lñ $,Ü*.¨z¸'ÀA¹+Ñ/FÓ*G Ø.3 ¨¡Ø *× 1Ñ 1°'¼5À»>Ô JØ+/¡ä*.¨z¸'Ñ/BÓ*C Ø<A ¨	°DÑ(8Ñ 9Ü6;¸G³n 
¨7Ò 3à+/˜G C™Lð  ™:¨Ó0Ø/0˜G GÑ,Ø# qšyØ *× 1Ñ 1Ø$+¬U°E°7¼SÀÓ=OÑ3OÓ-Põ!"ò
 "*Ü*.¨z¸'Ñ/BÓ*C Ø<A ¨	°DÑ(8Ñ 9Ü6;¸G³n 
¨7Ò 3ð?Eð@ +2�M $Ó'ðE"2ðH 56�˜iÑ(¨Ñ1Ø(ò >�FØ˜vÑ&×-Ñ-¨g°uÕ=ð>à˜‘
�ä˜5“\ò �Ø�Ø�à !�Ø�Ü"% m°ZÀ±]Ó"Cò 	"‘J�G˜QØ˜G‘|Ø" 1™:¨š>Ø&.§o¡o¸7À1¹: oÓ&F˜D šGà%¨Ñ*˜Ø à˜‘F�AØ—J‘J˜q•Mð	"ð —
‘
ÔG´U¸4¿:¹:Ó5FÔGÔGÙ,Ø—J‘JØŸ™¨-Ñ7¸$¿(¹(×:MÑ:MÑMÈuôð —‘ØØØ×%Ñ%ØÜ"% f£+°Ñ"=ð õ ñ-ð< ˆCÜœ3˜u›:Ó&ó �Ù*¨q°T·X±X×5HÑ5HÒ/IØ#( '¬C°«HÑ"4�KØ—M‘MØ#ØØ×)Ñ)Ø!Ø&*§o¡oð "ô ô "Ü˜Ÿ™×2Ñ2¸EÐQVÐ2ÓWÐXó�
ð �Ø—
‘
˜: a™=Ô)Ø—
‘
ÔG´U¸4¿:¹:Ó5FÔGÔGÙ,Ø—J‘J˜tŸ™°·±×1DÑ1DÑDÀeÔLØ—‘ØØØ×%Ñ%ØØ"'§+¡+×"5Ñ"5ð ö ñ'r5   )NNNF)r-   r   r   z(str | list[str] | tuple[str, ...] | Noner$   zint | bool | Noner%   ú
str | Noner&   ÚboolÚreturnÚNone)rÜ   r+   ©rÜ   z	list[str])rÜ   rÛ   )rÜ   r#   )rÜ   r   )r   )r_   r   r`   r#   rÜ   rÝ   )Fr   N)
r_   r   rj   rÛ   r`   r#   rg   rÚ   rÜ   rÝ   )r   N)r_   r   r`   r#   rg   rÚ   rÜ   rÝ   )rm   r   N)
r_   r   rf   r+   r`   r#   rg   rÚ   rÜ   rÝ   )r   r   FNNr   )r{   r   r`   r#   r   r#   rj   rÛ   r|   rÚ   rg   zdict[int, str] | Noner}   r#   rÜ   rÝ   )r`   r#   rÜ   rÝ   ©rÜ   zdict[int, list[str]])r·   zMapping[int, list[str]]r`   r#   rÜ   rÝ   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r4   rA   r=   ÚpropertyrF   rN   rQ   rV   rX   rZ   r\   rH   rk   rn   ri   r€   rE   r°   r²   rŠ   r¸   r‹   r»   rº   rÂ   r5   r3   r   r   &   s3  … ñð €L�%Óð
 =AØ$(Ø#Ø"ð#Hà%ð#Hð :ð#Hð "ð	#Hð
 ð#Hð ð#Hð 
ó#HóJ ó	ð ò/ó ð/ð ò+ó ð+ð ò+ó ð+ð òó ðóð ò%ó ð%ð ò.ó ð.ô0ð
 QUðAØðAØ"ðAØ47ðAØCMðAà	óAôBAð MQð?Øð?Øð?Ø03ð?Ø?Ið?à	ó?ð8 ØØØ Ø&*Øð$àð$ð ð$ð ð	$ð
 ð$ð ð$ð $ð$ð ð$ð 
ó$ô:#'óJuTónCó	'óó

'ð,Ø1ð,Ø;>ð,à	ó,ð\{Ø1ð{Ø;>ð{à	ô{r5   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)
    c                ó†   — t        | j                  «      D �ci c]  }|| j                  j                  |«      “Œ  c}S c c}w r8   )rµ   r\   r   r¶   )r,   r~   s     r3   r¸   z'NotebookFormatter._get_formatted_values^  s3   € Ü38¸¿¹Ó3DÖE¨a��4—8‘8×&Ñ& qÓ)Ñ)ÒEÐEùÒEs   ˜#>c                ó:   — | j                   j                  d¬«      S )NFr¾   )r   rÈ   rL   s    r3   rX   z/NotebookFormatter._get_columns_formatted_valuesa  s   € à�|‰|×(Ñ(°eÐ(Ó<Ð<r5   c                óJ  ‡— d}d}dŠddg}t        | j                  t        «      r/|j                  d«       | j                  r#|j                  d«       n|j                  d«       d	j                  ˆfd
„|D «       «      }t        |› d|› d|› �«      }| j                  |«       y )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  –— Œ y ­wr8   rÂ   )r9   ÚtÚtemplate_selects     €r3   r;   z0NotebookFormatter.write_style.<locals>.<genexpr>}  s   øè ø€ Ò"N¸1 ?°QÕ#6Ñ"Nùs   ƒr<   )r(   r   r   r^   rN   r?   r   rH   )r,   Útemplate_firstÚtemplate_lastÚelement_propsÚtemplate_midr¢   ró   s         @r3   Úwrite_stylezNotebookFormatter.write_stylee  s®   ø€ ðˆðˆðˆð
 EØ4ð
ˆô �d—l‘l¤JÔ/Ø× Ñ Ð!FÔGØ×&Ò&Ø×$Ñ$ØGõð × Ñ Ð!DÔEØ—{‘{Ó"NÀÔ"NÓNˆÜ˜^Ð,¨B¨|¨n¸B¸}¸oÐNÓOˆØ�
‰
�8Õr5   c                óœ   •— | j                  d«       | j                  «        t        ‰| �  «        | j                  d«       | j                  S )Nz<div>z</div>)rH   rø   Úsuperr=   r   )r,   Ú	__class__s    €r3   r=   zNotebookFormatter.render�  s;   ø€ Ø�
‰
�7ÔØ×ÑÔÜ‰‰ÔØ�
‰
�8ÔØ�}‰}Ðr5   rß   rÞ   )rÜ   rÝ   )	rà   rá   râ   rã   r¸   rX   rø   r=   Ú__classcell__)rû   s   @r3   rç   rç   W  s"   ø„ ñóFó=ó÷8ñ r5   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ç   rÂ   r5   r3   ú<module>r     s^   ðñõ #å ÷ó õ &å ÷õ
 $÷õ 4á÷ñ ÷nñ nôb/˜õ /r5   