Ë
    GKÕiû"  ã                   ó‚  — d dl Z d dlZd dlZd dlZd dl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ZdZdZd	d
ddœZ G d„ de«      Z G d„ d«      Zej-                   e«       ¬«       dededefd„Zdedefd„Zd„ Zdedefd„Zdedede
e   fd„Z G d„ de j<                  «      Z G d„ de«      Z  G d„ d e«      Z!y)!é    N)ÚEnum)ÚAnyÚDictÚListÚOptional)ÚUAConfig)ÚTxtColorz
\033\[.*?mz\033]8;;.+?\033\\+z]8;;\ú-ÚxÚ*)u   â€”u   âœ˜u   âœ”c                   ó   — e Zd ZdZdZy)ÚContentAlignmentÚlÚrN)Ú__name__Ú
__module__Ú__qualname__ÚLEFTÚRIGHT© ó    ú8/usr/lib/python3/dist-packages/uaclient/cli/formatter.pyr   r      s   „ Ø€DØ�Er   r   c                   ó<   — e Zd ZdZdZedefd„«       Zedd„«       Zy)ÚProOutputFormatterConfigTÚcfgc                 ó  — t         j                  j                  d uxr* dt         j                  j                  j                  «       v | _        t         j                  j                  «       xr t        j                  d«      d u | _        y )NzUTF-8ÚNO_COLOR)	ÚsysÚstdoutÚencodingÚupperÚuse_utf8ÚisattyÚosÚgetenvÚ	use_color)Úclsr   s     r   ÚinitzProOutputFormatterConfig.init!   sf   € ô �J‰J×Ñ tÐ+ò 7Øœ3Ÿ:™:×.Ñ.×4Ñ4Ó6Ð6ð 	Œô
 Ÿ
™
×)Ñ)Ó+ÒM´·	±	¸*Ó0EÈÐ0Mˆ�r   Nc                 ó   — d| _         y )NF)r&   )r'   s    r   Údisable_colorz&ProOutputFormatterConfig.disable_color*   s	   € àˆ�r   )ÚreturnN)	r   r   r   r"   r&   Úclassmethodr   r(   r*   r   r   r   r   r      s>   „ Ø€HØ€Ið ðN�xò Nó ðNð òó ñr   r   )r   ÚtextÚurlr+   c                 ó(   — dj                  || ¬«      S )Nz]8;;{url}\{text}]8;;\)r.   r-   )Úformat)r-   r.   s     r   Úcreate_linkr1   2   s   € Ø4×;Ñ;ÀÈ$Ð;ÓOÐOr   c                 ó°   — t        j                  t        d| «      }t        j                  t        d|«      }|j	                  t
        d«      }t        |«      S )NÚ )ÚreÚsubÚCOLOR_FORMATTING_PATTERNÚLINK_START_PATTERNÚreplaceÚLINK_ENDÚlen)r-   Úresults     r   Úreal_lenr<   6   sB   € ä�V‰VÔ,¨b°$Ó7€Fä�V‰VÔ&¨¨FÓ3€FØ�^‰^œH bÓ)€Fäˆv‹;Ðr   c                  ó|   — t         j                  j                  «       rt        j                  «       j
                  S y)Niç  )r   r   r#   r$   Úget_terminal_sizeÚcolumnsr   r   r   Ú_get_default_lengthr@   @   s,   € Ü
‡z�z×ÑÔÜ×#Ñ#Ó%×-Ñ-Ð-ð r   c                 óº  — | }t         j                  st        j                  t        d| «      }t         j
                  sNt        j                  «       D ]  \  }}|j                  ||«      }Œ |j                  dd«      j                  «       }t        j                  j                  «       s1t        j                  t        d|«      }|j                  t        d«      }|S )Nr3   ÚasciiÚignore)r   r&   r4   r5   r6   r"   ÚUTF8_ALTERNATIVESÚitemsr8   ÚencodeÚdecoder   r   r#   r7   r9   )r-   ÚoutputÚcharÚalternatives       r   Úprocess_formatter_configrK   H   sª   € Ø€FÜ#×-Ò-Ü—‘Ô0°"°dÓ;ˆä#×,Ò,Ü!2×!8Ñ!8Ó!:ò 	7ÑˆD�+Ø—^‘^ D¨+Ó6‰Fð	7à—‘˜w¨Ó1×8Ñ8Ó:ˆä�:‰:×ÑÔÜ—‘Ô*¨B°Ó7ˆØ—‘¤¨"Ó-ˆà€Mr   Ú	max_widthc                 ó(  — t        | «      |k  r| gS | j                  «       }g }d}|D ]F  }t        |«      t        |«      z   |k\  r"|j                  |j                  «       «       |}Œ?|d|z   z  }ŒH |r|j                  |j                  «       «       |S )Nr3   ú )r<   ÚsplitÚappendÚstrip)r-   rL   ÚwordsÚwrapped_linesÚcurrent_lineÚwords         r   Ú	wrap_textrV   [   s›   € Ü�ƒ~˜Ò"Øˆvˆà�J‰J‹L€EØ€MØ€Làò 'ˆÜ�LÓ!¤H¨T£NÑ2°iÒ?Ø× Ñ  ×!3Ñ!3Ó!5Ô6Ø‰Là˜C $™JÑ&‰Lð'ñ Ø×Ñ˜\×/Ñ/Ó1Ô2àÐr   c                   óH   — e Zd Zej                  ddee   defd„«       Zd„ Z	y)ÚProOutputFormatterNÚline_lengthr+   c                  ó   — y ©Nr   )ÚselfrY   s     r   Ú	to_stringzProOutputFormatter.to_stringq   s   € àr   c                 ó"   — | j                  «       S r[   )r]   ©r\   s    r   Ú__str__zProOutputFormatter.__str__u   s   € Ø�~‰~ÓÐr   r[   )
r   r   r   ÚabcÚabstractmethodr   ÚintÚstrr]   r`   r   r   r   rX   rX   p   s1   „ Ø×Ññ X¨c¡]ð ¸cò ó ðó r   rX   c            	       óú   — e Zd ZdZ	 	 	 ddeee      deeee         deee      fd„Ze	dede
d	efd
„«       Ze	dede
d	efd„«       Zd	ee
   fd„Zddee
   d	efd„Zd	e
fd„Zde
d	eee      fd„Zdee   d	efd„Zy)ÚTablez  NÚheadersÚrowsÚ	alignmentc                 ó’  — |�|ng | _         |�|ng | _        | j                  «       | _        |�|n&t        j
                  gt        | j                  «      z  | _        t        | j                  «      t        | j                  «      k7  r-t        dj                  t        | j                  «      «      «      ‚| j                  d   | _
        y )Nz&'alignment' list should have length {}éÿÿÿÿ)rg   rh   Ú_get_column_sizesÚcolumn_sizesr   r   r:   ri   Ú
ValueErrorr0   Úlast_column_size)r\   rg   rh   ri   s       r   Ú__init__zTable.__init__|   s½   € ð #*Ð"5‘w¸2ˆŒØ Ð,‘D°"ˆŒ	Ø ×2Ñ2Ó4ˆÔð Ð$ñ ä"×'Ñ'Ð(¬3¨t×/@Ñ/@Ó+AÑAð 	Œô
 ˆt�~‰~Ó¤# d×&7Ñ&7Ó"8Ò8ÜØ8×?Ñ?Ü˜×)Ñ)Ó*óóð ð
 !%× 1Ñ 1°"Ñ 5ˆÕr   ÚstringÚtotal_lengthr+   c                 ó<   — t        | «      }||k\  r| S | d||z
  z  z   S ©NrN   ©r<   ©rq   rr   Ú
str_lengths      r   ÚljustzTable.ljust’   s.   € ä˜fÓ%ˆ
Ø˜Ò%ØˆMØ˜˜|¨jÑ8Ñ9Ñ9Ð9r   c                 ó<   — t        | «      }||k\  r| S d||z
  z  | z   S rt   ru   rv   s      r   ÚrjustzTable.rjust™   s.   € ä˜fÓ%ˆ
Ø˜Ò%ØˆMØ�l ZÑ/Ñ0°6Ñ9Ð9r   c                 ó2  ‡‡— | j                   s| j                  st        d«      ‚| j                  r't        d„ | j                  D «       «      rt        d«      ‚g }| j                   r|j	                  | j                   «       | j                  r|j                  | j                  «       t        |d   «      Št        ˆfd„|D «       «      st        d«      ‚g }t        t        |d   «      «      D ]%  Š|j	                  t        ˆfd„|D «       «      «       Œ' |S )Nz:Empty table not supported. Please provide headers or rows.c              3   ó8   K  — | ]  }t        |«      d k(  –— Œ y­w)r   N©r:   )Ú.0Úitems     r   ú	<genexpr>z*Table._get_column_sizes.<locals>.<genexpr>¦   s   è ø€ ÒB°œS ›Y¨!�^ÑBùs   ‚z=Empty row not supported. Please provide content for each row.r   c              3   ó:   •K  — | ]  }t        |«      ‰k(  –— Œ y ­wr[   r}   )r~   r   Úexpected_lengths     €r   r€   z*Table._get_column_sizes.<locals>.<genexpr>²   s   øè ø€ ÒH°D”3�t“9 Õ/ÑHùs   ƒzQMixed lengths in table content. Please provide headers / rows of the same length.c              3   óL   •K  — | ]  }t        t        |‰   «      «      –— Œ y ­wr[   )r<   rd   )r~   r   Úis     €r   r€   z*Table._get_column_sizes.<locals>.<genexpr>»   s   øè ø€ ÒC¨t”HœS  a¡›\×*ÑCùs   ƒ!$)
rg   rh   rn   ÚanyrP   Úextendr:   ÚallÚrangeÚmax)r\   Úall_contentrm   r‚   r„   s      @@r   rl   zTable._get_column_sizes    sú   ù€ Ø�|Š| D§I¢IÜØLóð ð �9Š9œÑB¸¿	¹	ÔBÔBÜØOóð ð ˆØ�<Š<Ø×Ñ˜tŸ|™|Ô,Ø�9Š9Ø×Ñ˜tŸy™yÔ)ä˜k¨!™nÓ-ˆÜÓH¸KÔHÔHÜðDóð ð
 ˆÜ”s˜; q™>Ó*Ó+ò 	ˆAØ×ÑÜÓC°{ÔCÓCõð	ð
 Ðr   rY   c                 ór  — |€
t        «       }| j                  }| j                  «       |kD  r| j                  |«      }d}| j                  rC|t
        j                  | j                  | j                  «      z   t
        j                  z   dz   z  }|D ]  }|| j                  |«      z  }|dz  }Œ t        |«      S )Nr3   ú
)
r@   rh   Ú_get_line_lengthÚwrap_last_columnrg   r	   ÚBOLDÚ	_fill_rowÚENDCrK   )r\   rY   rh   rH   Úrows        r   r]   zTable.to_stringÀ   s¼   € ØÐÜ-Ó/ˆKà�y‰yˆØ× Ñ Ó" [Ò0Ø×(Ñ(¨Ó5ˆDØˆØ�<Š<ØÜ—‘Ø—.‘. §¡Ó.ñ/ä—-‘-ñ ð ññˆFð ò 	ˆCØ�d—n‘n SÓ)Ñ)ˆFØ�d‰N‰Fð	ô (¨Ó/Ð/r   c                 óŠ   — t        | j                  «      t        | j                  «      dz
  t        | j                  «      z  z   S )Né   )Úsumrm   r:   Ú	SEPARATORr_   s    r   r�   zTable._get_line_lengthÕ   s@   € Ü�4×$Ñ$Ó%¬¨T×->Ñ->Ó)?À!Ñ)CÄsØ�N‰NóH
ñ )
ñ 
ð 	
r   Ú
max_lengthc                 ó  — |t        | j                  d d «      t        | j                  «      dz
  t        | j                  «      z  z   z
  | _        g }| j
                  D ]ž  }t        |d   «      | j                  k  r|j                  |«       Œ0t        |d   | j                  «      }|j                  |d d |d   gz   «       |dd  D ]3  }dgt        | j                  «      dz
  z  |gz   }|j                  |«       Œ5 Œ  |S )Nrk   r”   r   rN   )r•   rm   r:   r–   ro   rh   rP   rV   )r\   r—   Únew_rowsr’   Úwrapped_last_columnÚ
extra_lineÚnew_rows          r   rŽ   zTable.wrap_last_columnÚ   s  € Ø *Ü�×!Ñ! # 2Ð&Ó'Ü�4×$Ñ$Ó%¨Ñ)¬S°·±Ó-@Ñ@ñAñ!
ˆÔð ˆØ—9‘9ò 
	-ˆCÜ�3�r‘7‹|˜t×4Ñ4Ò4Ø—‘ Õ$ä&/°°B±¸×9NÑ9NÓ&OÐ#Ø—‘  C R Ð,?ÀÑ,BÐ+CÑ CÔDØ"5°a°bÐ"9ò -�JØ"˜e¤s¨4×+<Ñ+<Ó'=ÀÑ'AÑBØ"ðFñ �Gð —O‘O GÕ,ñ	-ð
	-ð ˆr   r’   c                 óf  — d}t        t        |«      dz
  «      D ]¨  }| j                  |   t        j                  k(  r3|| j                  ||   | j                  |   «      | j                  z   z  }ŒV| j                  |   t        j                  k(  sŒw|| j                  ||   | j                  |   «      | j                  z   z  }Œª | j                  d   t        j                  k(  r
||d   z  }|S | j                  d   t        j                  k(  r"|| j                  |d   | j                  «      z  }|S )Nr3   r”   rk   )rˆ   r:   ri   r   r   rx   rm   r–   r   rz   ro   )r\   r’   rH   r„   s       r   r�   zTable._fill_rowí   s"  € ØˆÜ”s˜3“x !‘|Ó$ò 	ˆAØ�~‰~˜aÑ Ô$4×$9Ñ$9Ò9ØØ—J‘J˜s 1™v t×'8Ñ'8¸Ñ';Ó<¸t¿~¹~ÑMñ‘ð —‘ Ñ"Ô&6×&<Ñ&<Ó<ØØ—J‘J˜s 1™v t×'8Ñ'8¸Ñ';Ó<¸t¿~¹~ÑMñ‘ð	ð �>‰>˜"ÑÔ!1×!6Ñ!6Ò6Ø�c˜"‘gÑˆFð ˆð �^‰^˜BÑÔ#3×#9Ñ#9Ò9Ø�d—j‘j  R¡¨$×*?Ñ*?Ó@Ñ@ˆFØˆr   )NNNr[   )r   r   r   r–   r   r   rd   r   rp   Ústaticmethodrc   rx   rz   rl   r]   r�   rŽ   r�   r   r   r   rf   rf   y   s  „ Ø€Ið (,Ø*.Ø6:ñ	6à˜$˜s™)Ñ$ð6ð �t˜D ™I‘Ñ'ð6ð ˜DÐ!1Ñ2Ñ3ó	6ð, ð:�cð :¨ð :°ò :ó ð:ð ð:�cð :¨ð :°ò :ó ð:ð 4¨¡9ó ñ@0 X¨c¡]ð 0¸có 0ð*
 #ó 
ð
¨3ð °4¸¸S¹	±?ó ð&˜T #™Yð ¨3ô r   rf   c                   óT   — e Zd ZdZdZ	 	 d
dee   deee      fd„Z	ddee
   defd	„Zy)ÚBlocké   rN   NÚtitleÚcontentc                 ó4   — || _         |�|| _        y g | _        y r[   )r¢   r£   )r\   r¢   r£   s      r   rp   zBlock.__init__  s   € ð
 ˆŒ
Ø")Ð"5�wˆ�¸2ˆ�r   rY   r+   c                 ó
  — |€
t        «       }|| j                  z  }d}| j                  rE|t        j                  t        j
                  z   | j                  z   t        j                  z   dz   z  }| j                  D ]|  }t        |t        «      r|j                  |¬«      }n'dj                  t        t        |«      |«      «      dz   }|t        j                  || j                   | j                  z  «      z  }Œ~ t#        |«      S )Nr3   rŒ   )rY   )r@   ÚINDENT_SIZEr¢   r	   r�   ÚDISABLEGREYr‘   r£   Ú
isinstancerX   r]   ÚjoinrV   rd   ÚtextwrapÚindentÚINDENT_CHARrK   )r\   rY   rH   r   Úitem_strs        r   r]   zBlock.to_string  sõ   € ØÐÜ-Ó/ˆKà�t×'Ñ'Ñ'ˆàˆà�:Š:ØÜ—‘Ü×&Ñ&ñ'à—*‘*ñô —-‘-ñ ð ñ	ñˆFð —L‘Lò 	ˆDÜ˜$Ô 2Ô3ØŸ>™>°k˜>ÓB‘àŸ9™9¤Y¬s°4«y¸+Ó%FÓGÈ$ÑN�à”h—o‘oØ˜$×*Ñ*¨T×-=Ñ-=Ñ=óñ ‰Fð	ô (¨Ó/Ð/r   )NNr[   )r   r   r   r¦   r¬   r   rd   r   r   rp   rc   r]   r   r   r   r    r    ÿ   sO   „ Ø€KØ€Kð  $Ø'+ñ>à˜‰}ð>ð ˜$˜s™)Ñ$ó>ñ0 X¨c¡]ð 0¸cô 0r   r    )"ra   r$   r4   r   rª   Úenumr   Útypingr   r   r   r   Úuaclient.configr   Úuaclient.messagesr	   r6   r7   r9   rD   r   r   r(   rd   r1   rc   r<   r@   rK   rV   ÚABCrX   rf   r    r   r   r   ú<module>r³      s  ðÛ 
Û 	Û 	Û 
Û Ý ß ,Ó ,å $Ý &à(Ð Ø*Ð Ø€àØØñÐ ô�tô ÷ñ ð& × Ñ ¡(£*Ð Ô -ðP�cð P ð P¨ó Pð�3ð ˜3ó òð 3ð ¨3ó ð&�Cð  Cð ¨D°©Ió ô* ˜Ÿ™ô  ôCÐô CôL'0Ðõ '0r   