§
    sŠtjaœ  ã                   ó"  — d dl mZmZmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZ ddlmZ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 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% ddl&m'Z'm(Z( ddl)m*Z*m+Z+ erddl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 e G d„ d¦  «        ¦   «         Z3e G d„ d¦  «        ¦   «         Z4 G d„ de	¦  «        Z5 G d„ de¦  «        Z6e7dk    �r;d dl8m-Z- d dl9m:Z: ddl;m<Z<  e<d¦  «        5   e6ddd ¬!¦  «        Z=e= >                    d"d#d$d%¬&¦  «         e= >                    d'd(¬)¦  «         e= >                    d*d d+¬,¦  «         e= ?                    d-d.d/¦  «         e= ?                    d0d1d2¦  «         e= ?                    d3d4d5d6d%¬7¦  «         e= ?                    d8d9d:¦  «         d;e@d<d=fd>„ZA e-¦   «         Z, e:¦   «         ZB eAd?¦  «         e, C                    e=d@¬A¦  «         d%e=_D         eAdB¦  «         e, C                    e=¦  «         dCe=_E         eAdD¦  «         e, C                    e=d@¬A¦  «         d=e=_E        dEe=_D        dFdGge=_F         eAdH¦  «         e, C                    e=d@¬A¦  «         d=e=_E        dEe=_D        dFdGge=_F        de=_G         eAdI¦  «         e, C                    e=d@¬A¦  «         d=e=_E        dEe=_D        dFdGge=_F        d%e=_H        d e=_G         eAdJ¦  «         e, C                    e=d@¬A¦  «         d=d=d=¦  «         d=S # 1 swxY w Y   d=S d=S )Ké    )Ú	dataclassÚfieldÚreplace)	ÚTYPE_CHECKINGÚDictÚIterableÚListÚ
NamedTupleÚOptionalÚSequenceÚTupleÚUnioné   )ÚboxÚerrors)Úloop_first_lastÚ	loop_last)Ú	pick_bool)Úratio_distributeÚratio_reduce)ÚVerticalAlignMethod)ÚJupyterMixin)ÚMeasurement)ÚPaddingÚPaddingDimensions)Úis_renderable)ÚSegment)ÚStyleÚ	StyleType)ÚTextÚTextType)ÚConsoleÚConsoleOptionsÚJustifyMethodÚOverflowMethodÚRenderableTypeÚRenderResultc                   ó®  — e Zd ZU dZdZded<   	 dZded<   	 dZeed<   	 dZ	eed<   	 dZ
eed<   	 d	Zd
ed<   	 dZded<   	 dZded<   	 dZee         ed<   	 dZee         ed<   	 dZee         ed<   	 dZee         ed<   	 dZeed<   	 dZeed<   	 dZeed<   	  ee¬¦  «        Zed         ed<   d"d„Zeded         fd „¦   «         Zedefd!„¦   «         Z dS )#ÚColumna
  Defines a column within a ~Table.

    Args:
        title (Union[str, Text], optional): The title of the table rendered at the top. Defaults to None.
        caption (Union[str, Text], optional): The table caption rendered below. Defaults to None.
        width (int, optional): The width in characters of the table, or ``None`` to automatically fit. Defaults to None.
        min_width (Optional[int], optional): The minimum width of the table, or ``None`` for no minimum. Defaults to None.
        box (box.Box, optional): One of the constants in box.py used to draw the edges (see :ref:`appendix_box`), or ``None`` for no box lines. Defaults to box.HEAVY_HEAD.
        safe_box (Optional[bool], optional): Disable box characters that don't display on windows legacy terminal with *raster* fonts. Defaults to True.
        padding (PaddingDimensions, optional): Padding for cells (top, right, bottom, left). Defaults to (0, 1).
        collapse_padding (bool, optional): Enable collapsing of padding around cells. Defaults to False.
        pad_edge (bool, optional): Enable padding of edge cells. Defaults to True.
        show_header (bool, optional): Show a header row. Defaults to True.
        show_footer (bool, optional): Show a footer row. Defaults to False.
        show_edge (bool, optional): Draw a box around the outside of the table. Defaults to True.
        show_lines (bool, optional): Draw lines between every row. Defaults to False.
        leading (int, optional): Number of blank lines between rows (precludes ``show_lines``). Defaults to 0.
        style (Union[str, Style], optional): Default style for the table. Defaults to "none".
        row_styles (List[Union, str], optional): Optional list of row styles, if more than one style is given then the styles will alternate. Defaults to None.
        header_style (Union[str, Style], optional): Style of the header. Defaults to "table.header".
        footer_style (Union[str, Style], optional): Style of the footer. Defaults to "table.footer".
        border_style (Union[str, Style], optional): Style of the border. Defaults to None.
        title_style (Union[str, Style], optional): Style of the title. Defaults to None.
        caption_style (Union[str, Style], optional): Style of the caption. Defaults to None.
        title_justify (str, optional): Justify method for title. Defaults to "center".
        caption_justify (str, optional): Justify method for caption. Defaults to "center".
        highlight (bool, optional): Highlight cell contents (if str). Defaults to False.
    Ú r&   ÚheaderÚfooterÚheader_styleÚfooter_styleÚstyleÚleftr$   ÚjustifyÚtopr   ÚverticalÚellipsisr%   ÚoverflowNÚwidthÚ	min_widthÚ	max_widthÚratioFÚno_wrapÚ	highlightr   Ú_index)Údefault_factoryÚ_cellsÚreturnc                 ó$   — t          | g ¬¦  «        S )zReturn a copy of this Column.©r>   )r   ©Úselfs    úH/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/rich/table.pyÚcopyzColumn.copyt   s   € å�t BÐ'Ñ'Ô'Ð'ó    c              #   ó$   K  — | j         E d{V —† dS )z2Get all cells in the column, not including header.NrA   rB   s    rD   ÚcellszColumn.cellsx   s(   è è € ð ”;ÐÐÐÐÐÐÐÐÐrF   c                 ó   — | j         duS )z!Check if this column is flexible.N)r9   rB   s    rD   ÚflexiblezColumn.flexible}   s   € ð Œz Ð%Ð%rF   )r?   r)   )!Ú__name__Ú
__module__Ú__qualname__Ú__doc__r+   Ú__annotations__r,   r-   r   r.   r/   r1   r3   r5   r6   r   Úintr7   r8   r9   r:   Úboolr;   r<   r   Úlistr>   r	   rE   Úpropertyr   rH   rJ   © rF   rD   r)   r)   &   sÛ  € € € € € € ðð ð:  "€FÐÐ!Ð!Ñ!ØHà!€FÐÐ!Ð!Ñ!ØHà €L�)Ð Ð Ñ Ø-à €L�)Ð Ð Ñ Ø-à€Eˆ9ÐÐÑØ-à%€Gˆ_Ð%Ð%Ñ%Ø[à&+€HÐ#Ð+Ð+Ñ+ØMà!+€HÐÐ+Ð+Ñ+Øà€Eˆ8�CŒ=ÐÐÑØ\à#€Iˆx˜Œ}Ð#Ð#Ñ#Ø_à#€Iˆx˜Œ}Ð#Ð#Ñ#Ø_à€Eˆ8�CŒ=ÐÐÑØwà€GˆTÐÐÑØRà€IˆtÐÐÑØCà€FˆC€O€O�OØà%* U¸4Ð%@Ñ%@Ô%@€FˆDÐ!Ô"Ð@Ð@Ñ@ð(ð (ð (ð (ð ð�xÐ 0Ô1ð ð ð ñ „Xðð ð&˜$ð &ð &ð &ñ „Xð&ð &ð &rF   r)   c                   ó>   — e Zd ZU dZdZee         ed<   	 dZe	ed<   dS )ÚRowzInformation regarding a row.Nr/   FÚend_section)
rK   rL   rM   rN   r/   r   r   rO   rW   rQ   rT   rF   rD   rV   rV   ƒ   s@   € € € € € € à&Ð&à!%€Eˆ8�IÔÐ%Ð%Ñ%Ø à€K�ÐÐÑØLÐLrF   rV   c                   ó6   — e Zd ZU dZeed<   	 ded<   	 eed<   dS )Ú_CellzA single cell in a table.r/   r&   Ú
renderabler3   N)rK   rL   rM   rN   r   rO   r   rT   rF   rD   rY   rY   Ž   sB   € € € € € € Ø#Ð#àÐÐÑØ!Ø Ð Ð Ñ ØØ!Ð!Ð!Ñ!Ø"Ð"rF   rY   c            7       óì  — e Zd ZU dZee         ed<   ee         ed<   ddddej	        ddddddddddd	dd
ddddddddœde
eef         dee         dee         dee         dee         deej                 dee         dededededededededededeee                  d ee         d!ee         d"ee         d#ee         d$ee         d%d&d'd&d(ed)df6d*„Zeddddd+œde
eef         dedededed)d fd,„¦   «         Zed)efd-„¦   «         Zej        ded)dfd.„¦   «         Zed)efd/„¦   «         Zed)efd0„¦   «         Zd1d2d3ed)efd4„Zd1d2d5d6d)efd7„Zed)eeeeef         fd8„¦   «         Z e j        ded)d fd9„¦   «         Z 	 	 d\ddddd;d<d=dddddd>œd?d@dAd@d ee         d(ee         d!ee         dee         dBd&dCdDdEdFdee         dee         dGee         dHee         dIed)dfdJ„Z!dddKœdLed@         dee         dMed)dfdN„Z"d]dO„Z#	 	 	 	 	 	 d^dQ„Z$d1d2d5d6d)ee         fdR„Z%edSee         dTee         dGed)ee         fdU„¦   «         Z&d1d2dVedWed)ee'         fdX„Z(dVed)efdY„Z)d1d2d5d6dWed)efdZ„Z*d1d2d5d6dSee         d)dPfd[„Z+dS )_ÚTablea  A console renderable to draw a table.

    Args:
        *headers (Union[Column, str]): Column headers, either as a string, or :class:`~rich.table.Column` instance.
        title (Union[str, Text], optional): The title of the table rendered at the top. Defaults to None.
        caption (Union[str, Text], optional): The table caption rendered below. Defaults to None.
        width (int, optional): The width in characters of the table, or ``None`` to automatically fit. Defaults to None.
        min_width (Optional[int], optional): The minimum width of the table, or ``None`` for no minimum. Defaults to None.
        box (box.Box, optional): One of the constants in box.py used to draw the edges (see :ref:`appendix_box`), or ``None`` for no box lines. Defaults to box.HEAVY_HEAD.
        safe_box (Optional[bool], optional): Disable box characters that don't display on windows legacy terminal with *raster* fonts. Defaults to True.
        padding (PaddingDimensions, optional): Padding for cells (top, right, bottom, left). Defaults to (0, 1).
        collapse_padding (bool, optional): Enable collapsing of padding around cells. Defaults to False.
        pad_edge (bool, optional): Enable padding of edge cells. Defaults to True.
        expand (bool, optional): Expand the table to fit the available space if ``True``, otherwise the table width will be auto-calculated. Defaults to False.
        show_header (bool, optional): Show a header row. Defaults to True.
        show_footer (bool, optional): Show a footer row. Defaults to False.
        show_edge (bool, optional): Draw a box around the outside of the table. Defaults to True.
        show_lines (bool, optional): Draw lines between every row. Defaults to False.
        leading (int, optional): Number of blank lines between rows (precludes ``show_lines``). Defaults to 0.
        style (Union[str, Style], optional): Default style for the table. Defaults to "none".
        row_styles (List[Union, str], optional): Optional list of row styles, if more than one style is given then the styles will alternate. Defaults to None.
        header_style (Union[str, Style], optional): Style of the header. Defaults to "table.header".
        footer_style (Union[str, Style], optional): Style of the footer. Defaults to "table.footer".
        border_style (Union[str, Style], optional): Style of the border. Defaults to None.
        title_style (Union[str, Style], optional): Style of the title. Defaults to None.
        caption_style (Union[str, Style], optional): Style of the caption. Defaults to None.
        title_justify (str, optional): Justify method for title. Defaults to "center".
        caption_justify (str, optional): Justify method for caption. Defaults to "center".
        highlight (bool, optional): Highlight cell contents (if str). Defaults to False.
    ÚcolumnsÚrowsN)r   r   FTr   Únoneztable.headerztable.footerÚcenter)ÚtitleÚcaptionr6   r7   r   Úsafe_boxÚpaddingÚcollapse_paddingÚpad_edgeÚexpandÚshow_headerÚshow_footerÚ	show_edgeÚ
show_linesÚleadingr/   Ú
row_stylesr-   r.   Úborder_styleÚtitle_styleÚcaption_styleÚtitle_justifyÚcaption_justifyr;   Úheadersra   rb   r6   r7   r   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   r/   rm   r-   r.   rn   ro   rp   rq   r$   rr   r;   r?   c                óŒ  — g | _         g | _        || _        || _        || _        || _        || _        || _        t          j	        |¦  «        | _
        |	| _        |
| _        || _        || _        || _        || _        || _        || _        || _        |pd| _        |pd| _        || _        || _        || _        || _        || _        || _        t9          |pg ¦  «        | _        | j         j        }|D ]R}t?          |t@          ¦  «        r|  !                    |¬¦  «         Œ.tE          | j         ¦  «        |_#         ||¦  «         ŒSd S )Nr*   )r+   )$r]   r^   ra   rb   r6   r7   r   rc   r   ÚunpackÚ_paddingrf   Ú_expandrh   ri   rj   rk   rl   re   r/   r-   r.   rn   ro   rp   rq   rr   r;   rR   rm   ÚappendÚ
isinstanceÚstrÚ
add_columnÚlenr<   )rC   ra   rb   r6   r7   r   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   r/   rm   r-   r.   rn   ro   rp   rq   rr   r;   rs   Úappend_columnr+   s                                rD   Ú__init__zTable.__init__¼   s\  € ð: &(ˆŒØ!ˆŒ	ØˆŒ
ØˆŒØˆŒ
Ø"ˆŒØˆŒØ ˆŒÝœ wÑ/Ô/ˆŒØ ˆŒØˆŒØ&ˆÔØ&ˆÔØ"ˆŒØ$ˆŒØˆŒØ 0ˆÔØˆŒ
Ø(Ð.¨BˆÔØ(Ð.¨BˆÔØ(ˆÔØ&ˆÔØ*ˆÔØ.;ˆÔØ0?ˆÔØ"ˆŒÝ/3°JÐ4DÀ"Ñ/EÔ/EˆŒØœÔ+ˆØð 	&ð 	&ˆFÝ˜&¥#Ñ&Ô&ð &Ø—’ v�Ñ.Ô.Ð.Ð.å # D¤LÑ 1Ô 1�”Ø�˜fÑ%Ô%Ð%Ð%ð	&ð 	&rF   )rd   re   rf   rg   c                ó    —  | |d||ddd||dœŽS )aÁ  Get a table with no lines, headers, or footer.

        Args:
            *headers (Union[Column, str]): Column headers, either as a string, or :class:`~rich.table.Column` instance.
            padding (PaddingDimensions, optional): Get padding around cells. Defaults to 0.
            collapse_padding (bool, optional): Enable collapsing of padding around cells. Defaults to True.
            pad_edge (bool, optional): Enable padding around edges of table. Defaults to False.
            expand (bool, optional): Expand the table to fit the available space if ``True``, otherwise the table width will be auto-calculated. Defaults to False.

        Returns:
            Table: A table instance.
        NF)r   rd   re   rh   ri   rj   rf   rg   rT   )Úclsrd   re   rf   rg   rs   s         rD   Úgridz
Table.gridü   s8   € ð* ˆsØØØØ-ØØØØØð

ð 

ð 

ð 
	
rF   c                 ó"   — | j         p| j        duS )z-Setting a non-None self.width implies expand.N)rw   r6   rB   s    rD   rg   zTable.expand  s   € ð Œ|Ð5˜tœz°Ð5Ð5rF   c                 ó   — || _         dS )zSet expand.N)rw   )rC   rg   s     rD   rg   zTable.expand"  s   € ð ˆŒˆˆrF   c                 ór   — d}| j         r| j        r|dz  }| j         r|t          | j        ¦  «        dz
  z  }|S )z'Get extra width to add to cell content.r   é   r   )r   rj   r|   r]   )rC   r6   s     rD   Ú_extra_widthzTable._extra_width'  sM   € ð ˆØŒ8ð 	˜œð 	Ø�Q‰JˆEØŒ8ð 	+Ø•S˜œÑ&Ô&¨Ñ*Ñ*ˆEØˆrF   c                 ó*   — t          | j        ¦  «        S )zGet the current number of rows.)r|   r^   rB   s    rD   Ú	row_countzTable.row_count1  s   € õ �4”9‰~Œ~ÐrF   Úconsoler"   Úindexc                 ó  — t          j        ¦   «         }| j        r8||                     | j        |t	          | j        ¦  «        z           ¦  «        z  }| j        |         j        }|�||                     |¦  «        z  }|S )zGet the current row style.)r   Únullrm   Ú	get_styler|   r^   r/   )rC   r‰   rŠ   r/   Ú	row_styles        rD   Úget_row_stylezTable.get_row_style6  sx   € å”
‘”ˆØŒ?ð 	VØ�W×&Ò& t¤°u½sÀ4Ä?Ñ?SÔ?SÑ7SÔ'TÑUÔUÑUˆEØ”I˜eÔ$Ô*ˆ	ØÐ Ø�W×&Ò& yÑ1Ô1Ñ1ˆEØˆrF   Úoptionsr#   c           	      óþ  ‡‡‡‡	— ‰j         Š	| j        �| j        Š	‰	dk     rt          dd¦  «        S | j        }t	          |                      ‰‰                     ‰	|z
  ¦  «        ¦  «        ¦  «        Š	| j        Šˆˆˆ	ˆfd„| j        D ¦   «         }t	          d„ |D ¦   «         ¦  «        |z   }| j        €t	          d„ |D ¦   «         ¦  «        |z   n| j        }t          ||¦  «        }| 	                    | j
        ¦  «        }|S )Nr   c                 óP   •— g | ]"} ‰‰‰                      ‰¦  «        |¦  «        ‘Œ#S rT   )Úupdate_width)Ú.0ÚcolumnÚ_measure_columnr‰   r8   r�   s     €€€€rD   ú
<listcomp>z*Table.__rich_measure__.<locals>.<listcomp>Q  sE   ø€ ð 
ð 
ð 
àð ˆO˜G W×%9Ò%9¸)Ñ%DÔ%DÀfÑMÔMð
ð 
ð 
rF   c              3   ó$   K  — | ]}|j         V — Œd S ©N)Úminimum©r”   Úmeasurements     rD   ú	<genexpr>z)Table.__rich_measure__.<locals>.<genexpr>V  ó%   è è € ÐDÐD¨�Ô#ÐDÐDÐDÐDÐDÐDrF   c              3   ó$   K  — | ]}|j         V — Œd S r™   ©Úmaximumr›   s     rD   r�   z)Table.__rich_measure__.<locals>.<genexpr>Y  rž   rF   )r8   r6   r   r†   ÚsumÚ_calculate_column_widthsr“   r–   r]   Úclampr7   )
rC   r‰   r�   Úextra_widthÚmeasurementsÚminimum_widthÚmaximum_widthrœ   r–   r8   s
    ``     @@rD   Ú__rich_measure__zTable.__rich_measure__@  sG  øøøø€ ð Ô%ˆ	ØŒ:Ð!Øœ
ˆIØ�qŠ=ˆ=Ý˜q !Ñ$Ô$Ð$àÔ'ˆÝØ×)Ò)Ø˜×-Ò-¨i¸+Ñ.EÑFÔFñô ñ
ô 
ˆ	ð
 Ô.ˆð
ð 
ð 
ð 
ð 
ð 
ð 
àœ,ð
ñ 
ô 
ˆõ
 ÐDÐD°|ÐDÑDÔDÑDÔDÀ{ÑRð 	ð
 ”
Ð"õ ÐDÐD°|ÐDÑDÔDÑDÔDÀ{ÑRÐRà”ð 	õ
 " -°Ñ?Ô?ˆØ!×'Ò'¨¬Ñ7Ô7ˆØÐrF   c                 ó   — | j         S )zGet cell padding.)rv   rB   s    rD   rd   zTable.paddinga  s   € ð Œ}ÐrF   c                 ó8   — t          j        |¦  «        | _        | S )zSet cell padding.)r   ru   rv   )rC   rd   s     rD   rd   zTable.paddingf  s   € õ  œ wÑ/Ô/ˆŒØˆrF   r*   r0   r2   r4   )r-   r;   r.   r/   r1   r3   r5   r6   r7   r8   r9   r:   r+   r&   r,   r1   r3   r   r5   r%   r8   r9   r:   c                ó¸   — t          t          | j        ¦  «        |||pd|�|n| j        |pd|pd|||	|
||||¬¦  «        }| j                             |¦  «         dS )a…  Add a column to the table.

        Args:
            header (RenderableType, optional): Text or renderable for the header.
                Defaults to "".
            footer (RenderableType, optional): Text or renderable for the footer.
                Defaults to "".
            header_style (Union[str, Style], optional): Style for the header, or None for default. Defaults to None.
            highlight (bool, optional): Whether to highlight the text. The default of None uses the value of the table (self) object.
            footer_style (Union[str, Style], optional): Style for the footer, or None for default. Defaults to None.
            style (Union[str, Style], optional): Style for the column cells, or None for default. Defaults to None.
            justify (JustifyMethod, optional): Alignment for cells. Defaults to "left".
            vertical (VerticalAlignMethod, optional): Vertical alignment, one of "top", "middle", or "bottom". Defaults to "top".
            overflow (OverflowMethod): Overflow method: "crop", "fold", "ellipsis". Defaults to "ellipsis".
            width (int, optional): Desired width of column in characters, or None to fit to contents. Defaults to None.
            min_width (Optional[int], optional): Minimum width of column, or ``None`` for no minimum. Defaults to None.
            max_width (Optional[int], optional): Maximum width of column, or ``None`` for no maximum. Defaults to None.
            ratio (int, optional): Flexible ratio for the column (requires ``Table.expand`` or ``Table.width``). Defaults to None.
            no_wrap (bool, optional): Set to ``True`` to disable wrapping of this column.
        r*   N)r<   r+   r,   r-   r;   r.   r/   r1   r3   r5   r6   r7   r8   r9   r:   )r)   r|   r]   r;   rx   )rC   r+   r,   r-   r;   r.   r/   r1   r3   r5   r6   r7   r8   r9   r:   r•   s                   rD   r{   zTable.add_columnl  s‡   € õN Ý�t”|Ñ$Ô$ØØØ%Ð+¨Ø#,Ð#8�i�i¸d¼nØ%Ð+¨Ø�+˜2ØØØØØØØØð
ñ 
ô 
ˆð" 	Œ×Ò˜FÑ#Ô#Ð#Ð#Ð#rF   ©r/   rW   ÚrenderablesrW   c                óà  — dt           ddddfd„}t          |¦  «        }| j        }t          |¦  «        t          |¦  «        k     r'g |¢dgt          |¦  «        t          |¦  «        z
  z  ¢}t	          |¦  «        D ]È\  }}|t          |¦  «        k    rTt          || j        ¬¦  «        }	| j        D ]}
 ||	t          d¦  «        ¦  «         Œ| j                             |	¦  «         n||         }	|€ ||	d¦  «         Œƒt          |¦  «        r ||	|¦  «         ŒŸt          j        d	t          |¦  «        j        › d
�¦  «        ‚| j                             t          ||¬¦  «        ¦  «         dS )aø  Add a row of renderables.

        Args:
            *renderables (None or renderable): Each cell in a row must be a renderable object (including str),
                or ``None`` for a blank cell.
            style (StyleType, optional): An optional style to apply to the entire row. Defaults to None.
            end_section (bool, optional): End a section and draw a line. Defaults to False.

        Raises:
            errors.NotRenderableError: If you add something that can't be rendered.
        r•   rZ   r&   r?   Nc                 ó:   — | j                              |¦  «         d S r™   )r>   rx   )r•   rZ   s     rD   Úadd_cellzTable.add_row.<locals>.add_cell¸  s   € ØŒM× Ò  Ñ,Ô,Ð,Ð,Ð,rF   )r<   r;   r*   zunable to render z1; a string or other renderable object is requiredr­   )r)   rR   r]   r|   Ú	enumerater;   r^   r    rx   r   r   ÚNotRenderableErrorÚtyperK   rV   )rC   r/   rW   r®   r±   Úcell_renderablesr]   rŠ   rZ   r•   Ú_s              rD   Úadd_rowzTable.add_row¦  s¼  € ð$	-�Vð 	-Ð1Að 	-Àdð 	-ð 	-ð 	-ð 	-õ >BÀ+Ñ=NÔ=NÐà”,ˆÝÐÑ Ô ¥3 w¡<¤<Ò/Ð/ð Ø!ð à��3˜w™<œ<­#Ð.>Ñ*?Ô*?Ñ?Ñ@ð Ðõ "+Ð+;Ñ!<Ô!<ð 	ð 	ÑˆE�:Ø�˜G™œÒ$Ð$Ý u¸¼ÐGÑGÔG�Øœð /ð /�AØ�H˜V¥T¨"¡X¤XÑ.Ô.Ð.Ð.Ø”×#Ò# FÑ+Ô+Ð+Ð+à  œ�ØÐ!Ø�˜ Ñ$Ô$Ð$Ð$Ý˜zÑ*Ô*ð Ø�˜ Ñ,Ô,Ð,Ð,åÔ/Øt­¨ZÑ(8Ô(8Ô(AÐtÐtÐtñô ð ð 	Œ	×Ò� 5°kÐBÑBÔBÑCÔCÐCÐCÐCrF   c                 ó<   — | j         rd| j         d         _        dS dS )z2Add a new section (draw a line after current row).TéÿÿÿÿN)r^   rW   rB   s    rD   Úadd_sectionzTable.add_sectionÕ  s,   € ð Œ9ð 	-Ø(,ˆDŒI�bŒMÔ%Ð%Ð%ð	-ð 	-rF   r'   c           	   #   ó˜  ‡‡K  — | j         st          d¦  «        V — d S |j        }| j        �| j        }| j        }|                      ‰|                     ||z
  ¦  «        ¦  «        }t          |¦  «        |z   }|                     || j	        d ¬¦  «        Š	 ddt          dt          dddd	fˆˆfd
„}| j        r6 || j        t          j        | j        d¦  «        | j        ¬¦  «        E d {V —† |                      ‰‰|¦  «        E d {V —† | j        r8 || j        t          j        | j        d¦  «        | j        ¬¦  «        E d {V —† d S d S )Nú
)r6   r;   Úheightr`   Útextr/   r1   r$   r?   r'   c                 ó¸   •— t          | t          ¦  «        r‰                     | |d¬¦  «        n| }‰                     |‰                     |¬¦  «        ¬¦  «        S )NF)r/   r;   ©r1   )r�   )ry   rz   Ú
render_strÚrenderÚupdate)r¾   r/   r1   Úrender_textr‰   Úrender_optionss       €€rD   Úrender_annotationz1Table.__rich_console__.<locals>.render_annotationñ  sl   ø€ õ
 ˜d¥CÑ(Ô(ð�×"Ò" 4¨uÀÐ"ÑFÔFÐFàð ð
 —>’>Ø ^×%:Ò%:À7Ð%:Ñ%KÔ%Kð "ñ ô ð rF   ztable.title)r/   r1   ztable.caption)r`   )r]   r   r8   r6   r†   r£   r“   r¢   rÃ   r;   r!   r   ra   r   Ú
pick_firstro   rq   Ú_renderrb   rp   rr   )	rC   r‰   r�   r8   r¥   ÚwidthsÚtable_widthrÆ   rÅ   s	    `      @rD   Ú__rich_console__zTable.__rich_console__Û  sù  øøè è € ð Œ|ð 	Ý˜$‘-”-ÐÐÐØˆFàÔ%ˆ	ØŒ:Ð!Øœ
ˆIàÔ'ˆà×.Ò.Ø�W×)Ò)¨)°kÑ*AÑBÔBñ
ô 
ˆõ ˜&‘k”k KÑ/ˆà ŸšØ¨¬Àð (ñ 
ô 
ˆð
 JRð
	ð 
	Ýð
	Ý#,ð
	Ø7Fð
	àð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð Œ:ð 	Ø(Ð(Ø”
ÝÔ& tÔ'7¸ÑGÔGØÔ*ðñ ô ð ð ð ð ð ð ð ð
 —<’< ¨¸Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@ØŒ<ð 	Ø(Ð(Ø”ÝÔ& tÔ'9¸?ÑKÔKØÔ,ðñ ô ð ð ð ð ð ð ð ð ð ð	ð 	rF   c                 ó  ‡ ‡‡‡— ‰j         }‰ j        }ˆˆˆ fd„|D ¦   «         }d„ |D ¦   «         }‰ j        Š‰ j        }‰ j        r¬d„ |D ¦   «         }t          |¦  «        r‘d„ t          ||¦  «        D ¦   «         }	ˆfd„|D ¦   «         }
|t          |	¦  «        z
  }t          |||
¦  «        }t          |¦  «        }t          |¦  «        D ]'\  }}|j        r|	|         t          |¦  «        z   ||<   Œ(t          |¦  «        }||k    r—‰                      |d„ |D ¦   «         |¦  «        }t          |¦  «        }||k    r7||z
  }t          |dgt          |¦  «        z  ||¦  «        }t          |¦  «        }ˆˆˆ fd„t          ||¦  «        D ¦   «         }d	„ |D ¦   «         }||k     r‰ j        s‰ j        �\|‰ j        |z
  k     rN‰ j        €|nt#          ‰ j        |z
  |¦  «        }t          ||z
  |¦  «        }d„ t          ||¦  «        D ¦   «         }|S )zNCalculate the widths of each column, including padding, not including borders.c                 ó>   •— g | ]}‰                      ‰‰|¦  «        ‘ŒS rT   )r–   )r”   r•   r‰   r�   rC   s     €€€rD   r—   z2Table._calculate_column_widths.<locals>.<listcomp>  s8   ø€ ð 
ð 
ð 
Ø?EˆD× Ò  ¨'°6Ñ:Ô:ð
ð 
ð 
rF   c                 ó    — g | ]}|j         pd ‘ŒS ©r   r    ©r”   Ú_ranges     rD   r—   z2Table._calculate_column_widths.<locals>.<listcomp>  s   € ÐAÐAÐA¨&�&”.Ð% AÐAÐAÐArF   c                 ó.   — g | ]}|j         ¯	|j        pd ‘ŒS ©r   )rJ   r9   )r”   Úcols     rD   r—   z2Table._calculate_column_widths.<locals>.<listcomp>  s%   € ÐHÐHÐH¨¸3¼<ÐH�c”i�n 1ÐHÐHÐHrF   c                 ó4   — g | ]\  }}|j         rd n|j        ‘ŒS rÓ   )rJ   r¡   )r”   rÑ   r•   s      rD   r—   z2Table._calculate_column_widths.<locals>.<listcomp>  s9   € ð  ð  ð  á&˜ ð  œÐ<�A�A¨f¬nð ð  ð  rF   c                 óR   •— g | ]#}|j         ¯	|j        pd  ‰|j        ¦  «        z   ‘Œ$S rÏ   )rJ   r6   r<   )r”   r•   Úget_padding_widths     €rD   r—   z2Table._calculate_column_widths.<locals>.<listcomp>  sK   ø€ ð  ð  ð  àØ”ð Ø”\Ð& QÐ*;Ð*;¸F¼MÑ*JÔ*JÑJð ð  ð  rF   c                 ó0   — g | ]}|j         d u o|j         ‘ŒS r™   )r6   r:   )r”   r•   s     rD   r—   z2Table._calculate_column_widths.<locals>.<listcomp>/  s)   € ÐUÐUÐUÀ6�&”, $Ð&Ð=¨v¬~Ð+=ÐUÐUÐUrF   r   c                 ój   •— g | ]/\  }}‰                      ‰‰                     |¦  «        |¦  «        ‘Œ0S rT   )r–   r“   )r”   r6   r•   r‰   r�   rC   s      €€€rD   r—   z2Table._calculate_column_widths.<locals>.<listcomp>9  sM   ø€ ð ð ð á!�E˜6ð ×$Ò$ W¨g×.BÒ.BÀ5Ñ.IÔ.IÈ6ÑRÔRðð ð rF   c                 ó    — g | ]}|j         pd ‘ŒS rÓ   r    rÐ   s     rD   r—   z2Table._calculate_column_widths.<locals>.<listcomp>=  s   € ÐEÐEÐE¨f�f”nÐ)¨ÐEÐEÐErF   Nc                 ó   — g | ]
\  }}||z   ‘ŒS rT   rT   )r”   Ú_widthÚpads      rD   r—   z2Table._calculate_column_widths.<locals>.<listcomp>H  s    € ÐNÐNÐN¡{ v¨s�f˜s‘lÐNÐNÐNrF   )r8   r]   Ú_get_padding_widthr†   rg   ÚanyÚzipr¢   r   Úiterr²   rJ   ÚnextÚ_collapse_widthsr   r|   r7   Úmin)rC   r‰   r�   r8   r]   Úwidth_rangesrÉ   r¥   ÚratiosÚfixed_widthsÚflex_minimumÚflexible_widthÚflex_widthsÚiter_flex_widthsrŠ   r•   rÊ   Úexcess_widthÚ
_max_widthÚ
pad_widthsr×   s   ```                 @rD   r£   zTable._calculate_column_widths  sÓ  øøøø€ ð Ô%ˆ	Ø”,ˆð
ð 
ð 
ð 
ð 
ð 
ØIPð
ñ 
ô 
ˆð BÐA°LÐAÑAÔAˆà Ô3ÐØÔ'ˆØŒ;ð 	UØHÐH°ÐHÑHÔHˆFÝ�6‰{Œ{ð Uð ð  å*-¨l¸GÑ*DÔ*Dð ñ  ô  �ð ð  ð  ð  à")ð ñ  ô  �ð
 "+­S°Ñ->Ô->Ñ!>�Ý.¨~¸vÀ|ÑTÔT�Ý#'¨Ñ#4Ô#4Ð Ý%.¨wÑ%7Ô%7ð Uð U‘M�E˜6Ø”ð UØ(4°UÔ(;½dÐCSÑ>TÔ>TÑ(T˜˜u™øÝ˜&‘k”kˆà˜Ò"Ð"Ø×*Ò*ØØUÐUÈWÐUÑUÔUØñô ˆFõ
 ˜f™+œ+ˆKà˜YÒ&Ð&Ø*¨YÑ6�Ý% l°Q°C½#¸f¹+¼+Ñ4EÀvÈvÑVÔV�Ý! &™kœk�ðð ð ð ð ð å%(¨°Ñ%9Ô%9ðñ ô ˆLð FÐE¸ÐEÑEÔEˆFà˜)Ò#Ð#¨¬Ð#ØŒNÐ&¨;¸$¼.È;Ñ:VÒ+WÐ+Wð ”>Ð)ð �	å˜œ¨+Ñ5°yÑAÔAð õ
 *¨*°{Ñ*BÀFÑKÔKˆJØNÐNµc¸&À*Ñ6MÔ6MÐNÑNÔNˆFàˆrF   rÉ   Úwrapablec                 ó  ‡
— t          |¦  «        }||z
  }t          |¦  «        rÚ|rØ|dk    rÒt          d„ t          ||¦  «        D ¦   «         ¦  «        Š
t          ˆ
fd„t          ||¦  «        D ¦   «         ¦  «        }‰
|z
  }ˆ
fd„t          ||¦  «        D ¦   «         }t          |¦  «        r|snOt	          ||¦  «        gt          |¦  «        z  }	t          |||	|¦  «        }t          |¦  «        }||z
  }|r|dk    °Ò|S )aM  Reduce widths so that the total is under max_width.

        Args:
            widths (List[int]): List of widths.
            wrapable (List[bool]): List of booleans that indicate if a column may shrink.
            max_width (int): Maximum width to reduce to.

        Returns:
            List[int]: A new list of widths.
        r   c              3   ó$   K  — | ]\  }}|¯|V — Œd S r™   rT   )r”   r6   Ú
allow_wraps      rD   r�   z)Table._collapse_widths.<locals>.<genexpr>^  s?   è è € ð !ð !Ù/˜e ZÈJð!Øð!ð !ð !ð !ð !ð !rF   c              3   ó6   •K  — | ]\  }}|r|‰k    r|nd V — ŒdS )r   NrT   ©r”   r6   rò   Ú
max_columns      €rD   r�   z)Table._collapse_widths.<locals>.<genexpr>a  sN   øè è € ð (ð (á)˜˜zð (ÐF¨E°ZÒ,?Ð,?�E�EÀQð(ð (ð (ð (ð (ð (rF   c                 ó.   •— g | ]\  }}|‰k    r|rd nd‘ŒS )r   r   rT   rô   s      €rD   r—   z*Table._collapse_widths.<locals>.<listcomp>f  s@   ø€ ð ð ð á)˜˜zð ! JÒ.Ð.°:Ð.�Q�QÀAðð ð rF   )r¢   rß   Úmaxrà   rä   r|   r   )r€   rÉ   rï   r8   Útotal_widthrì   Úsecond_max_columnÚcolumn_differenceræ   Ú
max_reducerõ   s             @rD   rã   zTable._collapse_widthsL  sm  ø€ õ ˜&‘k”kˆØ" YÑ.ˆÝˆx‰=Œ=ð 	7Øð 7 ,°Ò"2Ð"2Ý ð !ð !Ý36°v¸xÑ3HÔ3Hð!ñ !ô !ñ ô �
õ %(ð (ð (ð (ð (å-0°¸Ñ-BÔ-Bð(ñ (ô (ñ %ô %Ð!ð %/Ð1BÑ$BÐ!ðð ð ð å-0°¸Ñ-BÔ-Bðñ ô �õ ˜6‘{”{ð Ð*;ð ØÝ! ,Ð0AÑBÔBÐCÅcÈ&ÁkÄkÑQ�
Ý% l°F¸JÈÑOÔO�å! &™kœk�Ø*¨YÑ6�ð' ð 7 ,°Ò"2Ð"2ð( ˆrF   Úcolumn_indexr•   c              #   ó¦  ‡‡‡‡‡‡K  — | j         Š| j        Š| j        Št          ‰¦  «        }|dk    Š|t	          | j        ¦  «        dz
  k    Ši Šdt          dt          dt          t          t          t          t          f         fˆˆˆˆˆˆfd„}g }|j	        }|j
        }| j        r5 || j        pd¦  «         ||j        ¦  «        z   }	 ||	|j        f¦  «          ||j        pd¦  «        }
|j        D ]} ||
|f¦  «         Œ| j        r5 || j        pd¦  «         ||j        ¦  «        z   } |||j        f¦  «         |r_t&          }t)          |¦  «        D ]F\  }}\  }}t+          | || |||¦  «        ¦  «        t-          |dd	¦  «        p|j        ¦  «        V — ŒGd	S |D ].\  }}t+          ||t-          |dd	¦  «        p|j        ¦  «        V — Œ/d	S )
z3Get all the cells with padding and optional header.r   r   Ú	first_rowÚlast_rowr?   c                 óâ   •— ‰                      | |f¦  «        }|r|S ‰\  }}}}‰	r*‰
st          d||z
  ¦  «        }|st          d||z
  ¦  «        }‰s‰
rd}‰rd}| rd}|rd}||||f}|‰| |f<   |S )Nr   )Úgetr÷   )rþ   rÿ   Úcachedr2   ÚrightÚbottomr0   rv   Ú_padding_cachere   Úfirst_columnÚlast_columnrf   rd   s           €€€€€€rD   Úget_paddingz%Table._get_cells.<locals>.get_padding‚  sÒ   ø€ Ø#×'Ò'¨°HÐ(=Ñ>Ô>ˆFØð Ø�Ø'.Ñ$ˆC�˜ àð 2Ø#ð 0Ý˜q $¨¡,Ñ/Ô/�DØð 2Ý   C¨&¡LÑ1Ô1�Fàð Øð Ø�DØð Ø�EØð Ø�CØð Ø�FØ˜U F¨DÐ1ˆHØ4<ˆN˜I xÐ0Ñ1ØˆOrF   r*   r3   N)re   rf   rd   rß   r|   r]   rQ   r   rP   rx   r�   rh   r-   r+   r/   rH   ri   r.   r,   r   r   rY   Úgetattrr3   )rC   r‰   rü   r•   Úany_paddingr  Ú	raw_cellsÚ_appendr�   r-   Ú
cell_styleÚcellr.   Ú_PaddingÚfirstÚlastr/   rZ   r  re   r  r  rf   rd   s                     @@@@@@rD   Ú
_get_cellszTable._get_cellss  s¢  øøøøøøè è € ð
  Ô0ÐØ”=ˆØ”,ˆÝ˜'‘l”lˆà# qÒ(ˆØ"¥c¨$¬,Ñ&7Ô&7¸!Ñ&;Ò;ˆàMOˆð	¥4ð 	µ4ð 	½EÅ#ÅsÍCÕQTÐBTÔ<Uð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð2 ?Aˆ	ØÔ"ˆØÔ%ˆ	ØÔð 	3Ø$˜9 TÔ%6Ð%<¸"Ñ=Ô=À	À	ØÔ#ñAô Añ ˆLð ˆG�\ 6¤=Ð1Ñ2Ô2Ð2Ø�Y˜vœ|Ð1¨rÑ2Ô2ˆ
Ø”Lð 	(ð 	(ˆDØˆG�Z Ð&Ñ'Ô'Ð'Ð'ØÔð 	3Ø$˜9 TÔ%6Ð%<¸"Ñ=Ô=À	À	ØÔ#ñAô Añ ˆLð ˆG�\ 6¤=Ð1Ñ2Ô2Ð2àð 	ÝˆHÝ4CÀIÑ4NÔ4Nð ð Ñ0��tÑ0˜e ZÝØØ�H˜Z¨¨°U¸DÑ)AÔ)AÑBÔBÝ˜J¨
°DÑ9Ô9ÐL¸V¼_ñô ð ð ð ð ðð ð &/ð ð Ñ!��zÝØØÝ˜J¨
°DÑ9Ô9ÐL¸V¼_ñô ð ð ð ð ðð rF   c                 ó²   — | j         \  }}}}| j        rd}t          ||z
  ¦  «        }| j        s%|dk    rd}|t	          | j        ¦  «        dz
  k    rd}||z   S )zGet extra width from padding.r   r   )rd   re   Úabsrf   r|   r]   )rC   rü   r¶   Ú	pad_rightÚpad_lefts        rD   rÞ   zTable._get_padding_width¼  sx   € à$(¤LÑ!ˆˆ9�a˜àÔ ð 	2ØˆHÝ˜H yÑ0Ñ1Ô1ˆIàŒ}ð 	Ø˜qÒ Ð Ø�Ø�s 4¤<Ñ0Ô0°1Ñ4Ò4Ð4Ø�	à˜)Ñ#Ð#rF   c                 ó²  — |j         }|dk     rt          dd¦  «        S |                      |j        ¦  «        }|j        �3t          |j        |z   |j        |z   ¦  «                             |¦  «        S g }g }|j        }|j        }	t          j        }
|                      ||j        |¦  «        D ]-} |
|||j	        ¦  «        \  }} ||¦  «          |	|¦  «         Œ.t          |rt          |¦  «        nd|rt          |¦  «        n|¦  «                             |¦  «        }|                     |j        €dn	|j        |z   |j         €dn	|j         |z   ¦  «        }|S )z0Get the minimum and maximum width of the column.r   r   N)r8   r   rÞ   r<   r6   Úwith_maximumrx   r  r  rZ   r÷   r¤   r7   )rC   r‰   r�   r•   r8   Úpadding_widthÚ
min_widthsÚ
max_widthsÚ
append_minÚ
append_maxÚget_render_widthr  Ú_minÚ_maxrœ   s                  rD   r–   zTable._measure_columnÌ  sˆ  € ð Ô%ˆ	Ø�qŠ=ˆ=Ý˜q !Ñ$Ô$Ð$à×/Ò/°´Ñ>Ô>ˆØŒ<Ð#åØ”˜}Ñ,¨f¬l¸]Ñ.Jñô çŠl˜9Ñ%Ô%ð&ð !#ˆ
Ø "ˆ
ØÔ&ˆ
ØÔ&ˆ
Ý&œ?ÐØ—O’O G¨V¬]¸FÑCÔCð 	ð 	ˆDØ)Ð)¨'°7¸D¼OÑLÔL‰JˆD�$ØˆJ�tÑÔÐØˆJ�tÑÔÐÐå!Ø)Ð0�C�
‰OŒOˆO¨qØ)Ð8�C�
‰OŒOˆO¨yñ
ô 
÷ Š,�yÑ
!Ô
!ð 	ð "×'Ò'ØÔ$Ð,ˆDˆD°&Ô2BÀ]Ñ2RØÔ$Ð,ˆDˆD°&Ô2BÀ]Ñ2Rñ
ô 
ˆð ÐrF   c              #   óè
  ‡ ‡‡%‡&‡'‡(‡)‡*‡+‡,K  — ‰                      ‰ j        pd¦  «        }|‰                      ‰ j        pd¦  «        z   }ˆˆ fd„t          ‰ j        ¦  «        D ¦   «         }t          t          |Ž ¦  «        }‰ j        r4‰ j                             |t          ‰ j
        ‰j
        ¦  «        ¬¦  «        nd }|r‰ j        s|                     ¦   «         n|}t          j        ¦   «         }	‰ j        }
‰ j        }‰ j        }‰ j        }‰ j        }‰ j        }t          Š%|r½ ‰%|j        |¦  «         ‰%|j        |¦  «         ‰%|j        |¦  «        f ‰%|j        |¦  «         ‰%|j        |¦  «         ‰%|j        |¦  «        f ‰%|j        |¦  «         ‰%|j        |¦  «         ‰%|j        |¦  «        fg}|r% ‰%|                     |¦  «        |¦  «        V — |	V — ng }‰ j        }‰j         Š(t          t=          |¦  «        ¦  «        D �]9\  }\  }}}|o|Š)|o|Š'‰)s‰'s‰ j        ||z
           nd }dŠ*g }‰)s‰'rtA          j!        ¦   «         Š,n ‰( |‰|r|dz
  n|¦  «        ¦  «        Š,t          |||
¦  «        D ]•\  }}}| "                    ||j#        |j$        |j%        d |j&        ¬¦  «        }‰ '                    |j(        | ‰(|j        ¦  «        ‰,z   ¬¦  «        }tS          ‰*tU          |¦  «        ¦  «        Š*| +                    |¦  «         Œ–tS          d„ |D ¦   «         ¦  «        Š+dtX          tX          t                            d	d
dtZ          dt@          dtX          tX          t                            f
ˆ%ˆ'ˆ)ˆ+fd„Š&ˆ%ˆ&ˆ(ˆ*ˆ,fd„t          ||||
¦  «        D ¦   «         |d d …<   |rÅ|r*|r( ‰%| .                    |d|¬¦  «        |¦  «        V — |	V — ||rdn|rdnd         \  }}}|j/         0                    ¦   «         r|n ‰%|j/        ‰,j1        |j        z   ¦  «        } te          ‰*¦  «        D ];}!|r|V — tg          |¦  «        D ]\  }"}#|#|!         E d {V —† |"s| V — Œ|r|V — |	V — Œ<n)te          ‰*¦  «        D ]}!|D ]}#|#|!         E d {V —† Œ|	V — Œ|r,|r*|r( ‰%| .                    |d|¬¦  «        |¦  «        V — |	V — |o|j4        }$|rv|s|s|$rp|sn|r|tU          |¦  «        dz
  k    sV|r‰)sR|r( ‰%| .                    |d|¬¦  «        |z  |¦  «        V — n$ ‰%| .                    |d|¬¦  «        |¦  «        V — |	V — �Œ;|r)|r) ‰%| 5                    |¦  «        |¦  «        V — |	V — d S d S d S )Nr*   c              3   óL   •K  — | ]\  }}‰                      ‰||¦  «        V — Œd S r™   )r  )r”   rü   r•   r‰   rC   s      €€rD   r�   z Table._render.<locals>.<genexpr>ù  sK   øè è € ð 
ð 
á$�˜fð �OŠO˜G \°6Ñ:Ô:ð
ð 
ð 
ð 
ð 
ð 
rF   )Úsafer   )r6   r1   r:   r5   r½   r;   ©r/   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r™   )r|   )r”   r  s     rD   r�   z Table._render.<locals>.<genexpr>N  s(   è è € Ð9Ð9¨4�S ™YœYÐ9Ð9Ð9Ð9Ð9Ð9rF   r  r3   r   r6   r/   r?   c                 ó¾   •— ‰rd}n‰rd}|dk    r‰                      | |‰|¦  «        S |dk    r‰                     | |‰|¦  «        S ‰                     | |‰|¦  «        S )Nr  r2   Úmiddle)Ú	align_topÚalign_middleÚalign_bottom)r  r3   r6   r/   Ú_SegmentÚ
footer_rowÚ
header_rowÚ
row_heights       €€€€rD   Ú
align_cellz!Table._render.<locals>.align_cellP  s…   ø€ ð ð %Ø'�H�HØð %Ø$�Hà˜uÒ$Ð$Ø#×-Ò-¨d°E¸:ÀuÑMÔMÐMØ Ò)Ð)Ø#×0Ò0°°u¸jÈ%ÑPÔPÐPØ×,Ò,¨T°5¸*ÀeÑLÔLÐLrF   c                 óŒ   •— g | ]@\  }}}}‰                       ‰||j        | ‰|j        ¦  «        ‰	z   ¦  «        |‰¦  «        ‘ŒAS rT   )Ú	set_shaper3   r/   )
r”   r6   Ú_cellr  r•   r+  r/  r�   Ú
max_heightrŽ   s
        €€€€€rD   r—   z!Table._render.<locals>.<listcomp>a  sy   ø€ ð ð ð ñ /�E˜5 $¨ð ×"Ò"Ø�JØØœØØ!˜	 %¤+Ñ.Ô.°Ñ:ñ	ô ð Øñ	ô 	ðð ð rF   Úfoot)Úedger   r…   ÚheadÚmidÚrow)6r�   r/   rn   r²   r]   rR   rà   r   Ú
substituter   rc   rh   Úget_plain_headed_boxr   Úlineri   rj   rk   rl   Ú	head_leftÚ
head_rightÚhead_verticalÚmid_leftÚ	mid_rightÚmid_verticalÚ	foot_leftÚ
foot_rightÚfoot_verticalÚget_topr�   r   r^   r   rŒ   rÃ   r1   r:   r5   r;   Úrender_linesrZ   r÷   r|   rx   r	   rP   Úget_rowr¾   ÚstripÚbackground_styleÚranger   rW   Ú
get_bottom)-rC   r‰   r�   rÉ   Útable_stylern   Ú_column_cellsÚ	row_cellsÚ_boxÚnew_liner]   rh   ri   rj   rk   rl   Úbox_segmentsr�   rŠ   r  r  Úrow_cellr8  rH   r6   r  r•   rÅ   Úlinesr0   r  Ú_dividerÚdividerÚline_noÚ	last_cellÚrendered_cellrW   r+  r/  r,  r�   r-  r3  r.  rŽ   s-   ``                                   @@@@@@@@rD   rÈ   zTable._renderó  sô  øøøøøøøøøøè è € ð ×'Ò'¨¬
Ð(8°bÑ9Ô9ˆà" W×%6Ò%6°tÔ7HÐ7NÈBÑ%OÔ%OÑOˆð
ð 
ð 
ð 
ð 
å(1°$´,Ñ(?Ô(?ð
ñ 
ô 
ˆõ
 .2µ#°}Ð2EÑ-FÔ-Fˆ	ð
 ŒxðˆDŒH×ÒØ�i¨¬°wÔ7GÑHÔHð  ñ ô ð ð ð 	ð /3ÐU¸4Ô;KÐUˆt×(Ò(Ñ*Ô*Ð*ÐQUˆå”<‘>”>ˆà”,ˆØÔ&ˆØÔ&ˆØ”Nˆ	Ø”_ˆ
Ø”,ˆåˆØð 	ð �H˜Tœ^¨\Ñ:Ô:Ø�H˜Tœ_¨lÑ;Ô;Ø�H˜TÔ/°Ñ>Ô>ðð �H˜Tœ]¨LÑ9Ô9Ø�H˜Tœ^¨\Ñ:Ô:Ø�H˜TÔ.°Ñ=Ô=ðð �H˜Tœ^¨\Ñ:Ô:Ø�H˜Tœ_¨lÑ;Ô;Ø�H˜TÔ/°Ñ>Ô>ððˆLð" ð Ø�h˜tŸ|š|¨FÑ3Ô3°\ÑBÔBÐBÐBÐBØ���øàˆLàÔ*ˆØÔ%ˆ	å.7½È	Ñ8RÔ8RÑ.SÔ.Sð v	#ñ v	#Ñ*ˆEÑ*�E˜4 ØÐ. ;ˆJØÐ- +ˆJð #ðØ+5ð�”	˜% +Ñ-Ô.Ð.àð ð
 ˆJØ/1ˆEØð ˜Zð Ý!œJ™LœL�	�	à%˜IØ!�M '¸Ð+N¨5°1©9¨9ÈÑOÔOñô �	õ (+¨6°8¸WÑ'EÔ'Eð $ð $Ñ#��t˜VØ!(§¢ØØ"œNØ"œNØ#œ_ØØ$Ô.ð "0ñ "ô "�ð  ×,Ò,Ø”OØ"Ø#˜) D¤JÑ/Ô/°)Ñ;ð -ñ ô �õ
 ! ­S°©Z¬ZÑ8Ô8�
Ø—’˜UÑ#Ô#Ð#Ð#åÐ9Ð9°5Ð9Ñ9Ô9Ñ9Ô9ˆJðMÝ�4¥œ=Ô)ðMà/ðMõ ðMõ ð	Mõ
 •d�7”mÔ$ðMð Mð Mð Mð Mð Mð Mð Mð Mð"ð ð ð ð ð ð ð õ 36°f¸hÈÈwÑ2WÔ2Wðñ ô ˆE�!�!�!‰Hð ð #Øð #˜Kð #Ø"˜(ØŸš V¨V¸)˜ÑDÔDÀlñô ð ð ð ð #�N�N�NØ(4¸%Ð5W°Q°QÈ4ÐFVÀaÀaÐUVÔ(XÑ%��e˜Xð
  ”}×*Ò*Ñ,Ô,ð�H�Hà!˜Ø œ yÔ'AÀHÄNÑ'Rñô ð õ  % ZÑ0Ô0ð 	#ð 	#�GØ ð #Ø"˜
˜
˜
Ý4=¸eÑ4DÔ4Dð *ð *Ñ0˜	 =Ø#0°Ô#9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø(ð *Ø")˜M˜M˜MøØ ð $Ø#˜˜˜Ø"�N�N�N�Nð	#õ  % ZÑ0Ô0ð #ð #�GØ).ð :ð :˜Ø#0°Ô#9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø"�N�N�N�NØð ˜ð  +ð Ø�hØ—L’L ¨°i�LÑ@Ô@À,ñô ð ð ð ð ���ØÐ1 #¤/ˆKØð #˜ð # wð #°+ð #àð#à(ð#à-2µc¸)±n´nÀqÑ6HÒ-HÐ-HØ(ð .IØ-7ð .Ið ð Ø&˜hØ ŸLšL¨°¸Y˜LÑGÔGÈ'ÑQØ(ñô ð ð ð ð ð
 '˜hØ ŸLšL¨°¸Y˜LÑGÔGÈñô ð ð ð ð #�N�N�Nùàð 	�Ið 	Ø�(˜4Ÿ?š?¨6Ñ2Ô2°LÑAÔAÐAÐAÐAØˆNˆNˆNˆNˆNð	ð 	ð 	ð 	rF   )r*   r*   )r?   N)r‰   r"   r�   r#   r?   r'   ),rK   rL   rM   rN   r	   r)   rO   rV   r   Ú
HEAVY_HEADr   rz   r   r!   rP   ÚBoxrQ   r   r   r   r~   Úclassmethodr�   rS   rg   Úsetterr†   rˆ   r�   r   r©   r   rd   r{   r·   rº   rË   r£   rã   rY   r  rÞ   r–   rÈ   rT   rF   rD   r\   r\   ™   sé  € € € € € € ðð ð> �&Œ\ÐÐÑØ
ˆsŒ)€O€O�Oð
 %)Ø&*Ø#Ø#'Ø!$¤Ø#'Ø%+Ø!&ØØØ Ø!ØØ ØØ!Ø48Ø,:Ø,:Ø,0Ø+/Ø-1Ø)1Ø+3Øð7>&ð >&ð >&à˜ ˜Ô$ð>&ð ˜Ô!ð>&ð ˜(Ô#ð	>&ð
 ˜Œ}ð>&ð ˜C”=ð>&ð �c”gÔð>&ð ˜4”.ð>&ð #ð>&ð ð>&ð ð>&ð ð>&ð ð>&ð ð>&ð ð>&ð  ð!>&ð" ð#>&ð$ ð%>&ð& ˜X iÔ0Ô1ð'>&ð( ˜yÔ)ð)>&ð* ˜yÔ)ð+>&ð, ˜yÔ)ð->&ð. ˜iÔ(ð/>&ð0   	Ô*ð1>&ð2 'ð3>&ð4 )ð5>&ð6 ð7>&ð8 
ð9>&ð >&ð >&ð >&ð@ ð &'Ø!%ØØð
ð 
ð 
à˜ ˜Ô$ð
ð #ð
ð ð	
ð
 ð
ð ð
ð 
ð
ð 
ð 
ñ „[ð
ð@ ð6˜ð 6ð 6ð 6ñ „Xð6ð „]ð˜Tð  dð ð ð ñ „]ðð ð˜cð ð ð ñ „Xðð ð˜3ð ð ð ñ „Xðð Yð °sð ¸yð ð ð ð ðØ ðØ+;ðà	ðð ð ð ðB ð˜˜s C¨¨cÐ1Ô2ð ð ð ñ „Xðð „^ðÐ0ð °Wð ð ð ñ „^ðð $&Ø#%ð8$ð
 -1Ø$(Ø,0Ø%)Ø#)Ø*/Ø%/Ø#Ø#'Ø#'Ø#Øð!8$ð 8$ð 8$à ð8$ð !ð8$ð
 ˜yÔ)ð8$ð ˜D”>ð8$ð ˜yÔ)ð8$ð ˜	Ô"ð8$ð !ð8$ð (ð8$ð #ð8$ð ˜Œ}ð8$ð ˜C”=ð8$ð ˜C”=ð8$ð ˜Œ}ð8$ð  ð!8$ð" 
ð#8$ð 8$ð 8$ð 8$ðz &*Ø!ð	-Dð -Dð -DàÐ/Ô0ð-Dð ˜	Ô"ð-Dð ð	-Dð
 
ð-Dð -Dð -Dð -Dð^-ð -ð -ð -ð.Ø ð.Ø+;ð.à	ð.ð .ð .ð .ð`?Ø ð?Ø+;ð?à	ˆcŒð?ð ?ð ?ð ?ðB ð$Ø˜#”Yð$Ø*.¨t¬*ð$ØADð$à	ˆcŒð$ð $ð $ñ „[ð$ðLGØ ðGØ03ðGØ=CðGà	�%ŒðGð Gð Gð GðR$¨sð $°sð $ð $ð $ð $ð %àð%ð "ð%ð ð	%ð
 
ð%ð %ð %ð %ðNtØ ðtØ+;ðtØEIÈ#ÄYðtà	ðtð tð tð tð tð trF   r\   Ú__main__)r"   )ÚReprHighlighter)ÚtimerzTable renderzStar Wars MovieszRich example tabler  )ra   rb   rr   ÚReleasedÚbright_cyanÚcyanT)r-   r/   r:   ÚTitleÚmagentar$  z
Box OfficeÚgreen)r1   r/   zDec 20, 2019z Star Wars: The Rise of Skywalkerz$952,110,690zMay 25, 2018zSolo: A Star Wars Storyz$393,151,347zDec 15, 2017z!Star Wars Ep. V111: The Last Jediz$1,332,539,889zon blackr­   zDec 16, 2016zRogue One: A Star Wars Storyz$1,332,439,889r¾   r?   Nc                 ó¸   — t                                ¦   «          t                                t          | ¦  «        ¦  «         t                                ¦   «          d S r™   )r‰   ÚprintÚruler;   )r¾   s    rD   r+   r+   Ð  s8   € Ý�MŠM‰OŒOˆOÝ�LŠL� 4™œÑ)Ô)Ð)Ý�MŠM‰OŒOˆOˆOˆOrF   zExample Tabler`   rÀ   zexpand=Trueé2   zwidth=50FÚdimr_   zrow_styles=['dim', 'none']z%leading=1, row_styles=['dim', 'none']z+show_lines=True, row_styles=['dim', 'none'])IÚdataclassesr   r   r   Útypingr   r   r   r	   r
   r   r   r   r   r*   r   r   Ú_loopr   r   Ú_pickr   Ú_ratior   r   Úalignr   Újupyterr   Úmeasurer   rd   r   r   Úprotocolr   Úsegmentr   r/   r   r   r¾   r    r!   r‰   r"   r#   r$   r%   r&   r'   r)   rV   rY   r\   rK   Úrich.consoleÚrich.highlighterr^  Ú_timerr_  Útabler{   r·   rz   r+   r;   rg  rg   r6   rm   rl   rk   rT   rF   rD   ú<module>ry     s"  ðØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð Ð Ð Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø &Ð &Ð &Ð &Ð &Ð &Ø !Ð !Ð !Ð !Ð !Ð !Ø  Ð  Ð  Ð  Ð  Ð  Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  àð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðY&ð Y&ð Y&ð Y&ð Y&ñ Y&ô Y&ñ „ðY&ðx ðMð Mð Mð Mð Mñ Mô Mñ „ðMð#ð #ð #ð #ð #ˆJñ #ô #ð #ðNð Nð Nð Nð NˆLñ Nô Nð Nðb ˆzÒÑØ$Ð$Ð$Ð$Ð$Ð$Ø0Ð0Ð0Ð0Ð0Ð0àÐÐÐÐÐà	ˆˆ~Ñ	Ô	ð G/ð G/Ø�Ø$Ø(Ø#ð
ñ 
ô 
ˆð 	×ÒØ ]¸&È$ð 	ñ 	
ô 	
ð 	
ð 	×Ò˜¨	ÐÑ2Ô2Ð2Ø×Ò˜¨w¸gÐÑFÔFÐFà�ŠØØ.Øñ	
ô 	
ð 	
ð
 	�Š�nÐ&?ÀÑPÔPÐPØ�ŠØØ/ØØØð 	ñ 	
ô 	
ð 	
ð 	�ŠØØ*Øñ	
ô 	
ð 	
ð	˜ð 	 ð 	ð 	ð 	ð 	ð
 �'‘)”)ˆØ#�OÑ%Ô%ˆ	ØˆˆÑÔÐØ�Š�e XˆÑ.Ô.Ð.àˆŒØˆˆ}ÑÔÐØ�Š�eÑÔÐàˆŒØˆˆzÑÔÐà�Š�e XˆÑ.Ô.Ð.àˆŒØˆŒØ! 6˜?ˆÔØˆÐ+Ñ,Ô,Ð,à�Š�e XˆÑ.Ô.Ð.àˆŒØˆŒØ! 6˜?ˆÔØˆŒØˆÐ6Ñ7Ô7Ð7Ø�Š�e XˆÑ.Ô.Ð.àˆŒØˆŒØ! 6˜?ˆÔØˆÔØˆŒØˆÐ<Ñ=Ô=Ð=Ø�Š�e XˆÑ.Ô.Ð.ðOG/ð G/ð G/ñ G/ô G/ð G/ð G/ð G/ð G/ð G/ð G/ð G/øøøð G/ð G/ð G/ð G/ð G/ð G/ð Ðs   Ã1HLÌLÌ	L