+
    NV-jÿ  ã                  ó–   € ^ RI Ht ^ RIHt ^ RIt^ RIt]'       d   ^ RIH	t	 ^ RI
Ht  ! R R4      tR R	 lt]R
8X  d
   ]! 4        R# R# )é    )Úannotations)ÚTYPE_CHECKINGN)ÚIterable)ÚFigurec                  ón   € ] tR t^tRtRR R lltR R ltR R ltRR R	 lltR
 t	R t
RR R lltRtR# )ÚTablePlotterz[
Layout some DataFrames in vertical/horizontal layout for explanation.
Used in merging.rst
c               ó(   € V ^8„  d   QhRRRRRRRR/# )é   Ú
cell_widthÚfloatÚcell_heightÚ	font_sizeÚreturnÚNone© )Úformats   "Úf/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pandas/util/_doctools.pyÚ__annotate__ÚTablePlotter.__annotate__   s2   € ÷ #ñ #àð#ð ð#ð ð	#ð
 
ñ#ó    c                	ó*   € Wn         W n        W0n        R # ©N)r   r   r   )Úselfr   r   r   s   &&&&r   Ú__init__ÚTablePlotter.__init__   s   € ð %ŒØ&ÔØ"Žr   c               ó    € V ^8„  d   QhRRRR/# )r
   Údfzpd.DataFramer   útuple[int, int]r   )r   s   "r   r   r      s   € ÷ @ñ @˜ð @¨/ñ @r   c                óŽ   € VP                   w  r#W!P                  P                  ,           W1P                  P                  ,           3# )z1
Calculate table shape considering index levels.
)ÚshapeÚcolumnsÚnlevelsÚindex)r   r   ÚrowÚcols   &&  r   Ú_shapeÚTablePlotter._shape   s4   € ð —8‘8‰ˆØ—Z‘Z×'Ñ'Õ'¨¯x©x×/?Ñ/?Õ)?Ð?Ð?r   c               ó   € V ^8„  d   QhRR/# )r
   r   r   r   )r   s   "r   r   r   &   s   € ÷ ñ °?ñ r   c                ó>  a € V'       dk   \        \        V 3R lV 4       4      S P                  V4      ^ ,          4      p\        V 3R lV 4       4      S P                  V4      ^,          ,           pWT3# \        V Uu. uF  pS P                  V4      ^ ,          NK  	  upS P                  V4      ^ ,          .,           4      p\        V Uu. uF  pS P                  V4      ^,          NK  	  upS P                  V4      ^,          .,           4      pWT3# u upi u upi )zA
Calculate appropriate figure size based on left and right data.
c              3  óT   <"  € T F  pSP                  V4      ^ ,          x € K  	  R# 5i©r   N©r&   ©Ú.0r   r   s   & €r   Ú	<genexpr>Ú*TablePlotter._get_cells.<locals>.<genexpr>,   s!   øé € Ð?¹$°B˜TŸ[™[¨›_¨Q×/Ò/»$ùó   ƒ%(c              3  óT   <"  € T F  pSP                  V4      ^,          x € K  	  R# 5i©é   Nr,   r-   s   & €r   r/   r0   -   s!   øé € Ð;±d°˜Ÿ™ R›¨×+Ò+³dùr1   )ÚmaxÚsumr&   )r   ÚleftÚrightÚverticalÚvcellsÚhcellsr   s   f&&&   r   Ú
_get_cellsÚTablePlotter._get_cells&   sî   ø€ ÷ äœÔ?¹$Ó?Ó?ÀÇÁÈUÓASÐTUÕAVÓWˆFÜÔ;±dÓ;Ó;¸d¿k¹kÈ%Ó>PÐQRÕ>SÕSˆFð ˆ~Ðô ±tÓ<±t°˜$Ÿ+™+ b›/¨!×,Ð,±tÑ<ÀÇÁÈEÓ@RÐSTÕ@UÐ?VÕVÓWˆFÜ±tÓ<±t°˜$Ÿ+™+ b›/¨!×,Ð,±tÑ<ÀÇÁÈEÓ@RÐSTÕ@UÐ?VÕVÓWˆFØˆ~Ðùò =ùÚ<s   Á=!DÃ!Dc               ó$   € V ^8„  d   QhRRRRRR/# )r
   ÚlabelszIterable[str]r9   Úboolr   r   r   )r   s   "r   r   r   3   s$   € ÷ ;ñ ;Ø#0ð;ØAEð;à	ñ;r   c           	     ó¬  a € ^ RI Hp ^ RIHp \	        V\
        4      '       g   V.pV Uu. uF  pS P                  V4      NK  	  ppS P                  V4      pS P                  WV4      w  r‰V'       d(   S P                  V,          S P                  V	,          3p
M&S P                  V,          S P                  V	,          3p
VP                  V
R7      pV'       dï   VP                  \        V4      V4      p\        V 3R lV 4       4      p\        V 3R lV 4       4      p\        \        WRR7      4       F@  w  pw  ppVP!                  WÏ^ V13,          4      pS P#                  VVVRV,          R	7       KB  	  VP%                  VR
VR13,          4      pS P#                  VVRRV	,          R	7       VP'                  RRRRR7       V# \        V 3R l. VOVN 4       4      pR\(        P                  ! V4      ,          pVP                  ^V4      p^ p\        WRR7       Fe  w  ppS P+                  V4      pVP!                  V^ WÿV^,          ,           13,          4      pS P#                  VVVVR	7       VV^,          ,          pKg  	  VP%                  V^ VR13,          4      pS P#                  VVRVR	7       VP'                  RRRRR7       V# u upi )aE  
Plot left / right DataFrames in specified layout.

Parameters
----------
left : list of DataFrames before operation is applied
right : DataFrame of operation result
labels : list of str to be drawn as titles of left DataFrames
vertical : bool, default True
    If True, use vertical layout. If False, use horizontal layout.
)ÚgridspecN)Úfigsizec              3  óT   <"  € T F  pSP                  V4      ^,          x € K  	  R# 5ir3   r,   r-   s   & €r   r/   Ú$TablePlotter.plot.<locals>.<genexpr>U   ó!   øé € ÐB¹T°r §¡¨B£°× 2Ò 2»Tùr1   c              3  óT   <"  € T F  pSP                  V4      ^ ,          x € K  	  R# 5ir+   r,   r-   s   & €r   r/   rE   V   rF   r1   T)Ústrictç      ð?)ÚtitleÚheight:NNNÚResultgÍÌÌÌÌÌð?gÍÌÌÌÌÌì?gš™™™™™©?gffffffî?)ÚtopÚbottomr7   r8   c              3  óT   <"  € T F  pSP                  V4      ^ ,          x € K  	  R# 5ir+   r,   r-   s   & €r   r/   rE   _   s!   øé € ÐG¹°"˜4Ÿ;™; r›?¨1×-Ò-»ùr1   g333333ë?)Ú
matplotlibrB   Úmatplotlib.pyplotÚpyplotÚ
isinstanceÚlistÚ_convr<   r   r   ÚfigureÚGridSpecÚlenr5   Ú	enumerateÚzipÚadd_subplotÚ_make_tableÚsubplotÚsubplots_adjustÚnpr&   )r   r7   r8   r?   r9   rB   Úpltr   r;   r:   rC   ÚfigÚgsÚmax_left_colsÚmax_left_rowsÚiÚ_leftÚ_labelÚaxÚmax_rowsrK   Úsps   f&&&&                 r   ÚplotÚTablePlotter.plot3   s�  ø€ õ 	(Ý'ä˜$¤×%Ò%Ø�6ˆDÙ)-Ó.© 2�—
‘
˜2–©ˆÐ.Ø—
‘
˜5Ó!ˆàŸ™¨°hÓ?‰ˆçØ—o‘o¨Õ.°×0@Ñ0@À6Õ0IÐI‰Gð —o‘o¨Õ.°×0@Ñ0@À6Õ0IÐIˆGØ�j‰j ˆjÓ)ˆçØ×"Ñ"¤3 t£9¨fÓ5ˆBäÔB¹TÓBÓBˆMÜÔB¹TÓBÓBˆMÜ&/´°DÈÔ0NÖ&OÑ"�‘?�E˜6Ø—_‘_ R¨1¨]¨?Ð(:Õ%;Ó<�Ø× Ñ   U°&ÀÀ}ÕATÐ ÖUñ 'Pð —‘˜R  =¡>Ð 1Õ2Ó3ˆBØ×Ñ˜R ¨h¸tÀf½}ÐÔMØ×Ñ C°¸4ÀtÐÔLð" ˆ
ô ÔG¸¸$¸À¹ÓGÓGˆHØœ2Ÿ6š6 (Ó+Õ+ˆFØ×"Ñ" 1 fÓ-ˆBàˆAÜ! $°t×<‘
��FØ—[‘[ “_�Ø—_‘_ R¨¨1°2°aµ5­y¨=Ð(8Õ%9Ó:�Ø× Ñ   R¨v¸fÐ ÔEØ�R˜•U•
’ñ	 =ð —‘˜R  1¡2 �YÓ'ˆBØ×Ñ˜R ¨h¸vÐÔFØ×Ñ D°¸DÈÐÔMàˆ
ùòQ /s   «Kc                óÊ   € \        V\        P                  4      '       d2   VP                  f   VP	                  RR7      pMVP	                  4       pVP                  R4      pV# )z6
Convert each input to appropriate for table outplot.
Ú )ÚnameÚNaN)rS   ÚpdÚSeriesro   Úto_frameÚfillna)r   Údatas   &&r   rU   ÚTablePlotter._convp   sM   € ô �dœBŸI™I×&Ò&Ø�y‰yÒ Ø—}‘}¨"�}Ó-‘à—}‘}“�Ø�{‰{˜5Ó!ˆØˆr   c                	óš  € VP                  4       pVP                  P                  pV^8X  d   VP                  ^ RVP                  4       MA\	        V4       F2  pVP                  VRV 2VP                  P                  V4      4       K4  	  VP                  P                  pV^8”  d�   VP                  P                  ^ 4      p\	        ^V4       Uu. uF'  q1P                  P                  V4      P                  NK)  	  pp\        P                  ! V4      pVP                  Vn        \        P                  ! Wq.4      pWQn        V# u upi )r4   ÚIndex)Úcopyr#   r"   ÚinsertÚrangeÚ_get_level_valuesr!   Ú_valuesrq   Ú	DataFrameÚconcat)r   ru   Úidx_nlevelsre   Úcol_nlevelsr%   ÚvaluesÚcol_dfs   &&      r   Ú_insert_indexÚTablePlotter._insert_index|   s	  € à�y‰y‹{ˆØ—j‘j×(Ñ(ˆØ˜!ÔØ�K‰K˜˜7 D§J¡JÕ/ä˜;Ö'�Ø—‘˜A  q c˜{¨D¯J©J×,HÑ,HÈÓ,KÖLñ (ð —l‘l×*Ñ*ˆØ˜Œ?Ø—,‘,×0Ñ0°Ó3ˆCäCHÈÈKÔCXóÙCX¸a—‘×.Ñ.¨qÓ1×9Ô9ÑCXð ð ô —\’\ &Ó)ˆFØ!Ÿ>™>ˆDŒLÜ—9’9˜f˜^Ó,ˆDØŒLØˆùòs   Ã-ENc               ó$   € V ^8„  d   QhRRRRRR/# )r
   rJ   ÚstrrK   zfloat | Noner   r   r   )r   s   "r   r   r   ’   s!   € ÷ ñ ¨ð °lð Èdñ r   c                	óÚ  € Vf   VP                  R4       R # ^ RIHp VP                  P                  pVP
                  P                  pV P                  V4      pVP                  W^	R7      pVP                  V P                  4       Vf   R\        V4      ^,           ,          pVP                  4       p	V	R,          P                  4        Fm  w  w  r«pVR	8X  d   VP                  R4       M;W§8  d   W¶8  d   VP                  R4       MW§8  g   W¶8  d   VP                  R4       VP                  V4       Ko  	  VP                  W0P                  R7       VP!                  R4       R # )
NF)Úplotting)ÚlocrI   Úcelldz#AAAAAA)ÚsizeÚofféÿÿÿÿ)Úset_visibleÚpandasr‰   r#   r"   r!   r„   ÚtableÚset_fontsizer   rX   Ú
propertiesÚitemsÚset_facecolorÚ
set_heightÚ	set_titleÚaxis)r   rh   r   rJ   rK   r‰   r€   r�   ÚtbÚpropsÚrÚcÚcells   &&&&&        r   r\   ÚTablePlotter._make_table’   s  € ØŠ:Ø�N‰N˜5Ô!Ùå#à—h‘h×&Ñ&ˆØ—j‘j×(Ñ(ˆà×Ñ Ó#ˆØ�^‰^˜B¨ˆ^Ó*ˆØ
�‰˜Ÿ™Ô'àŠ>ØœC ›G a�KÕ(ˆFà—‘“ˆØ! '�N×0Ñ0Ö2‰L‰FˆQ�DØ�BŒwØ× Ñ  Õ'Ø” Q¤_Ø× Ñ  Õ'Ø” A¤OØ×"Ñ" 9Ô-Ø�O‰O˜FÖ#ñ 3ð 	�‰�U§¡ˆÔ0Ø
�‰�Žr   )r   r   r   )g®Gáz®×?g      Ð?g      @)r   Tr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r&   r<   rk   rU   r„   r\   Ú__static_attributes__r   r   r   r   r      s1   † ñ÷
#õ@õ÷;òz
ò÷,ó r   r   c               ó   € V ^8„  d   QhRR/# )r
   r   r   r   )r   s   "r   r   r   ±   s   € ÷ ñ ˆdñ r   c            	     óò  € ^ RI Hp  \        4       p\        P                  ! R. ROR. ROR. RO/4      p\        P                  ! R^
^.R^^ ./4      pVP                  W#.\        P                  ! W#.4      RR.RR7       V P                  4        \        P                  ! R	^
^.R
^^ ./4      pVP                  W$.\        P                  ! W$.^R7      RR.RR7       V P                  4        \        P                  P                  . RO4      p\        P                  P                  RR.4      p\        P                  ! R. ROR. RO/VR7      pWdn
        VP                  WDR.R7       V P                  4        R# )r   NÚAÚBÚCÚdf1Údf2T)r?   r9   ÚXÚZ)r˜   FÚv1Úv2)r#   Údf3)r?   )é
   é   é   )é   é   é   )é   é   é    ©r4   r§   ©r4   r¨   )rº   r»   )r4   r©   )r
   r§   )r
   r¨   )r
   r©   )r4   r
   é   é   é   é   )r¾   r¿   é   é   é	   r±   )rQ   rR   r   rq   r~   rk   r   ÚshowÚ
MultiIndexÚfrom_tuplesr!   )r`   Úprª   r«   r°   ÚidxÚcolumns          r   ÚmainrÉ   ±   s:  € Ý#ä‹€Aä
�,Š,˜š\¨3²¸cÂ<ÐPÓ
Q€CÜ
�,Š,˜˜b "˜X s¨R°¨HÐ5Ó
6€Cà‡F�FˆCˆ:”r—y’y # Ó,°e¸U°^Èd€FÔSØ‡H�H„Jä
�,Š,˜˜b "˜X s¨R°¨HÐ5Ó
6€Cà‡F�FØ	ˆ
”B—I’I˜s˜j¨qÔ1¸5À%¸.ÐSXð ô ð ‡H�H„Jä
�-‰-×
#Ñ
#ÚDó€Cô �]‰]×&Ñ&¨°(Ð';Ó<€FÜ
�,Š,˜Ò0°$Ò8KÐLÐTWÔ
X€CØ„KØ‡F�Fˆ3˜U˜G€FÔ$Ø‡H�H†Jr   Ú__main__)Ú
__future__r   Útypingr   Únumpyr_   r�   rq   Úcollections.abcr   Úmatplotlib.figurer   r   rÉ   rŸ   r   r   r   Ú<module>rÐ      s@   ðÝ "å  ã ã çÝ(å(÷_ñ _õDð8 ˆzÔÙ†Fñ r   