ó
    wñ:i£  ã                  ó€   • S SK Jr  S SKJr  S SKrS SKr\(       a  S SKJ	r	   " S S5      r
S	S jr\S:X  a  \" 5         gg)
é    )Úannotations)ÚTYPE_CHECKINGN)ÚIterablec                  óv   • \ rS rSrSr   S       SS jjrSS jrSS jrSSS jjrS r	S r
SSS
 jjrSrg	)ÚTablePlotteré   z[
Layout some DataFrames in vertical/horizontal layout for explanation.
Used in merging.rst
c                ó(   • Xl         X l        X0l        g ©N)Ú
cell_widthÚcell_heightÚ	font_size)Úselfr   r   r   s       ÚX/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/pandas/util/_doctools.pyÚ__init__ÚTablePlotter.__init__   s   € ð %ŒØ&ÔØ"�ó    c                ó~   • UR                   u  p#X!R                  R                  -   X1R                  R                  -   4$ )z1
Calculate table shape considering index levels.
)ÚshapeÚcolumnsÚnlevelsÚindex)r   ÚdfÚrowÚcols       r   Ú_shapeÚTablePlotter._shape   s4   € ð —8‘8‰ˆØ—Z‘Z×'Ñ'Ñ'¨¯x©x×/?Ñ/?Ñ)?Ð?Ð?r   c                óø  ^ • U(       a^  [        [        U 4S jU 5       5      T R                  U5      S   5      n[        U 4S jU 5       5      T R                  U5      S   -   nXT4$ [        U Vs/ s H  nT R                  U5      S   PM     snT R                  U5      S   /-   5      n[        U Vs/ s H  nT R                  U5      S   PM     snT R                  U5      S   /-   5      nXT4$ s  snf s  snf )zA
Calculate appropriate figure size based on left and right data.
c              3  óL   >#   • U  H  nTR                  U5      S    v •  M     g7f©r   N©r   ©Ú.0r   r   s     €r   Ú	<genexpr>Ú*TablePlotter._get_cells.<locals>.<genexpr>*   s   øé € Ð?º$°B˜TŸ[™[¨›_¨QÖ/º$ùó   ƒ!$r   c              3  óL   >#   • U  H  nTR                  U5      S    v •  M     g7f©é   Nr    r!   s     €r   r#   r$   +   s   øé € Ð;²d°˜Ÿ™ R›¨Ö+²dùr%   r(   )ÚmaxÚsumr   )r   ÚleftÚrightÚverticalÚvcellsÚhcellsr   s   `      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   Á0C2Â4C7c           	     ó   ^ • SSK Jn  SSKJn  [	        U[
        5      (       d  U/nU Vs/ s H  nT R                  U5      PM     nnT R                  U5      nT R                  XU5      u  p‰U(       a  T R                  U-  T R                  U	-  4n
OT R                  U-  T R                  U	-  4n
UR                  U
S9nU(       aÕ  UR                  [        U5      U5      n[        U 4S jU 5       5      n[        U 4S jU 5       5      n[        [        X5      5       H5  u  nu  nnUR!                  XÏSU24   5      nT R#                  UUUSU-  S9  M7     UR%                  USS2US24   5      nT R#                  UUS	S
U	-  S9  UR'                  SSSSS9  U$ [        U 4S jX/-    5       5      nS[(        R                  " U5      -  nUR                  SU5      nSn[        X5       HN  u  nnT R+                  U5      nUR!                  USXÿUS   -   24   5      nT R#                  UUUUS9  UUS   -  nMP     UR%                  USUS24   5      nT R#                  UUS	US9  UR'                  SSSSS9  U$ s  snf )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.
r   )ÚgridspecN)Úfigsizec              3  óL   >#   • U  H  nTR                  U5      S    v •  M     g7fr'   r    r!   s     €r   r#   Ú$TablePlotter.plot.<locals>.<genexpr>Q   ó   øé € ÐBºT°r §¡¨B£°Ö 2ºTùr%   c              3  óL   >#   • U  H  nTR                  U5      S    v •  M     g7fr   r    r!   s     €r   r#   r6   R   r7   r%   ç      ð?)ÚtitleÚheightÚResultgÍÌÌÌÌÌð?gÍÌÌÌÌÌì?gš™™™™™©?gffffffî?)ÚtopÚbottomr+   r,   c              3  óL   >#   • U  H  nTR                  U5      S    v •  M     g7fr   r    r!   s     €r   r#   r6   [   s   øé € ÐGº°"˜4Ÿ;™; r›?¨1Ö-ºùr%   r(   g333333ë?)Ú
matplotlibr3   Úmatplotlib.pyplotÚpyplotÚ
isinstanceÚlistÚ_convr0   r   r   ÚfigureÚGridSpecÚlenr)   Ú	enumerateÚzipÚadd_subplotÚ_make_tableÚsubplotÚsubplots_adjustÚnpr   )r   r+   r,   Úlabelsr-   r3   Úpltr   r/   r.   r4   ÚfigÚgsÚmax_left_colsÚmax_left_rowsÚiÚ_leftÚ_labelÚaxÚmax_rowsr;   Úsps   `                     r   ÚplotÚTablePlotter.plot1   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Ó0AÖ&BÑ"�‘?�E˜6Ø—_‘_ R¨1¨]¨?Ð(:Ñ%;Ó<�Ø× Ñ   U°&ÀÀ}ÑATÐ ÓUñ 'Cð —‘˜R¢ =¡>Ð 1Ñ2Ó3ˆBØ×Ñ˜R ¨h¸tÀf¹}ÐÑMØ×Ñ C°¸4ÀtÐÑLð" ˆ
ô ÔG¸¸wºÓGÓGˆHØœ2Ÿ6š6 (Ó+Ñ+ˆFØ×"Ñ" 1 fÓ-ˆBàˆAÜ! $Ö/‘
��FØ—[‘[ “_�Ø—_‘_ R¨¨1°2°a±5©y¨=Ð(8Ñ%9Ó:�Ø× Ñ   R¨v¸fÐ ÑEØ�R˜‘U‘
’ñ	 0ð —‘˜R  1¡2 ™YÓ'ˆBØ×Ñ˜R ¨h¸vÐÑFØ×Ñ D°¸DÈÐÑMàˆ
ùòQ /s   ªI;c                óÀ   • [        U[        R                  5      (       a-  UR                  c  UR	                  SS9nOUR	                  5       nUR                  S5      nU$ )z6
Convert each input to appropriate for table outplot.
Ú )ÚnameÚNaN)rC   ÚpdÚSeriesr`   Úto_frameÚfillna)r   Údatas     r   rE   ÚTablePlotter._convl   sM   € ô �dœBŸI™I×&Ñ&Ø�y‰yÑ Ø—}‘}¨"�}Ð-‘à—}‘}“�Ø�{‰{˜5Ó!ˆØˆr   c                ó˜  • UR                  5       nUR                  R                  nUS:X  a  UR                  SSUR                  5        OA[	        U5       H2  nUR                  USU 3UR                  R                  U5      5        M4     UR                  R                  nUS:”  a�  UR                  R                  S5      n[	        SU5       Vs/ s H'  o1R                  R                  U5      R                  PM)     nn[        R                  " U5      nUR                  Ul        [        R                  " Xq/5      nXQl        U$ s  snf )Nr(   r   ÚIndex)Úcopyr   r   ÚinsertÚrangeÚ_get_level_valuesr   Ú_valuesrb   Ú	DataFrameÚconcat)r   rf   Úidx_nlevelsrV   Úcol_nlevelsr   ÚvaluesÚcol_dfs           r   Ú_insert_indexÚTablePlotter._insert_indexx   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                ó¤  • Uc  UR                  S5        g SSKJn  UR                  R                  nUR
                  R                  nU R                  U5      nUR                  XSS9nUR                  U R                  5        Uc  S[        U5      S-   -  nUR                  5       n	U	S   R                  5        Hh  u  u  p«nUS	:X  a  UR                  S5        O7X§:  a  X¶:  a  UR                  S5        OX§:  d  X¶:  a  UR                  S
5        UR                  U5        Mj     UR                  X0R                  S9  UR!                  S5        g )NFr   )Úplottingé	   )Úlocr9   r(   Úcelldéÿÿÿÿz#AAAAAA)ÚsizeÚoff)Úset_visibleÚpandasrx   r   r   r   ru   ÚtableÚset_fontsizer   rH   Ú
propertiesÚitemsÚset_facecolorÚ
set_heightÚ	set_titleÚaxis)r   rY   r   r:   r;   rx   rq   rr   ÚtbÚpropsÚrÚcÚcells                r   rL   Ú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   Úfloatr   r�   r   r�   ÚreturnÚNone)r   zpd.DataFramer�   útuple[int, int])r�   r’   )© T)rP   zIterable[str]r-   Úboolr
   )r:   Ústrr;   zfloat | Noner�   r‘   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r0   r\   rE   ru   rL   Ú__static_attributes__r“   r   r   r   r      sb   † ñð !Ø!Øð	#àð#ð ð#ð ð	#ð
 
õ#ô@ôö9òv
ò÷,ñ r   r   c                 óÈ  • SS K Jn   [        5       n[        R                  " / SQ/ SQ/ SQS.5      n[        R                  " SS/SS	/S
.5      nUR                  X#/[        R                  " X#/5      SS/SS9  U R                  5         [        R                  " SS/SS	/S.5      nUR                  X$/[        R                  " X$/SS9SS/SS9  U R                  5         [        R                  R                  / SQ5      n[        R                  R                  SS/5      n[        R                  " / SQ/ SQS.US9nXdl
        UR                  XDS/S9  U R                  5         g )Nr   )é
   é   é   )é   é   é   )é   é   é    )ÚAÚBÚCr�   rŸ   r£   r¥   )r¦   r¨   Údf1Údf2T)rP   r-   )ÚXÚZr(   )rˆ   F)©r(   r¦   ©r(   r§   )r(   r¨   )é   r¦   )r¯   r§   )r¯   r¨   r­   r®   )r(   r¯   é   é   é   é   )r²   r³   é   é   ry   r�   )Úv1Úv2)r   Údf3)rP   )rA   rB   r   rb   ro   r\   rp   ÚshowÚ
MultiIndexÚfrom_tuplesr   )rQ   Úpr©   rª   r¸   ÚidxÚcolumns          r   Úmainr¿   ­   s(  € Ý#ä‹€Aä
�,Š,š\²Â<ÑPÓ
Q€CÜ
�,Š,˜b "˜X¨R°¨HÑ5Ó
6€Cà‡F�FˆCˆ:”r—y’y # Ó,°e¸U°^Èd€FÑSØ‡H�H„Jä
�,Š,˜b "˜X¨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__)r�   r‘   )Ú
__future__r   Útypingr   ÚnumpyrO   r€   rb   Úcollections.abcr   r   r¿   r–   r“   r   r   Ú<module>rÅ      s=   ðÝ "å  ã ã æÝ(÷]ñ ]ô@ð8 ˆzÓÙ…Fð r   