+
    g"                     j   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	H
t
Ht ^ RIHt ^ RIHt RtRtRtR	R
RRRR/t ! R R]4      t ! R R4      t]P-                  ]! 4       R7       R R ltR R ltR tR R ltR R lt ! R R] P8                  4      t ! R R ]4      t ! R! R"]4      tR# )#    N)Enum)AnyDictListOptionalUAConfig)TxtColorz
\033\[.*?mz\033]8;;.+?\033\\+z]8;;\u   —-u   ✘xu   ✔*c                       ] tR t^tRtRtRtR# )ContentAlignmentlr N)__name__
__module____qualname____firstlineno__LEFTRIGHT__static_attributes__r       8/usr/lib/python3/dist-packages/uaclient/cli/formatter.pyr   r      s    DEr   r   c                   `   a  ] tR t^t o RtRt]V 3R lR l4       t]V 3R lR l4       tRt	V t
R# )ProOutputFormatterConfigTc                    < V ^8  d   QhRS[ /# )   cfgr   )format__classdict__s   "r   __annotate__%ProOutputFormatterConfig.__annotate__"   s     N Nx Nr   c                4   \         P                  P                  R J;'       d,    R\         P                  P                  P                  4       9   V n        \         P                  P                  4       ;'       d    \        P                  ! R4      R J V n        R # )NzUTF-8NO_COLOR)	sysstdoutencodingupperuse_utf8isattyosgetenv	use_color)clsr    s   &&r   initProOutputFormatterConfig.init!   sn     JJt+ 7 73::..4466 	
 

))+MM		*0E0Mr   c                   < V ^8  d   QhRR/# )r   returnNr   )r!   r"   s   "r   r#   r$   +   s      d r   c                    R V n         R# )FN)r/   )r0   s   &r   disable_color&ProOutputFormatterConfig.disable_color*   s	    r   r   N)r   r   r   r   r+   r/   classmethodr1   r6   r   __classdictcell__r"   s   @r   r   r      s9     HI N N  r   r   )r    c                <    V ^8  d   QhR\         R\         R\         /# )r   texturlr4   str)r!   s   "r   r#   r#   2   s&     P Pc P P Pr   c                 &    R P                  WR7      # )z]8;;{url}\{text}]8;;\)r=   r<   )r!   )r<   r=   s   &&r   create_linkrA   2   s    4;;;OOr   c                0    V ^8  d   QhR\         R\        /# r   r<   r4   r?   int)r!   s   "r   r#   r#   6   s      3 3 r   c                     \         P                  ! \        R V 4      p\         P                  ! \        R V4      pVP	                  \
        R 4      p\        V4      # ) )resubCOLOR_FORMATTING_PATTERNLINK_START_PATTERNreplaceLINK_ENDlen)r<   results   & r   real_lenrP   6   sB    VV,b$7FVV&F3F^^Hb)Fv;r   c                      \         P                  P                  4       '       d    \        P                  ! 4       P
                  # R # )i  )r'   r(   r,   r-   get_terminal_sizecolumnsr   r   r   _get_default_lengthrT   @   s/    
zz##%--- r   c                0    V ^8  d   QhR\         R\         /# rC   r>   )r!   s   "r   r#   r#   H   s      3 3 r   c                    T p\         P                  '       g   \        P                  ! \        R V 4      p\         P
                  '       gO   \        P                  4        F  w  r#VP                  W#4      pK  	  VP                  RR4      P                  4       p\        P                  P                  4       '       g3   \        P                  ! \        R V4      pVP                  \        R 4      pV# )rG   asciiignore)r   r/   rH   rI   rJ   r+   UTF8_ALTERNATIVESitemsrL   encodedecoder'   r(   r,   rK   rM   )r<   outputcharalternatives   &   r   process_formatter_configr`   H   s    F#---0"d;#,,,!2!8!8!:D^^D6F ";w188:::*B7"-Mr   c                R    V ^8  d   QhR\         R\        R\        \         ,          /# )r   r<   	max_widthr4   )r?   rE   r   )r!   s   "r   r#   r#   [   s%      C C DI r   c                 Z   \        V 4      V8:  d   V .# V P                  4       p. pR pV FV  p\        V4      \        V4      ,           V8  d$   VP                  VP                  4       4       TpKF  VRV,           ,          pKX  	  V'       d    VP                  VP                  4       4       V# )rG    )rP   splitappendstrip)r<   rb   wordswrapped_linescurrent_linewords   &&    r   	wrap_textrl   [   s    ~"vJJLEMLL!HTN2i?  !3!3!56LC$J&L  \//12r   c                   Z   a  ] tR t^pt o ]P
                  RV 3R lR ll4       tR tRtV t	R# )ProOutputFormatterNc                6   < V ^8  d   QhRS[ S[,          RS[/# r   line_lengthr4   r   rE   r?   )r!   r"   s   "r   r#   ProOutputFormatter.__annotate__r   s      Xc] c r   c                    R # Nr   )selfrq   s   &&r   	to_stringProOutputFormatter.to_stringq   s    r   c                "    V P                  4       # ru   )rw   rv   s   &r   __str__ProOutputFormatter.__str__u   s    ~~r   r   ru   )
r   r   r   r   abcabstractmethodrw   r{   r   r9   r:   s   @r   rn   rn   p   s,          r   rn   c                      a  ] tR t^yt o RtRV 3R lR llt]V 3R lR l4       t]V 3R lR l4       tV 3R lR	 lt	RV 3R
 lR llt
V 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )TableNc                   < V ^8  d   QhRS[ S[S[,          ,          RS[ S[S[S[,          ,          ,          RS[ S[S[,          ,          /# )r   headersrows	alignment)r   r   r?   r   )r!   r"   s   "r   r#   Table.__annotate__|   sJ     6 6$s)$6 tDI'6 D!123	6r   c                   Ve   TM. V n         Ve   TM. V n        V P                  4       V n        Ve   TM*\        P
                  .\        V P                  4      ,          V n        \        V P                  4      \        V P                  4      8w  d.   \        RP                  \        V P                  4      4      4      hV P                  R,          V n
        R # )Nz&'alignment' list should have length {})r   r   _get_column_sizescolumn_sizesr   r   rN   r   
ValueErrorr!   last_column_size)rv   r   r   r   s   &&&&r   __init__Table.__init__|   s     #*"5w2 ,D"	 224 $ "''(3t/@/@+AA 	
 t~~#d&7&7"888??))* 
 !% 1 1" 5r   c                ,   < V ^8  d   QhRS[ RS[RS[ /# r   stringtotal_lengthr4   rD   )r!   r"   s   "r   r#   r      "     : :c : : :r   c                T    \        V 4      pW!8  d   V # V R W,
          ,          ,           # rd   rP   r   r   
str_lengths   && r   ljustTable.ljust   s*    f%
%M|8999r   c                ,   < V ^8  d   QhRS[ RS[RS[ /# r   rD   )r!   r"   s   "r   r#   r      r   r   c                T    \        V 4      pW!8  d   V # R W,
          ,          V ,           # r   r   r   s   && r   rjustTable.rjust   s*    f%
%Ml/0699r   c                0   < V ^8  d   QhRS[ S[,          /# r   r4   )r   rE   )r!   r"   s   "r   r#   r      s      49 r   c                @  aa V P                   '       g   V P                  '       g   \        R 4      hV P                  '       dZ   \        ;QJ d&    R V P                   4       F  '       g   K   RM	  RM! R V P                   4       4      '       d   \        R4      h. pV P                   '       d   VP	                  V P                   4       V P                  '       d   VP                  V P                  4       \        V^ ,          4      o\        ;QJ d    V3R lV 4       F  '       d   K   RM	  RM! V3R lV 4       4      '       g   \        R4      h. p\        \        V^ ,          4      4       F'  oVP	                  \        V3R lV 4       4      4       K)  	  V# )z:Empty table not supported. Please provide headers or rows.c              3   >   "   T F  p\        V4      ^ 8H  x  K  	  R# 5i)r   NrN   ).0items   & r   	<genexpr>*Table._get_column_sizes.<locals>.<genexpr>   s     B	SY!^	s   TFz=Empty row not supported. Please provide content for each row.c              3   @   <"   T F  p\        V4      S8H  x  K  	  R # 5iru   r   )r   r   expected_lengths   & r   r   r      s     HKD3t9/Ks   zQMixed lengths in table content. Please provide headers / rows of the same length.c              3   Z   <"   T F   p\        \        VS,          4      4      x  K"  	  R # 5iru   )rP   r?   )r   r   is   & r   r   r      s!     C{tHSa\**{s   (+)
r   r   r   anyrf   extendrN   allrangemax)rv   all_contentr   r   r   s   &  @@r   r   Table._get_column_sizes   s)   |||DIIIL  999B		BB		BBBO  <<<t||,999tyy)k!n-sHKHsssHKHHHD 
 s;q>*+AC{CC ,
 r   c                6   < V ^8  d   QhRS[ S[,          RS[/# rp   rr   )r!   r"   s   "r   r#   r      s     0 0Xc] 0c 0r   c                   Vf   \        4       pV P                  pV P                  4       V8  d   V P                  V4      pRpV P                  '       dT   V\
        P                  V P                  V P                  4      ,           \
        P                  ,           R,           ,          pV F#  pW0P                  V4      ,          pVR,          pK%  	  \        V4      # )NrG   
)
rT   r   _get_line_lengthwrap_last_columnr   r
   BOLD	_fill_rowENDCr`   )rv   rq   r   r]   rows   &&   r   rw   Table.to_string   s    -/Kyy  "[0((5D<<<.../--  F CnnS))FdNF  (//r   c                    < V ^8  d   QhRS[ /# r   )rE   )r!   r"   s   "r   r#   r      s     
 
# 
r   c                    \        V P                  4      \        V P                  4      ^,
          \        V P                  4      ,          ,           # )   )sumr   rN   	SEPARATORrz   s   &r   r   Table._get_line_length   s@    4$$%T->->)?!)CsNNH
 )
 
 	
r   c                F   < V ^8  d   QhRS[ RS[S[S[,          ,          /# )r   
max_lengthr4   )rE   r   r?   )r!   r"   s   "r   r#   r      s#      3 4S	? r   c                p   V\        V P                  R R 4      \        V P                  4      ^,
          \        V P                  4      ,          ,           ,
          V n        . pV P
                   F  p\        VR,          4      V P                  8:  d   VP                  V4       K7  \        VR,          V P                  4      pVP                  VR R V^ ,          .,           4       VR,           F@  pR.\        V P                  4      ^,
          ,          V.,           pVP                  V4       KB  	  K  	  V# )N:r   NNrd   r   )r   r   rN   r   r   r   rf   rl   )rv   r   new_rowsr   wrapped_last_column
extra_linenew_rows   &&     r   r   Table.wrap_last_column   s
    *!!#2&'4$$%)S-@@A!
 99C3r7|t444$&/B9N9N&O#CR,?,B+C CD"5b"9"9J"es4+<+<'='AB"F G OOG,	 #:  r   c                6   < V ^8  d   QhRS[ S[,          RS[/# )r   r   r4   )r   r?   )r!   r"   s   "r   r#   r      s      T#Y 3 r   c                   R p\        \        V4      ^,
          4       F  pV P                  V,          \        P                  8X  dD   VV P                  W,          V P                  V,          4      V P                  ,           ,          pKl  V P                  V,          \        P                  8X  g   K  VV P                  W,          V P                  V,          4      V P                  ,           ,          pK  	  V P                  R,          \        P                  8X  d   W!R,          ,          pV# V P                  R,          \        P                  8X  d*   W P                  VR,          V P                  4      ,          pV# )rG   r   )r   rN   r   r   r   r   r   r   r   r   r   )rv   r   r]   r   s   &&  r   r   Table._fill_row   s   s3x!|$A~~a $4$9$99JJsvt'8'8';<t~~M "&6&<&<<JJsvt'8'8';<t~~M % >>"!1!6!66"gF  ^^B#3#9#99jjR$*?*?@@Fr   )r   r   r   r   r   z  )NNNru   )r   r   r   r   r   r   staticmethodr   r   r   rw   r   r   r   r   r9   r:   s   @r   r   r   y   so     I6 6, : : : : @0 0*
 

 & r   r   c                   T   a  ] tR t^t o ^tRtRV 3R lR lltR	V 3R lR lltRtV t	R# )
Blockrd   Nc                V   < V ^8  d   QhRS[ S[,          RS[ S[S[,          ,          /# )r   titlecontent)r   r?   r   r   )r!   r"   s   "r   r#   Block.__annotate__  s,     > >}> $s)$>r   c                8    Wn         Ve	   W n        R # . V n        R # ru   )r   r   )rv   r   r   s   &&&r   r   Block.__init__  s    
 
")"5w2r   c                6   < V ^8  d   QhRS[ S[,          RS[/# rp   rr   )r!   r"   s   "r   r#   r     s     0 0Xc] 0c 0r   c                p   Vf   \        4       pWP                  ,          pRpV P                  '       dZ   V\        P                  \        P
                  ,           V P                  ,           \        P                  ,           R,           ,          pV P                   F  p\        V\        4      '       d   VP                  VR7      pM+RP                  \        \        V4      V4      4      R,           pV\        P                  ! W@P                   V P                  ,          4      ,          pK  	  \#        V4      # )NrG   r   )rq   )rT   INDENT_SIZEr   r
   r   DISABLEGREYr   r   
isinstancern   rw   joinrl   r?   textwrapindentINDENT_CHARr`   )rv   rq   r]   r   item_strs   &&   r   rw   Block.to_string  s    -/K''':::&&'** --  	F LLD$ 233>>k>B99Ys4y+%FG$Nhoo**T-=-== F ! (//r   )r   r   )NNru   )
r   r   r   r   r   r   r   rw   r   r9   r:   s   @r   r   r      s(     KK> >0 0 0r   r   ) r}   r-   rH   r'   r   enumr   typingr   r   r   r   uaclient.configr	   uaclient.messagesr
   rJ   rK   rM   rY   r   r   r1   rA   rP   rT   r`   rl   ABCrn   r   r   r   r   r   <module>r      s    
 	 	 
   , , $ &( * 	3	3	3 t  &   (*  -P&*   C CL'0 '0r   