
    g
                         d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	  edde
fdefd	efg      Z G d
 de      Z G d de j                        Zy)    N)OrderedDict)Enum)List
NamedTuple)messages	HelpEntrypositionnamehelp_stringc                       e Zd Z G d d      Z edej
                        Z edej                        Z edej                        Z
 edej                        Z edej                        Zd Zed	        Zy
)HelpCategoryc                       e Zd ZdedefdZy)HelpCategory._Valuecodemsgc                      || _         || _        y N)r   r   )selfr   r   s      5/usr/lib/python3/dist-packages/uaclient/cli/parser.py__init__zHelpCategory._Value.__init__   s    DIDH    N)__name__
__module____qualname__strr    r   r   _Valuer      s    	 	3 	r   r   
quickstartsecuritytroubleshoototherflagsc                 .    | j                   j                  S r   )valuer   r   s    r   __str__zHelpCategory.__str__   s    zzr   c                 .    | j                   j                  S r   )r$   r   r%   s    r   headerzHelpCategory.header   s    zz~~r   N)r   r   r   r   r   CLI_HELP_HEADER_QUICK_START
QUICKSTARTCLI_HELP_HEADER_SECURITYSECURITYCLI_HELP_HEADER_TROUBLESHOOTTROUBLESHOOTCLI_HELP_HEADER_OTHEROTHER	CLI_FLAGSFLAGSr&   propertyr(   r   r   r   r   r      s     
 h&J&JKJj("C"CDH==L 7H::;E7H../E  r   r   c            
            e Zd Z eej
                  g fej                  g fej                  g fej                  g fej                  g fg      Z
e	 ddedededefd       Zdddef fd	Zd
efdZ fdZ xZS )ProArgumentParsercategoryr
   r   r	   c                     t        |||      }|| j                  |   vr| j                  |   j                  |       y y )N)r	   r
   r   )r   help_entriesappend)clsr6   r
   r   r	   entrys         r   add_help_entryz ProArgumentParser.add_help_entry/   sH     Dk
 ((22X&--e4 3r   T)use_main_helpr=   c                2    t        |   |i | || _        y r   )superr   r=   )r   r=   argskwargs	__class__s       r   r   zProArgumentParser.__init__=   s    $)&)*r   commandc                     |j                         }|j                  d       	 | j                  |       y # t        $ r Y y w xY w)Nz--help)splitr9   
parse_args
SystemExit)r   rC   	args_lists      r   print_help_for_commandz(ProArgumentParser.print_help_for_commandA   s@    MMO	"	OOI&  		s   5 	A Ac                    | j                   rt        | 	         S | j                         }| j                  j                         D ]s  \  }}|dz  }|dj                  |j                        z  }|dz  }t        |d       D ]0  }|dz  }|dj                  |j                  |j                        z  }2 |dz  }u | j                  r|dz  }|| j                  z  }|dz  }|S )N
z{}:c                     | j                   S r   )r	   )items    r   <lambda>z/ProArgumentParser.format_help.<locals>.<lambda>T   s
    t}} r   )keyz
  {:<17}{})r=   r?   format_helpformat_usager8   itemsformatr(   sortedr
   r   epilog)r   help_outputr6   rR   rM   rB   s        r   rP   zProArgumentParser.format_helpK   s    7&(('')#00668 	 OHe4K5<<88K4Ku*DE Pt#|22499d>N>NOOP 4K	  ;;4K4;;&K4Kr   )r   )r   r   r   r   r   r*   r,   r.   r0   r2   r8   classmethodr   intr<   boolr   rI   rP   __classcell__)rB   s   @r   r5   r5   $   s    $$b)""B'&&+$$	
L  55 5 	5
 5 5 59 +T +c  r   r5   )argparsecollectionsr   enumr   typingr   r   uaclientr   rX   r   r   r   ArgumentParserr5   r   r   r   <module>ra      sV     #  # :s#fc]]C4HI	
4 .9// 9r   