o
    ÙKÕiÞ
  ã                   @   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   s4   t |||d�}|| j| vr| j|  |¡ d S d S )N)r   r	   r
   )r   Úhelp_entriesÚappend)Úclsr.   r	   r
   r   Úentryr   r   r   Úadd_help_entry/   s   ÿÿz ProArgumentParser.add_help_entryT)Úuse_main_helpr4   c                   s   t ƒ j|i |¤Ž || _d S r   )Úsuperr   r4   )r   r4   Ú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   r:   Ú	args_listr   r   r   Úprint_help_for_commandA   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>T   s    z/ProArgumentParser.format_help.<locals>.<lambda>)Úkeyz
  {:<17}{})r4   r5   Úformat_helpÚformat_usager/   ÚitemsÚformatr!   Úsortedr	   r
   Úepilog)r   Úhelp_outputr.   rF   rA   r8   r   r   rD   K   s    


zProArgumentParser.format_help)r   )r   r   r   r   r   r#   r%   r'   r)   r+   r/   Úclassmethodr   Úintr3   Úboolr   r?   rD   Ú__classcell__r   r   r8   r   r-   $   s.    ûÿ
ûþýüû
r-   )ÚargparseÚcollectionsr   Úenumr   Útypingr   r   Úuaclientr   rL   r   r   r   ÚArgumentParserr-   r   r   r   r   Ú<module>   s    ÿ