o
    (f
                     @   s~   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 deZG dd de jZdS )    N)OrderedDict)Enum)List
NamedTuple)messages	HelpEntrypositionnamehelp_stringc                   @   sj   e Zd ZG d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d	 Zed
d ZdS )HelpCategoryc                   @   s   e Zd ZdedefddZdS )zHelpCategory._Valuecodemsgc                 C   s   || _ || _d S N)r   r   )selfr   r    r   5/usr/lib/python3/dist-packages/uaclient/cli/parser.py__init__   s   
zHelpCategory._Value.__init__N)__name__
__module____qualname__strr   r   r   r   r   _Value   s    r   
quickstartsecuritytroubleshoototherflagsc                 C      | j jS r   )valuer   r   r   r   r   __str__   s   zHelpCategory.__str__c                 C   r   r   )r   r   r   r   r   r   header   s   zHelpCategory.headerN)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    r   c                
       s   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dZdd	d
ef fddZdefddZ fddZ  ZS )ProArgumentParserr   categoryr	   r
   r   c                 C   s   | j | t|||d d S )N)r   r	   r
   )help_entriesappendr   )clsr.   r	   r
   r   r   r   r   add_help_entry/   s   
z ProArgumentParser.add_help_entryT)use_main_helpr3   c                   s   t  j|i | || _d S r   )superr   r3   )r   r3   argskwargs	__class__r   r   r   ;   s   
zProArgumentParser.__init__commandc                 C   s8   |  }|d z| | W d S  ty   Y d S w )Nz--help)splitr0   
parse_args
SystemExit)r   r9   	args_listr   r   r   print_help_for_command?   s   
z(ProArgumentParser.print_help_for_commandc                    s   | j rt  S |  }| j D ]1\}}|d7 }|d|j7 }|d7 }t|dd dD ]}|d7 }|d|j	|j
7 }q-|d7 }q| jrS|d7 }|| j7 }|d7 }|S )N
z{}:c                 S   s   | j S r   )r   )itemr   r   r   <lambda>R   s    z/ProArgumentParser.format_help.<locals>.<lambda>)keyz
  {:<17}{})r3   r4   format_helpformat_usager/   itemsformatr!   sortedr	   r
   epilog)r   help_outputr.   rE   r@   r7   r   r   rC   I   s    


zProArgumentParser.format_help)r   )r   r   r   r   r   r#   r%   r'   r)   r+   r/   classmethodr   intr2   boolr   r>   rC   __classcell__r   r   r7   r   r-   $   s.    

r-   )argparsecollectionsr   enumr   typingr   r   uaclientr   rK   r   r   r   ArgumentParserr-   r   r   r   r   <module>   s    