
    ;                     x    S SK JrJrJrJr  S SK JrJrJrJrJ	r	  S SK J
r
Jr  0 rS rS rS
S jr " S S\5      rg	)    )ArgumentParserArgumentErrorSUPPRESS_SubParsersAction)OPTIONALZERO_OR_MOREONE_OR_MORE	REMAINDERPARSER)_get_action_name_c                 p   [         R                  U S5      nU R                  [        [        [
        4;   a  gU R                  [        :X  a  US:  $ U R                  [        :X  a  gU R                  c  US:H  $ [        U R                  [        5      (       d   SU R                  -  5       eXR                  :H  $ )zsReturns False if the parse would raise an error if no more arguments are given to this action, True otherwise.
    r   T   F+failed to handle a possible nargs value: %r)
_num_consumed_argsgetnargsr   r   r
   r	   r   
isinstanceintactionnum_consumed_argss     *lib/third_party/argcomplete/my_argparse.pyaction_is_satisfiedr      s     +..vq9||,	::||{" A%%||v || A%%fllC((f*WZ`ZfZf*ff(,,    c                 F   [         R                  U S5      nU R                  [        [        [
        [        4;   a  gU R                  [        :X  d  U R                  c  US:H  $ [        U R                  [        5      (       d   SU R                  -  5       eXR                  :  $ )zUReturns True if action could consume more arguments (i.e., its pattern is open).
    r   Tr   )
r   r   r   r   r	   r   r
   r   r   r   r   s     r   action_is_openr      s     +..vq9||k69EE||x6<<#7 A%%fllC((f*WZ`ZfZf*ff(||++r   c                     [         R                  U S5      nU R                  (       a+  U(       d  [        U 5      (       d  gU R                  [
        :H  $ U R                  [
        :H  =(       a    US:  $ )zReturns True if action will necessarily consume the next argument.
isoptional indicates whether the argument is an optional (starts with -).
r   Tr   )r   r   option_stringsr   r   r
   )r   
isoptionalr   s      r   action_is_greedyr!   -   sZ     +..vq9"5f"="=||y((||y(C->!-CCr   c                       \ rS rSrSrS rSrg)IntrospectiveArgumentParser;   zThe following is a verbatim copy of ArgumentParser._parse_known_args (Python 2.7.3),
except for the lines that contain the string "Added by argcomplete".
c                 H  ^ ^^^^^^^^ ^!^" [         R                  5         TT l        / T l        T R                  b  T R                  T5      m0 mTT l        T R                   Hi  nUR                  n[        UR                  5       HA  u  pVTR                  U/ 5      nUR                  US U 5        UR                  XES-   S  5        MC     Mk     0 m/ n[        T5      n	[        U	5       Hg  u  pZU
S:X  a-  UR                  S5        U	 H  n
UR                  S5        M     M8  T R                  U
5      nUc  SnOUTU'   SnUR                  U5        Mi     SR                  U5      m[!        5       m [!        5       m!T!T l        SUUU U!U 4S jjm"UUUUU U"4S jnT R%                  5       mUUUU U"4S	 jn/ mS
nT(       a  ['        T5      nOSnUU::  al  [)        T Vs/ s H  nUU:  d  M  UPM     sn5      nUU:w  a  U" U5      nUU:  a  UnMB  UnUT;  a  TUU nTR                  U5        UnU" U5      nUU::  a  Ml  U" U5      nTR                  TUS  5        T(       a8  T R                  R                  TS
   5        T R+                  [-        S5      5        T R.                   HF  nUR0                  (       d  M  UT ;  d  M  [3        U5      nT R+                  [-        S5      U-  5        MH     T R                   H  nUR0                  (       d  M  UR                   H  nUT!;   d  M    M0     UR                   Vs/ s H#  nUR4                  [6        Ld  M  [3        U5      PM%     nn[-        S5      nT R+                  USR                  U5      -  5        M     TT4$ s  snf s  snf )Nr   z---AO c                 ,  > TR                  U 5        TR                  X5      nX0R                  LaT  TR                  U 5        T
R                  U / 5       H-  nUT;   d  M  [	        S5      n[        U5      n[        XU-  5      e   U[        Ld  [        U [        5      (       a   U " TTX25        g g !   [        U [        5      (       aJ  U R                  US      R                  n[        U5      R                  5        H  u  p[        TX5        M     e = f)Nznot allowed with argument %sr   )add_get_valuesdefaultr   r   r   r   r   r   r   _name_parser_map_argcomplete_namespacevarsitemssetattr)r   argument_stringsoption_stringargument_valuesconflict_actionmsgaction_namesubnamespacekeyvalueaction_conflicts	namespaceseen_actionsseen_non_default_actionsselfs             r   take_actionBIntrospectiveArgumentParser._parse_known_args.<locals>.take_actiont   s   V$"..vHO
 nn4(,,V4'7';';FB'GO&*BB >?&6&G+F+4EFF	 (H h.!&*;<<4OK =

 "&*;<<'-'>'>q?Q'R'i'i*.|*<*B*B*DJC#Is: +E s   %
B1 1A"Dc                 0  > TU    nUu  p#nTR                   n/ n Uc  TR                  TU    5        U S-   $ Ub  U" US5      nTR                  nUS:X  ah  US   U;  a_  UR                  U/ U45        US   n	XS   -   nUSS  =(       d    S n
TR                  nX;;   a  X   nU
nO[	        S5      n[        X,U-  5      eUS:X  a  U S-   nU/nUR                  X.U45        O[	        S5      n[        X,U-  5      eU S-   nTUS  nU/Tl        S[        U'   U" UU5      nX-   nTX n[        U5      [        U'   [        U5      (       d  TR                  R                  U5        UR                  X.U45        OGM]  U(       d   eU H  u  p.nT" X.U5        M     U$ )Nr   r'   r   zignored explicit argument %r)_match_argumentappendprefix_chars_option_string_actionsr   r   active_actionsr   lenr   remove)start_indexoption_tupler   r4   explicit_argmatch_argumentaction_tuples	arg_countcharscharnew_explicit_argoptionals_mapr7   stopargsstartselected_patternsarg_stringsarg_strings_patternextrasoption_string_indicesr@   rA   s                    r   consume_optionalGIntrospectiveArgumentParser._parse_known_args.<locals>.consume_optional   s	    1=L2>/F< "11NM >MM+k":;&?*  + .vs ;I
 !--E A~-*:%*G%,,fb--HI,Q/(,A(>+7+;+Ct((,(C(C(9%2%AF+;L"#$B"CC"/l8J"KK #a*Q ,~%,,fM-JK
   >?+F,4FGG (!OE(;EF(C%+1(D'12&v. .v7H II ,D&u2D
 25T&v.)&11++226: "((&)FGA H ! =/<+mF-8 0=Kr   c                 2  > T
R                   nTU S  nU" T	U5      n[        T	U5       H   u  pET
R                  R                  U5        M"     [        T	U5       H*  u  pETX U-    nX-  n [	        U5      [
        U'   T" XF5        M,     T	[	        U5      S  T	S S & U $ N)_match_arguments_partialziprH   rE   rI   r   )rK   match_partialselected_pattern
arg_countsr   rP   rV   rY   rZ   positionalsr@   rA   s          r   consume_positionalsJIntrospectiveArgumentParser._parse_known_args.<locals>.consume_positionals   s     99M2;<@&{4DEJ &)j%A!##**62 &B%(j%A!";i0GH(-0Y"6*F)	 &B )Z)9:KNr   r   ztoo few argumentszargument %s is requiredz#one of the arguments %s is required r`   )r   clearr/   rH   fromfile_prefix_chars_read_args_from_files_action_conflicts_mutually_exclusive_groups_group_actions	enumerate
setdefaultextenditerrE   _parse_optionaljoinset_seen_non_default_actions_get_positional_actionsmaxminerrorr   _actionsrequiredr   helpr   )#r@   rY   r=   mutex_groupgroup_actionsimutex_action	conflictsarg_string_pattern_partsarg_strings_iter
arg_stringrL   patternr]   rg   rK   max_option_string_indexindexnext_option_string_indexpositionals_end_indexstrings
stop_indexr   namegroupnamesr7   r<   rZ   r[   r\   rf   r>   r?   rA   s#   ```                        @@@@@@@@r   _parse_known_args-IntrospectiveArgumentParser._parse_known_args@   s     "&/# %%144[AK !1::K'66M#,[-G-G#H,77bI	  r!23  1uv!67 $I ; !##% ,&'78MA T!(//4"2J,33C8 #3  $33J?'!G/;)!,!G(//8# 9( !gg&>? u#&5 )A&	 	DQ	 Q	j 224	 	.  &)*?&@#&(#44 (+2,)2EK' 2,) (*$ 66(;K(H% );6"7K"7K "77%k2JKg&6 +;7K5 44: )5
 	k*+./
 &&{1~6JJq,-. mmF-+F3DJJq!:;dBC	 $ 44E~~~#22F!99 3 ,1+?+?=+? &8 ; 6-f5+?  = ABCJJsSXXe_45 5 &  {,)l=s   
N&N8NN)rn   r/   rx   rH   N)__name__
__module____qualname____firstlineno____doc__r   __static_attributes__ r   r   r#   r#   ;   s    K!r   r#   N)F)argparser   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r!   r#   r   r   r   <module>r      s;    P O K K ( -(,DP!. P!r   