
    Uٵg                         d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	  G d d      Z
 G d d      Z G d	 d
      Z G d d      Zy)    N)CallableIterableOptionalUnion)messages)HelpCategoryc                   h    e Zd Z	 ddededee   fdZdeej                  ej                  f   fdZ
y)	ProArgumentN	long_namehelp
short_namec                 <    ||fn||f| _         || _        || _        y N)namesr   additional_args)selfr   r   r   kwargss        7/usr/lib/python3/dist-packages/uaclient/cli/commands.py__init__zProArgument.__init__	   s-     '.YLZ4K 	
 	%    targetc                 h     |j                   | j                  d| j                  i| j                   y )Nr   )add_argumentr   r   r   )r   r   s     r   registerzProArgument.register   s5     	ZZ	
"ii	
+/+?+?	
r   r   )__name__
__module____qualname__strr   r   r   argparseArgumentParser_ArgumentGroupr    r   r   r
   r
      sO    
 %)	&& & SM	&
H33X5L5LLM
r   r
   c                   (    e Zd Z	 	 ddedee   fdZy)!ProArgumentMutuallyExclusiveGrouprequired	argumentsc                      || _         || _        y r   )r%   r&   )r   r%   r&   s      r   r   z*ProArgumentMutuallyExclusiveGroup.__init__   s    
 !"r   N)Fr"   )r   r   r   boolr   r
   r   r"   r   r   r$   r$      s&     +-## K(#r   r$   c            
       f    e Zd Z	 	 	 	 d	dee   dee   dee   dee   fdZde	j                  fdZy)
ProArgumentGroupNtitledescriptionr&   mutually_exclusive_groupsc                 <    || _         || _        || _        || _        y r   )r+   r,   r&   r-   )r   r+   r,   r&   r-   s        r   r   zProArgumentGroup.__init__)   s"     
&")B&r   parserc                 N   |}| j                   r&|j                  | j                   | j                        }| j                  D ]  }|j	                  |        | j
                  D ]@  }|j                  |j                        }|j                  D ]  }|j	                  |        B y )N)r%   )r+   add_argument_groupr,   r&   r   r-   add_mutually_exclusive_groupr%   )r   r/   r   argumentgroup	new_groups         r   r   zProArgumentGroup.register7   s     	 ::..tzz4;K;KLF 	&Hf%	& 33 	-E;; < I "OO -!!),-		-r   )NNr"   r"   )r   r   r   r   r   r   r
   r$   r   r   r    r   r"   r   r   r*   r*   (   si      $%)+- C}C c]C K(	C
 $,-$
C-x66 -r   r*   c                   z    e Zd Zd dddddfdededed	ed
edee   ded    dee	   de
fdZdej                  fdZy)
ProCommandc                       y r   r"   )argsr   s     r   <lambda>zProCommand.<lambda>O   s    r   Fr"   Nr   namer   r,   actionpreserve_descriptionargument_groupssubcommandshelp_categoryhelp_positionc
                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        y r   )	r;   r   r,   r<   r=   r>   r?   r@   rA   )
r   r;   r   r,   r<   r=   r>   r?   r@   rA   s
             r   r   zProCommand.__init__J   sI     		&$8!.&**r   
subparsersc                    |j                  | j                  | j                  | j                        | _        | j
                  rt        j                  | j                  _        | j                  rG| j                  j                  | j                  | j                  | j                  | j                         | j                  D ]  }|j                  | j                          | j                  j                  | j                         | j                   rN| j                  j#                  t$        j&                  d      }| j                   D ]  }|j                  |        y y )N)r   r,   )categoryr;   help_stringposition)r<   command)r+   dest)
add_parserr;   r   r,   r/   r=   r   RawDescriptionHelpFormatterformatter_classr@   add_help_entryrA   r>   r   set_defaultsr<   r?   add_subparsersr   CLI_AVAILABLE_COMMANDS)r   rC   argument_grouprH   s       r   r   zProCommand.register`   s)    ++II(( , 

 $$*2*N*NDKK'KK&&++YY II++	 '  #22 	1N##DKK0	1 	   43355 4 J  ++ -  ,- r   )r   r   r   r   r   r(   r   r*   r   r   intr   r   _SubParsersActionr   r"   r   r   r7   r7   I   s     8%*68.004++ + 	+
 + #+ ""23+ l++  -+ +,-8#=#= -r   r7   )r   typingr   r   r   r   uaclientr   uaclient.cli.parserr   r
   r$   r*   r7   r"   r   r   <module>rW      s=     6 6  ,
 
,# #- -B3- 3-r   