Ë
    ûûàg
$  ã                   ób   — d Z ddlmZ ddlmZ ddlmZ dZdZdZ	eee	fZ
d„ Zd	„ Z G d
„ d«      Zy)z# Tablib - reStructuredText Support
é    )Úzip_longest)Úmedian)ÚTextWrapperÚleftÚcenterÚrightc                 óZ   — t        | t        «      r| j                  d«      S t        | «      S )Nzutf-8)Ú
isinstanceÚbytesÚdecodeÚstr)Úvalues    úQ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/tablib/formats/_rst.pyÚto_strr      s%   € Ü�%œÔØ�|‰|˜GÓ$Ð$Üˆu‹:Ðó    c                 óN   — | r"t        d„ | j                  «       D «       d¬«      S dS )z}
    Return the length of the longest word in `text`.

    >>> _max_word_len('Python Module for Tabular Datasets')
    8
    c              3   ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Úlen)Ú.0Úwords     r   ú	<genexpr>z _max_word_len.<locals>.<genexpr>   s   è ø€ Ò3˜d”�D—	Ñ3ùs   ‚r   )Údefault)ÚmaxÚsplit)Útexts    r   Ú_max_word_lenr      s&   € ñ DHŒ3Ñ3 d§j¡j£lÔ3¸QÔ?ÐNÈQÐNr   c                   ó¨   — e Zd ZdZdZdZed„ «       Zedefd„«       Z	eedfd„«       Z
edd
„«       Zedd„«       Zed„ «       Zed„ «       Zed„ «       Zy	)Ú
ReSTFormatÚrst)r    éP   c                 óz  — |j                   rF|j                   D �cg c]  }t        |«      g‘Œ }}|j                   D �cg c]  }t        |«      ‘Œ }}nDt        |j                  «      D �cg c]  }g ‘Œ }}t        |j                  «      D �cg c]  }d‘Œ }}|j
                  D ]  }t        t        |d«      r|j                  «       n|«      }t        |«      D ]H  \  }}	t        |	«      }
||   j                  t        |
«      «       t        ||   t        |
«      «      ||<   ŒJ Œ� ||fS c c}w c c}w c c}w c c}w )zn
        Returns a list of string lengths of each column, and a list of
        maximum word lengths.
        r   Úvalues)Úheadersr   r   ÚrangeÚwidthÚdictÚiterÚhasattrr#   Ú	enumerater   Úappendr   )ÚclsÚdatasetÚhÚcolumn_lengthsÚ	word_lensÚ_Úrowr#   ÚiÚvalr   s              r   Ú_get_column_string_lengthsz%ReSTFormat._get_column_string_lengths$   s  € ð �?Š?Ø07·±Ö@¨1œs 1›všhÐ@ˆNÐ@Ø3:·?±?ÖC¨aœ qÕ)ÐCˆIÑCä*/°·±Ó*>Ö? QšbÐ?ˆNÐ?Ü$)¨'¯-©-Ó$8Ö9˜qšÐ9ˆIÐ9Ø—<‘<ò 	FˆCÜ¬'°#°xÔ*@˜#Ÿ*™*œ,ÀcÓJˆFÜ# FÓ+ò F‘��3Ü˜c“{�Ø˜qÑ!×(Ñ(¬¨T«Ô3Ü" 9¨Q¡<´¸tÓ1DÓE�	˜!’ñFð	Fð ˜yÐ(Ð(ùò AùÚCùâ?ùÚ9s   ›D)¾D.Á*	D3Â	D8ú|c           	      óà  ‡‡‡— ‰t         vr-t        dj                  dj                  t         «      «      «      ‚ˆfd„Š|r|dz   nd}|rd|z   nd}d|z   dz   }g }	t	        |‰«      D ]9  \  }
}||_        t        |
«      }|j                  |«      }|	j                  |«       Œ; t        |	ddiŽ}ˆˆfd„|D «       }|D �cg c]%  }dj                  ||j                  |«      |f«      ‘Œ' }}|S c c}w )zJ
        Returns a table row of wrapped values as a list of lines
        z&Value of "justify" must be one of "{}"z", "c                 óŽ   •— ‰t         k(  r| j                  |«      S ‰t        k(  r| j                  |«      S | j	                  |«      S r   )ÚJUSTIFY_LEFTÚljustÚJUSTIFY_CENTERr   Úrjust)Útext_Úwidth_Újustifys     €r   Újustz&ReSTFormat._row_to_lines.<locals>.justB   s@   ø€ Øœ,Ò&Ø—{‘{ 6Ó*Ð*ØœNÒ*Ø—|‘| FÓ+Ð+à—{‘{ 6Ó*Ð*r   ú Ú Ú	fillvaluec              3   óH   •K  — | ]  }ˆˆfd „t        |«      D «       –— Œ y­w)c              3   ó<   •K  — | ]  \  }} ‰|‰|   «      –— Œ y ­wr   © )r   r3   Ú	cell_liner@   Úwidthss      €€r   r   z5ReSTFormat._row_to_lines.<locals>.<genexpr>.<genexpr>T   s    øè ø€ ÒL©L¨A¨y‰T�)˜V A™Y×'ÑLùs   ƒN)r*   )r   Úliner@   rH   s     €€r   r   z+ReSTFormat._row_to_lines.<locals>.<genexpr>S   s&   øè ø€ ò 
àô M¼IÀd»O×LÐLñ
ùs   ƒ")
ÚJUSTIFY_VALUESÚ
ValueErrorÚformatÚjoinÚzipr&   r   Úwrapr+   r   )r,   r#   rH   ÚwrapperÚsepr?   ÚlpadÚrpadÚpadÚcellsr   r&   r   ÚcellÚlinesrI   r@   s     `  `          @r   Ú_row_to_lineszReSTFormat._row_to_lines8   s  ú€ ð
 œ.Ñ(ÜÐE×LÑLØ—‘œNÓ+óó ð ô	+ñ  ˆs�SŠy RˆÙˆs�SŠy RˆØ�C‰i˜#‰oˆØˆÜ ¨Ó/ò 	‰LˆE�5Ø!ˆGŒMÜ˜%“=ˆDØ—<‘< Ó%ˆDØ�L‰L˜Õð		ô
 ˜UÐ1¨bÑ1ˆô
àô
ˆð DIÖI¸4�—‘˜$ §¡¨£°Ð5Õ6ÐIˆÐIØˆùò Js   Â=*C+é   c                 ó\  ‡‡‡— | j                  |«      \  }}|D �cg c]  }t        t        |«      «      ‘Œ }}t        |«      Š‰‰‰t	        |«      z  z
  kD  rˆˆfd„|D «       }n	d„ |D «       }ˆfd„|D «       }t        ||«      D �	�
cg c]  \  }	}
t        |	|
«      ‘Œ }}	}
|S c c}w c c}
}	w )zw
        Returns a list of column widths proportional to the median length
        of the text in their cells.
        c              3   ó.   •K  — | ]  }‰|z  ‰z  –— Œ y ­wr   rF   )r   ÚlensÚmax_table_widthÚtotals     €€r   r   z0ReSTFormat._get_column_widths.<locals>.<genexpr>d   s   øè ø€ ÒUÀ˜_¨tÑ3°uÕ<ÑUùs   ƒc              3   ó    K  — | ]  }|–— Œ y ­wr   rF   )r   r\   s     r   r   z0ReSTFormat._get_column_widths.<locals>.<genexpr>f   s   è ø€ Ò: dœTÑ:ùs   ‚c              3   ó6   •K  — | ]  }|‰kD  r|‰z
  n|–— Œ y ­wr   rF   )r   ÚwÚpad_lens     €r   r   z0ReSTFormat._get_column_widths.<locals>.<genexpr>h   s    øè ø€ ÒR¸q¨¨Gª˜˜Wš¸Ó:ÑRùs   ƒ)r5   Úintr   Úsumr   rN   r   )r,   r-   r]   rb   Ústr_lensr0   r\   Úmedian_lensÚcolumn_widthsra   Úlr^   s     ``       @r   Ú_get_column_widthszReSTFormat._get_column_widthsZ   sª   ú€ ð "×<Ñ<¸WÓEÑˆ�)Ø5=Ö>¨T”sœ6 $›<Õ(Ð>ˆÐ>Ü�KÓ ˆØ�? g´°KÓ0@Ñ&@ÑAÒAÜUÈÔU‰Má:¨kÔ:ˆMãRÀMÔRˆä/2°=À)Ó/L×M¡t q¨!œ˜Q �ÐMˆÑMØÐùò ?ùó Ns   œB#ÂB(Nc           	      óN  — g }t        «       }|€| j                  |d¬«      }dj                  |D �cg c]  }d|z  ‘Œ	 c}«      }|j                  |«       |j                  rD|j                  | j                  |j                  ||dt        ¬«      «       |j                  |«       |j                  D ]L  }t        t        |d«      r|j                  «       n|«      }|j                  | j                  |||d«      «       ŒN |j                  |«       dj                  |«      S c c}w )	zP
        Returns reStructuredText grid table representation of dataset.
        é   )rb   z  ú=rB   )rQ   r?   r#   ú
©r   ri   rM   r+   r$   ÚextendrX   r;   r'   r(   r)   r#   )	r,   r-   rg   rW   rP   ra   Úborderr2   r#   s	            r   Úexport_set_as_simple_tablez%ReSTFormat.export_set_as_simple_tablem   s	  € ð
 ˆÜ“-ˆØÐ Ø×2Ñ2°7ÀAÐ2ÓFˆMØ—‘¨]Ö;¨˜C !›GÒ;Ó<ˆà�‰�VÔØ�?Š?Ø�L‰L˜×*Ñ*Ø—‘ØØØÜ&ð +ó ô ð �L‰L˜Ô Ø—<‘<ò 	PˆCÜ¬'°#°xÔ*@˜#Ÿ*™*œ,ÀcÓJˆFØ�L‰L˜×*Ñ*¨6°=À'È2ÓNÕOð	Pð 	�‰�VÔØ�y‰y˜ÓÐùò! <s   ±D"c                 ó¬  — g }t        «       }|€| j                  |«      }ddj                  |D �cg c]  }d|z  ‘Œ	 c}«      z   dz   }ddj                  |D �cg c]  }d|z  ‘Œ	 c}«      z   dz   }|j                  |«       |j                  rC|j                  | j                  |j                  ||t        ¬	«      «       |j                  |«       |j                  D ]\  }t        t        |d
«      r|j                  «       n|«      }	|j                  | j                  |	||«      «       |j                  |«       Œ^ dj                  |«      S c c}w c c}w )a…  
        Returns reStructuredText grid table representation of dataset.


        >>> from tablib import Dataset
        >>> from tablib.formats import registry
        >>> bits = ((0, 0), (1, 0), (0, 1), (1, 1))
        >>> data = Dataset()
        >>> data.headers = ['A', 'B', 'A and B']
        >>> for a, b in bits:
        ...     data.append([bool(a), bool(b), bool(a * b)])
        >>> rst = registry.get_format('rst')
        >>> print(rst.export_set(data, force_grid=True))
        +-------+-------+-------+
        |   A   |   B   | A and |
        |       |       |   B   |
        +=======+=======+=======+
        | False | False | False |
        +-------+-------+-------+
        | True  | False | False |
        +-------+-------+-------+
        | False | True  | False |
        +-------+-------+-------+
        | True  | True  | True  |
        +-------+-------+-------+

        z+=z=+=rl   z=+z+-z-+-ú-z-+)r?   r#   rm   rn   )
r,   r-   rg   rW   rP   ra   Ú
header_sepÚrow_sepr2   r#   s
             r   Úexport_set_as_grid_tablez#ReSTFormat.export_set_as_grid_tableˆ   s2  € ð: ˆÜ“-ˆØÐ Ø×2Ñ2°7Ó;ˆMØ˜EŸJ™J¸Ö'G°A¨¨a«Ò'GÓHÑHÈ4ÑOˆ
Ø˜Ÿ™°mÖ$D° S¨1£WÒ$DÓEÑEÈÑLˆà�‰�WÔà�?Š?Ø�L‰L˜×*Ñ*Ø—‘ØØÜ&ð	 +ó ô ð �L‰L˜Ô$Ø—<‘<ò 	"ˆCÜ¬'°#°xÔ*@˜#Ÿ*™*œ,ÀcÓJˆFØ�L‰L˜×*Ñ*¨6°=À'ÓJÔKØ�L‰L˜Õ!ð	"ð �y‰y˜ÓÐùò# (HùÚ$Ds   °E
ÁE
c                 ó€   — |�t        |«      }t        |«      |kD  ry|D ]  }t        |«      }t        |«      |kD  sŒ y y)a[  
        Use a simple table if the text in the first column is never wrapped


        >>> from tablib.formats import registry
        >>> rst = registry.get_format('rst')
        >>> rst._use_simple_table('menu', ['egg', 'bacon'], 10)
        True
        >>> rst._use_simple_table(None, ['lobster thermidor', 'spam'], 10)
        False

        FT)r   r   )r,   Úhead0Úcol0Úwidth0rV   s        r   Ú_use_simple_tablezReSTFormat._use_simple_table¼   sN   € ð ÐÜ˜5“MˆEÜ�5‹z˜FÒ"ØØò 	ˆDÜ˜$“<ˆDÜ�4‹y˜6Ó!Ùð	ð r   c                 ól  — |j                   sy|j                  dd«      }|j                  d| j                  «      }| j                  ||«      }| j	                  |j
                  r|j
                  d   nd|j                  d«      |d   «      }|r|s| j                  ||«      S | j                  ||«      S )a†  
        Returns reStructuredText table representation of dataset.

        Returns a simple table if the text in the first column is never
        wrapped, otherwise returns a grid table.


        >>> from tablib import Dataset
        >>> bits = ((0, 0), (1, 0), (0, 1), (1, 1))
        >>> data = Dataset()
        >>> data.headers = ['A', 'B', 'A and B']
        >>> for a, b in bits:
        ...     data.append([bool(a), bool(b), bool(a * b)])
        >>> table = data.rst
        >>> table.split('\n') == [
        ...     '=====  =====  =====',
        ...     '  A      B    A and',
        ...     '                B  ',
        ...     '=====  =====  =====',
        ...     'False  False  False',
        ...     'True   False  False',
        ...     'False  True   False',
        ...     'True   True   True ',
        ...     '=====  =====  =====',
        ... ]
        True

        rB   Ú
force_gridFr]   r   N)	r'   ÚgetÚMAX_TABLE_WIDTHri   r{   r$   Úget_colrq   rv   )r,   r-   Úkwargsr}   r]   rg   Úuse_simple_tables          r   Ú
export_setzReSTFormat.export_setÔ   s­   € ð< �|Š|ØØ—Z‘Z ¨eÓ4ˆ
Ø Ÿ*™*Ð%6¸×8KÑ8KÓLˆØ×.Ñ.¨w¸ÓHˆà×0Ñ0Ø")§/¢/ˆG�O‰O˜AÒ°tØ�O‰O˜AÓØ˜!Ñó
Ðñ
 ¡JØ×1Ñ1°'¸=ÓIÐIà×/Ñ/°¸ÓGÐGr   c                 óL   ‡ — dj                  ˆ fd„|j                  D «       «      S )z—
        reStructuredText representation of a Databook.

        Tables are separated by a blank line. All tables use the grid
        format.
        z

c              3   óD   •K  — | ]  }‰j                  |d ¬«      –— Œ y­w)T)r}   N)rƒ   )r   r-   r,   s     €r   r   z)ReSTFormat.export_book.<locals>.<genexpr>
  s&   øè ø€ ò >Ø&ð Ÿ>™>¨'¸d˜>×Cñ >ùs   ƒ )rM   Ú	_datasets)r,   Údatabooks   ` r   Úexport_bookzReSTFormat.export_book  s)   ø€ ð �{‰{ó >Ø*2×*<Ñ*<ô>ó >ð 	>r   r   )Ú__name__Ú
__module__Ú__qualname__ÚtitleÚ
extensionsr   Úclassmethodr5   r9   rX   ri   rq   rv   r{   rƒ   rˆ   rF   r   r   r   r      s¿   „ Ø€EØ€Jà€Oàñ)ó ð)ð& Ø8;À\ò ó ððB Ø9HÐRSò ó ðð$ ò ó ð ð4 ò1 ó ð1 ðf ñó ðð. ñ+Hó ð+HðZ ñ>ó ñ>r   r   N)Ú__doc__Ú	itertoolsr   Ú
statisticsr   Útextwrapr   r9   r;   ÚJUSTIFY_RIGHTrJ   r   r   r   rF   r   r   ú<module>r”      sG   ðñõ "Ý Ý  à€Ø€Ø€Ø °Ð>€òòO÷m>ò m>r   