+
    i-  c                   s   R t . R,OtRt^ RIt^ RIt^ RIHtHt R t ! R R	]	4      t
 ! R R
]
4      t ! R R]4      t ! R R]
4      t ! R R]
4      t ! R R]4      t ! R R4      t ! R R]4      t ! R R]4      tR tR tR]]! R4      3R ]]! R4      3R!]]! R"4      3R#]]! R#4      3/tR$ tR% tR-t ! R& R4      tR.tR/t ! R' R4      t ! R( R4      t ! R) R]4      t  ! R* R]4      t!R+ t"]t#R# )0z1.5.3OptionValuesOptionContainerOptionGroupOptionParserHelpFormatterIndentedHelpFormatterTitledHelpFormatterOptParseErrorOptionErrorOptionConflictErrorOptionValueErrorBadOptionErrora  
Copyright (c) 2001-2006 Gregory P. Ward.  All rights reserved.
Copyright (c) 2002 Python Software Foundation.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

  * Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.

  * Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.

  * Neither the name of the author nor the names of its
    contributors may be used to endorse or promote products derived from
    this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
N)gettextngettextc                 sT    R V P                   P                  \        V 4      V 3,          # )z<%s at 0x%x: %s>)Z	__class____name__Zidself   &!/usr/lib64/python3.14/optparse.py_reprr   P   s"    !8!8"T(D III    c                   s,   a  ] tR t^[t o R tR tRtV tR# )r   c                    Wn         R # Nmsgr   r      &&r   __init__ZOptParseError.__init__\   s    r   c                    V P                   # r   r   r   r   r   __str__ZOptParseError.__str___   s    xxr   r   Nr   
__module____qualname____firstlineno__r   r   __static_attributes____classdictcell__Z__classdict__   @r   r   r   [   s      r   c                   s,   a  ] tR t^ct o R tR tRtV tR# )r	   c                s2    Wn         \        V4      V n        R # r   )r   str	option_id)r   r   option   &&&r   r   ZOptionError.__init__i   s    Vr   c                sz    V P                   '       d   R V P                   : RV P                  : 2# V P                  # )zoption z: )r(   r   r   r   r   r   ZOptionError.__str__m   s'    >>>&*nndhh??88Or   )r   r(   Nr   r%   r&   r   r	   r	   c   s     % r   c                   s    ] tR t^stRtR# )r
    Nr   r    r!   r"   r#   r+   r   r   r
   r
   s       r   c                   s    ] tR t^xtRtR# )r   r+   Nr,   r+   r   r   r   r   x   r-   r   c                   s,   a  ] tR t^~t o R tR tRtV tR# )r   c                r   r   opt_strr   r/   r   r   r   ZBadOptionError.__init__   s    r   c                s:    \        R 4      V P                  ,          # )zno such option: %s)_r/   r   r   r   r   ZBadOptionError.__str__   s    %&55r   r.   Nr   r%   r&   r   r   r   ~   s     6 6r   c                   s,   a  ] tR t^t o R tR tRtV tR# )AmbiguousOptionErrorc                s<    \         P                  W4       W n        R # r   )r   r   possibilities)r   r/   r3   r*   r   r   ZAmbiguousOptionError.__init__   s    .*r   c                sp    \        R 4      V P                  RP                  V P                  4      3,          # )zambiguous option: %s (%s?), )r1   r/   joinr3   r   r   r   r   ZAmbiguousOptionError.__str__   s2    ./<<4+=+=!>?@ 	Ar   )r3   Nr   r%   r&   r   r2   r2      s     +A Ar   r2   c                   s~   a  ] tR t^t o RtR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tRtV tR# )r   Znonec                s   R V n         Wn        Vf+    \        \        P                  R,          4      pV^,          pW0n        \        V\        V^,
          V^,          4      4      ;V n
        V n        ^ V n        ^ V n        R V n        W@n        RV n        / V n        RV n        RV n        R #   \
        \        3 d    ^Pp Li ; i)NZCOLUMNSz%defaultz%s %sz%s=%s)parserindent_incrementintosZenvironZKeyError
ValueErrorwidthminmaxhelp_positionmax_help_positioncurrent_indentlevel
help_widthshort_firstdefault_tagoption_strings_short_opt_fmt_long_opt_fmtr   r7   r?   r;   rC      &&&&&r   r   ZHelpFormatter.__init__   s    
  0=BJJy12 QJE
%s52:7G!7K'LM	NT3
&% %$ j) s    B+ +C Cc                r   r   )r6   r   r6   r   r   
set_parserZHelpFormatter.set_parser   s    r   c                b    VR9  d   \        RV,          4      hRV,           R,           V n        R# ) z/invalid metavar delimiter for short options: %r%sN)rM    )r:   rF   r   Zdelimr   r   set_short_opt_delimiterZ%HelpFormatter.set_short_opt_delimiter   s2    	!AEIK K"UlT1r   c                rL   )=z.invalid metavar delimiter for long options: %rrN   N)rR   rO   )r:   rG   rP   r   r   set_long_opt_delimiterZ$HelpFormatter.set_long_opt_delimiter   s2    
"@5HJ J!E\D0r   c                s~    V ;P                   V P                  ,          un         V ;P                  ^,          un        R#    Nr@   r7   rA   r   r   r   indentZHelpFormatter.indent   s&    t444

a
r   c                s~    V ;P                   V P                  ,          un         V ;P                  ^,          un        R# rT   rV   r   r   r   dedentZHelpFormatter.dedent   s&    t444

a
r   c                    \        R 4      hzsubclasses must implementZNotImplementedErrorr   usager   r   format_usageZHelpFormatter.format_usage       !"=>>r   c                rY   rZ   r[   r   Zheadingr   r   format_headingZHelpFormatter.format_heading   r_   r   c                s    ^ RI p\        V P                  V P                  ,
          ^4      pRV P                  ,          pVP	                  VVVVR7      # )    NrO   )Zinitial_indentZsubsequent_indent)textwrapr=   r;   r@   Zfill)r   Ztextrc   Z
text_widthrW   s   &&   r   _format_textZHelpFormatter._format_text   sS    
 	d&9&992>
T(((}}T',2/5  7 	7r   c                sF    V'       d   V P                  V4      R ,           # R# 
rM   rd   r   descriptionr   r   format_descriptionZ HelpFormatter.format_description  s    $$[1D88r   c                sT    V'       d    R V P                  V4      ,           R ,           # R# re   rg   )r   epilogr   r   format_epilogZHelpFormatter.format_epilog  s#    $++F33d::r   c                sJ   V P                   e   V P                  '       g   VP                  # V P                   P                  P	                  VP
                  4      pV\        J g   Vf   V P                  pVP                  P                  V P                  \        V4      4      # r   )
r6   rD   helpdefaultsgetdest
NO_DEFAULTNO_DEFAULT_VALUEreplacer'   )r   r)   Zdefault_value   && r   expand_defaultZHelpFormatter.expand_default  sy    ;;d&6&6&6;;,,00=J&-*? 11M{{""4#3#3S5GHHr   c           	     s   . pV P                   V,          pV P                  V P                  ,
          ^,
          p\        V4      V8  d$   RV P                  RV3,          pV P                  pMRV P                  RWC3,          p^ pVP	                  V4       VP
                  '       d   ^ RIpV P                  V4      pVP                  WpP                  4      pVP	                  RVRV^ ,          3,          4       TP                  VR,           U	u. uF  p	RV P                  RV	3,          NK  	  up	4       MVR,          R8w  d   VP	                  R4       RP                  V4      # u up	i )   z%*s%s
rM   z	%*s%-*s  NrU   NNrf   )rE   r>   r@   lenappendrm   rc   ru   ZwraprB   extendr5   )
r   r)   resultoptsZ	opt_widthZindent_firstrc   Z	help_textZ
help_linesZlines
   &&        r   format_optionZHelpFormatter.format_option  s?    ""6*&&)<)<<q@	t9y  3 3R>>D--L$"5"5r9!KKDLd;;;++F3I!y//BJMM)|RA&GGHMM'1"~7'5t %(:(:B'EEE'57 8"XMM$wwv	7s   E'c                s   V P                  4        ^ pVP                   FH  pV P                  V4      pW@P                  V&   \	        V\        V4      V P                  ,           4      pKJ  	  V P                  4        VP                   F[  pVP                   FH  pV P                  V4      pW@P                  V&   \	        V\        V4      V P                  ,           4      pKJ  	  K]  	  V P                  4        V P                  4        \        V^,           V P                  4      V n        \	        V P                  V P                  ,
          ^4      V n        R# rb   N)rW   option_listformat_option_stringsrE   r=   ry   r@   option_groupsrX   r<   r?   r>   r;   rB   )r   r6   Zmax_lenoptZstringsgroups   &&    r   store_option_stringsZ"HelpFormatter.store_option_stringsA  s   %%C005G'.$'3w<$2E2E#EFG & 	))E((44S9+2##C(gs7|d6I6I'IJ ) *
 	 1d.D.DEdjj4+=+==rBr   c                s   VP                  4       '       d   VP                  ;'       g    VP                  P                  4       pVP                   Uu. uF  pV P
                  W23,          NK  	  ppVP                   Uu. uF  pV P                  WR3,          NK  	  ppMVP                  pVP                  pV P                  '       d
   WF,           pMWd,           pR P                  V4      # u upi u upi )r4   )
takes_valuemetavarrp   Zupper_short_optsrF   
_long_optsrG   rC   r5   )r   r)   r   ZsoptZ
short_optsZloptZ	long_optsr}   s   &&      r   r   Z#HelpFormatter.format_option_stringsS  s    nn;;(9(9(;G&,&8&8:&8d --??&8  : &,%6%68%6T ++to==%6  8I  ++J))I)D)Dyy:8s   C, C1)rG   rF   r@   rD   r>   rB   r7   rA   r?   rE   r6   rC   r;   N)r   r    r!   r"   rr   r   rK   rQ   rS   rW   rX   r^   ra   rd   rj   rl   ru   r~   r   r   r#   r$   r%   r&   r   r   r      sa     V %221
??7I"HC$ r   c                   6   a  ] tR tRt o RR ltR tR tRtV tR# )r   if  Nc                4    \         P                  WW#V4       R # r   r   r   rH   rI   r   r   ZIndentedHelpFormatter.__init__j      
 	$5k	Kr   c                s&    \        R 4      V,          # )z
Usage: %s
)r1   r\   r   r   r^   Z"IndentedHelpFormatter.format_usager  s    %''r   c                s.    R V P                   RV3,          # )z%*s%s:
rM   )r@   r`   r   r   ra   Z$IndentedHelpFormatter.format_headingu  s    T00"g>>>r   r+   )rv      NrU   	r   r    r!   r"   r   r^   ra   r#   r$   r%   r&   r   r   r   f  s     K(? ?r   c                   r   )r   iy  Nc                r   r   r   rH   rI   r   r   ZTitledHelpFormatter.__init__}  r   r   c                sF    V P                  \        R 4      4      : RV: R2# )ZUsagez  rf   )ra   r1   r\   r   r   r^   Z TitledHelpFormatter.format_usage  s    !007<eDDr   c                sX    V: R RV P                   ,          \        V4      ,          : R 2# )rf   z=-)rA   ry   r`   r   r   ra   Z"TitledHelpFormatter.format_heading  s"    $d4::&6W&E&EFFr   r+   )rb   r   Nrb   r   r%   r&   r   r   r   y  s     KEG Gr   c                 s    V R ,          P                  4       R8X  d   ^pMEV R ,          P                  4       R8X  d   ^pV R,          ;'       g    Rp MV R,          R8X  d   ^pM^
pV! W4      # ):Nrv   NZ0xZ0brv   NNZ0NrU   N)lower)valtypeZradixrt   r   
_parse_numr     s_    
2w}}$	RD	 "gnn	RCr   c                 s"    \        V \        4      # r   )r   r8   )r   r   r   
_parse_intr     s    c3r   r8   Zintegerlongfloatzfloating-pointcomplexc                 s    \         V P                  ,          w  r4 V! V4      #   \         d    \        \	        R 4      YT3,          4      hi ; i)zoption %s: invalid %s value: %r)_builtin_cvtr   r:   r   r1   )r)   r   valueZcvtZwhats   &&&  r   check_builtinr     sU    v{{+KSG5z G/0Cu3EEG 	GGs	   # )Ac                 s    W P                   9   d   V# R P                  \        \        V P                   4      4      p\	        \        R4      WV3,          4      h)r4   z.option %s: invalid choice: %r (choose from %s))choicesr5   ZmapZreprr   r1   )r)   r   r   r      &&& r   check_choicer     sM    ))Cfnn56>?7#$% 	%r   c            
       s   a  ] tR tRt o . ROtRtRtRtRtR t	R!t
R]R]R]R]R]/tRtR tR	 tR
 tR tR tR tR tR tR tR tR t]]]]]]].tR t]tR tR tR tR t R t!R t"Rt#V t$R# )"r    i  r8   r   r   r   choiceNc                s    . V n         . V n        V P                  V4      pV P                  V4       V P	                  V4       V P
                   F  pV! V 4       K  	  R # r   )r   r   _check_opt_strings_set_opt_strings
_set_attrsCHECK_METHODS)r   r}   attrschecker   &*, r   r   ZOption.__init__*  sX     &&t,d# 	 ))GDM *r   c                sj    V Uu. uF  q"'       g   K  VNK  	  ppV'       g   \        R 4      hV# u upi )z+at least one option string must be supplied)	TypeErrorr   r}   r   rt   r   r   ZOption._check_opt_strings=  s5      $+tst+IJJ ,s   	00c                s   V F  p\        V4      ^8  d   \        RV,          V 4      h\        V4      ^8X  dM   V^ ,          R8X  d   V^,          R8w  g   \        RV,          V 4      hV P                  P                  V4       K  VR,          R8X  d   V^,          R8w  g   \        RV,          V 4      hV P                  P                  V4       K  	  R# )rv   z>invalid option string %r: must be at least two characters long-zMinvalid short option string %r: must be of the form -x, (x any non-dash char)rb   rv   N--zGinvalid long option string %r: must start with --, followed by non-dashN)ry   r	   r   rz   r   r   rt   r   r   ZOption._set_opt_stringsF  s    C3x!|!;=@ABFH H SQA##a&C-%HJMN    '',CD(SVs]%CEHI  &&s+% r   c                s4   V P                    FD  pW!9   d   \        WW,          4       W K  VR 8X  d   \        W\        4       K8  \        WR4       KF  	  V'       d<   \        VP	                  4       4      p\        RRP                  V4      ,          V 4      hR# )defaultNzinvalid keyword arguments: %sr4   )ATTRSsetattrrq   Zsortedkeysr	   r5   )r   r   attrrt   r   r   ZOption._set_attrs[  s}    JJD}EK0K9$D
3D-  5::<(E/$))E2BB  r   c                s    V P                   f
   RV n         R # V P                   V P                  9  d   \        RV P                   ,          V 4      hR # )Nstorezinvalid action: %r)actionACTIONSr	   r   r   r   _check_actionZOption._check_actionn  s?    ;;!DK[[,2T[[@$GG -r   c                s"   V P                   f>   V P                  V P                  9   d!   V P                  e
   RV n         R # RV n         R # R # \	        V P                   \         4      '       d   V P                   P
                  V n         V P                   R8X  d   RV n         V P                   V P                  9  d   \        RV P                   ,          V 4      hV P                  V P                  9  d   \        RV P                  ,          V 4      hR # )Nr   stringr'   zinvalid option type: %rz$must not supply a type for action %r)	r   r   ALWAYS_TYPED_ACTIONSr   
isinstancer   TYPESr	   TYPED_ACTIONSr   r   r   _check_typeZOption._check_typet  s    99{{d777<<+ (DI !)DI 8 $))T** II..	yyE!$	yy

*!";dii"GNN{{$"4"44!:T[[H$P P 5r   c                s   V P                   R 8X  d   V P                  f   \        RV 4      h\        V P                  \        \
        34      '       gF   \        R\        \        V P                  4      4      P                  R4      ^,          ,          V 4      hR# V P                  e   \        RV P                   ,          V 4      hR# )r   Nz/must supply a list of choices for type 'choice'z1choices must be a list of strings ('%s' supplied)Z'z#must not supply choices for type %r)r   r   r	   r   tupleZlistr'   splitr   r   r   _check_choiceZOption._check_choice  s    99 ||#!EtM Mudm<<!G$t||,-33C8;<=AC C = \\%5		A4I I &r   c                s\   V P                   V P                  9   ;'       g    V P                  R JpV P                  fo   V'       de   V P                  '       d2   V P                  ^ ,          R,          P                  RR4      V n        R # V P                  ^ ,          ^,          V n        R # R # R # )Nr   r   r1   )r   STORE_ACTIONSr   rp   r   rs   r   )r   r      & r   _check_destZOption._check_dest  s     {{d&8&88 - -yy, 	99  OOA.r2::3D	 ,,Q/2	 "-r   c                s    V P                   V P                  9  d.   V P                  e   \        RV P                   ,          V 4      hR # R # )Nz*'const' must not be supplied for action %r)r   CONST_ACTIONSconstr	   r   r   r   _check_constZOption._check_const  sB    ;;d000TZZ5K<t{{J  6L0r   c                s    V P                   V P                  9   d   V P                  f
   ^V n        R # R # V P                  e   \        RV P                   ,          V 4      hR # )Nz*'nargs' must not be supplied for action %r)r   r   nargsr	   r   r   r   _check_nargsZOption._check_nargs  sU    ;;$,,,zz!
 "ZZ#<t{{J  $r   c                s   V P                   R 8X  d   \        V P                  4      '       g   \        RV P                  ,          V 4      hV P                  e>   \        V P                  \        4      '       g   \        RV P                  ,          V 4      hV P                  e@   \        V P                  \        4      '       g   \        RV P                  ,          V 4      hR# R# V P                  e   \        RV P                  ,          V 4      hV P                  e   \        RV 4      hV P                  e   \        RV 4      hR# )callbackzcallback not callable: %rNz3callback_args, if supplied, must be a tuple: not %rz4callback_kwargs, if supplied, must be a dict: not %rz.callback supplied (%r) for non-callback optionz.callback_args supplied for non-callback optionz0callback_kwargs supplied for non-callback option)	r   Zcallabler   r	   callback_argsr   r   callback_kwargsdictr   r   r   _check_callbackZOption._check_callback  s8   ;;*$DMM**!/$--?G G"".t11599!I(()*.0 0 $$0t33T::!J**+,02 2 ; 1 }}(!Dmm$%)+ + !!-!DdL L##/!FN N 0r   c                sZ    R P                  V P                  V P                  ,           4      # )Z/)r5   r   r   r   r   r   r   ZOption.__str__  s     xx((4??:;;r   c                s    V P                   R J# r   )r   r   r   r   r   ZOption.takes_value  s    yy$$r   c                sr    V P                   '       d   V P                   ^ ,          # V P                  ^ ,          # )rb   )r   r   r   r   r   get_opt_stringZOption.get_opt_string  s+    ?????1%%##A&&r   c                sj    V P                   P                  V P                  4      pVf   V# V! WV4      # r   )TYPE_CHECKERro   r   )r   r   r   r   r   r   check_valueZOption.check_value  s3    ##''		2?L4e,,r   c           	     s    VeL   V P                   ^8X  d   V P                  W4      # \        V Uu. uF  q0P                  W4      NK  	  up4      # R # u upi r   )r   r   r   )r   r   r   Zvr   r   convert_valueZOption.convert_value  sR    zzQ''33F1..s6FGG	  Gs   Ac                st    V P                  W4      pV P                  V P                  V P                  WW44      # r   )r   take_actionr   rp   )r   r   r   valuesr6   rI   r   processZOption.process  s<     ""3.
 KKC@ 	@r   c                sF   VR 8X  d   \        WRV4       ^# VR8X  d   \        WRV P                  4       ^# VR8X  d   \        WRR4       ^# VR8X  d   \        WRR4       ^# VR8X  d$   VP                  V. 4      P                  V4       ^# VR8X  d.   VP                  V. 4      P                  V P                  4       ^# VR8X  d&   \        WRVP                  V^ 4      ^,           4       ^# VR	8X  dF   V P                  ;'       g    RpV P
                  ;'       g    / pV P                  ! WWF.VO5/ VB  ^# VR
8X  d#   VP                  4        VP                  4        ^# VR8X  d#   VP                  4        VP                  4        ^# \        RV P                  ,          4      h)r   store_const
store_trueTstore_falseFrz   append_constcountr   rm   versionzunknown action %rr+   )r   r   ensure_valuerz   r   r   r   
print_helpexitprint_versionr:   r   )	r   r   rp   r   r   r   r6   argskwargss	   &&&&&&&  r   r   ZOption.take_action	  s   WF%(4 3 }$F$**-0 / |#F$', + }$F%(( ' xb)007$ # ~%b)00<   wF&"5"5dA">"BC  z!%%++D))//RFMM$UDTDVD  vKKM  y   "KKM  04;;>??r   )r   r   r   rp   r   r   )r   r   rp   r   r   r   r   r   r   r   rm   r   )
r   r   r   r   rz   r   r   r   rm   r   )r   r   r   r   rz   r   r   )r   rz   r   )r   rz   )r   r   )r   r8   r   r   r   r   )%r   r    r!   r"   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __repr__r   r   r   r   r   r   r#   r$   r%   r&   r   r    r      s     ,E	GM!M&%M
 DE$ 	L  M
&,*&HP0I3N8 # " !!$&M< H%'-H
@ r   c                   sf   a  ] tR tRt o RR ltR t]tR tR t	R t
R tRR	 ltRR
 ltR tRtV tR# )r   i-  Nc                sd    V'       d(   VP                  4        F  w  r#\        WV4       K  	  R # R # r   )Zitemsr   )r   rn   r   r      &&  r   r   ZValues.__init__/  s'    '~~/C(  0 r   c                s,    \        V P                  4      # r   )r'   __dict__r   r   r   r   ZValues.__str__4  s    4==!!r   c                s    \        V\        4      '       d   V P                  VP                  8H  # \        V\        4      '       d   V P                  V8H  # \        # r   )r   r   r   r   ZNotImplemented)r   Zotherr   r   __eq__ZValues.__eq__9  sD    eV$$==ENN22t$$==E))!!r   c                sn    \        V 4       F%  pW!9   g   K  W,          pVf   K  \        WV4       K'  	  R # r   )Zdirr   )r   r   r   Zdvalr   r   _update_carefulZValues._update_carefulA  s.     ID|z#D-	 r   c                <    V P                   P                  V4       R # r   )r   update)r   r   r   r   _update_looseZValues._update_looseN  s     	T"r   c                s    VR 8X  d   V P                  V4       R# VR8X  d   V P                  V4       R# \        RV,          4      h)carefulZloosezinvalid update mode: %rN)r   r   r:   )r   r   moder*   r   _updateZValues._updateV  s>    9  &W_t$6=>>r   c                s    \        V4       \        P                  V,          pV P                  \	        V4      V4       R # r   )Z
__import__sysZmodulesr   vars)r   Zmodnamer   Zmodr   r   read_moduleZValues.read_module^  s*    7kk'"T#Y%r   c                sr    / p\        \        V4      P                  4       V4       V P                  W24       R # r   )ZexecZopenZreadr   )r   Zfilenamer   r   r   r   	read_fileZValues.read_filec  s*    T(^  "D)T r   c                sl    \        W4      '       d   \        W4      f   \        WV4       \        W4      # r   )ZhasattrZgetattrr   )r   r   r   r*   r   r   ZValues.ensure_valueh  s,    t""gd&9&AD&t""r   r+   r   )r   )r   r    r!   r"   r   r   r   r   r   r   r   r   r   r   r   r#   r$   r%   r&   r   r   r   -  s>     )
" H".#?&
!
# #r   c                   s   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tRtV tR# )r   in  c                sv    V P                  4        Wn        V P                  V4       V P                  V4       R # r   )_create_option_listoption_classset_conflict_handlerset_description)r   r   conflict_handlerri      &&&&r   r   ZOptionContainer.__init__  s3    
 	  "(!!"23[)r   c                s0    / V n         / V n        / V n        R # r   
_short_opt	_long_optrn   r   r   r   _create_option_mappingsZ'OptionContainer._create_option_mappings  s     r   c                sl    VP                   V n         VP                  V n        VP                  V n        R # r   r   rJ   r   r   _share_option_mappingsZ&OptionContainer._share_option_mappings  s)     !++))r   c                sD    VR9  d   \        RV,          4      hWn        R# )errorz$invalid conflict_resolution value %rN)r   resolve)r:   r   )r   handlerr   r   r   Z$OptionContainer.set_conflict_handler  s"    ..CgMNN 'r   c                r   r   ri   rh   r   r   r   ZOptionContainer.set_description  s    &r   c                r   r   r   r   r   r   get_descriptionZOptionContainer.get_description  s    r   c                s    V = V =V =R # r   r   r   r   r   destroyZOptionContainer.destroy  s    ONMr   c           
     sr   . pVP                    F8  pW0P                  9   g   K  VP                  W0P                  V,          34       K:  	  VP                   F8  pW0P                  9   g   K  VP                  W0P                  V,          34       K:  	  V'       Ed   V P
                  pVR 8X  d9   \        RRP                  V Uu. uF  qU^ ,          NK  	  up4      ,          V4      hVR8X  d   V F  w  r6VP                  R4      '       d*   VP                  P                  V4       V P                  V M(VP                   P                  V4       V P                  V VP                   '       d   K  VP                  '       d   K  VP                  P                  P                  V4       K  	  R# R# R# u upi )r   z conflicting option string(s): %sr4   r   r   N)r   r   rz   r   r   r   r
   r5   
startswithremove	containerr   )r   r)   Zconflict_optsr   r   ZcoZc_options   &&     r   _check_conflictZOptionContainer._check_conflict  si   %%Coo%$$c??3+?%@A & $$Cnn$$$c>>#+>%?@ % =++G'!)6ii ?2A ?@A  I%'4OS~~d++ ++2237 NN3/ ,,33C8 OOC0$000H4G4G4G **66==hG (5 & 
 !@s   F4c                s   \        V^ ,          \        4      '       d   V P                  ! V/ VB pMU\        V4      ^8X  d;   V'       g3   V^ ,          p\        V\        4      '       g   \        RV,          4      hM\        R4      hV P                  V4       V P                  P                  V4       Wn	        VP                   F  pW0P                  V&   K  	  VP                   F  pW0P                  V&   K  	  VP                  en   VP                  \         Jd&   VP                  V P"                  VP                  &   V# VP                  V P"                  9  d   RV P"                  VP                  &   V# )rb   znot an Option instance: %rinvalid argumentsN)r   r'   r   ry   r    r   r  r   rz   r  r   r   r   r   rp   r   rq   rn   )r   r   r   r)   r   s   &*,  r   
add_optionZOptionContainer.add_option  s/    d1gs##&&77FY!^F!WFff-- <v EFF . /00V$'%%C#)OOC  &$$C"(NN3 % ;;"~~Z/-3^^fkk*  DMM1-1fkk*r   c                s:    V F  pV P                  V4       K  	  R # r   )r  )r   r   r)   rt   r   add_optionsZOptionContainer.add_options  s    !FOOF# "r   c                s~    V P                   P                  V4      ;'       g    V P                  P                  V4      # r   )r   ro   r   r0   r   r   
get_optionZOptionContainer.get_option  s5    ##G, , ,""7+	-r   c                sJ    WP                   9   ;'       g    WP                  9   # r   )r   r   r0   r   r   
has_optionZOptionContainer.has_option  s%    ??* * *>>)	+r   c                sp   V P                   P                  V4      pVf   V P                  P                  V4      pVf   \        RV,          4      hVP                   F  pV P                   V K  	  VP
                   F  pV P                  V K  	  VP                  P                  P                  V4       R # )Nzno such option %r)	r   ro   r   r:   r   r   r  r   r   )r   r/   r)   r   r   r   remove_optionZOptionContainer.remove_option  s    $$W->^^''0F>07:;;%%C$ &$$Cs# %$$++F3r   c                s    V P                   '       g   R # . pV P                    F9  pVP                  \        J d   K  VP                  VP	                  V4      4       K;  	  R P                  V4      # rM   )r   rm   SUPPRESS_HELPrz   r~   r5   )r   	formatterr|   r)   r   r   format_option_helpZ"OptionContainer.format_option_help  sY    &&F;;-/i55f=> ' wwvr   c                s@    VP                  V P                  4       4      # r   )rj   r   r   r  r   r   rj   Z"OptionContainer.format_description  s    ++D,@,@,BCCr   c                s    . pV P                   '       d!   VP                  V P                  V4      4       V P                  '       d!   VP                  V P	                  V4      4       R P                  V4      # )rf   )ri   rz   rj   r   r  r5   r   r  r|   rt   r   format_helpZOptionContainer.format_help!  s\    MM$11)<=MM$11)<=yy  r   )r   r   r   rn   ri   r   N)r   r    r!   r"   r   r   r   r   r   r   r   r  r  r  r  r  r  r  rj   r  r#   r$   r%   r&   r   r   r   n  s]     @	*((
' H6<$-+4 D! !r   c                   sB   a  ] tR tRt o R	R ltR tR tR tR tRt	V t
R# )
r   i*  Nc                st    Wn         \        P                  WP                  VP                  V4       W n        R # r   )r6   r   r   r   r   title)r   r6   r  ri   r   r   r   ZOptionGroup.__init__,  s.      %%v'>'>	M
r   c                sJ    . V n         V P                  V P                  4       R # r   )r   r   r6   r   r   r   r   ZOptionGroup._create_option_list2  s    ##DKK0r   c                r   r   )r  )r   r  r   r   	set_titleZOptionGroup.set_title6  s    
r   c                s4    \         P                  V 4       V =R # r   )r   r   r   r   r   r   r   ZOptionGroup.destroy9  s    %r   c                s    VP                  V P                  4      pVP                  4        V\        P	                  W4      ,          pVP                  4        V# r   )ra   r  rW   r   r  rX   r  rt   r   r  ZOptionGroup.format_help@  sH    ))$**5/--d>>r   )r   r6   r  r   )r   r    r!   r"   r   r   r  r   r  r#   r$   r%   r&   r   r   r   *  s#     1 r   c            
       s:  a  ] tR tRt o . tRR]RRRRRRR3
R ltR tR tR t	R	 t
R+R
 ltR tR tR tR tR tR tR tR tR tR tR tR tR,R ltR tR tR tR tR tR tR tR t R-R  lt!R! t"R" t#R.R# lt$R$ t%R.R% lt&R.R& lt'R' t(R.R( lt)R.R) lt*R*t+V t,R# )/r   iH  Nr   Tc                s8   \         P                  WWV4       V P                  V4       Wn        W@n        R V n        R V n        Vf   \        4       pWpn        V P                  P                  V 4       Wn
        V P                  VVR7       V P                  4        R# )TN)add_help)r   r   	set_usageprogr   allow_interspersed_argsprocess_default_valuesr   r  rK   rk   _populate_option_list_init_parsing_state)r   r]   r   r   r   r   ri   r  Zadd_help_optionr  rk   s   &&&&&&&&&&&r   r   ZOptionParser.__init__  s     	   0	?u	'+$&*#-/I"!!$' 	"";,; 	# 	= 	  "r   c                s    \         P                  V 4       V P                   F  pVP                  4        K  	  V =V =V =R # r   )r   r   r   r   r  )r   r   r   r   r   ZOptionParser.destroy  s<     	%''EMMO (Nr   c                sB    . V n         . V n        V P                  4        R # r   )r   r   r   r   r   r   r   Z OptionParser._create_option_list  s    $$&r   c                sB    V P                  R RR\        R4      R7       R# )z-hz--helprm   zshow this help message and exitr   rm   Nr  r1   r   r   r   _add_help_optionZOptionParser._add_help_option  s$    h%@A 	 	Cr   c                s@    V P                  R R\        R4      R7       R# )z	--versionr   z&show program's version number and exitr  Nr  r   r   r   _add_version_optionZ OptionParser._add_version_option  s"    (GH 	 	Jr   c                s
   V P                   '       d   V P                  V P                   4       V'       d   V P                  V4       V P                  '       d   V P                  4        V'       d   V P	                  4        R # R # r   )standard_option_listr  r   r  r  )r   r   r  r*   r   r  Z"OptionParser._populate_option_list  s\    $$$T667[)<<<$$&!!# r   c                s0    R V n         R V n        R V n        R # r   )rargslargsr   r   r   r   r  Z OptionParser._init_parsing_state  s    

r   c                s    Vf   \        R4      V n        R # V\        J d
   R V n        R # VP                  4       P	                  R4      '       d   VR,          V n        R # Wn        R # )Nz%prog [options]zusage: :i   NN)r1   r]   SUPPRESS_USAGEr   r   r\   r   r   r  ZOptionParser.set_usage  sJ    =,-DJn$DJ[[]%%i00rDJJr   c                    R V n         R# )TNr  r   r   r   enable_interspersed_argsZ%OptionParser.enable_interspersed_args  s     (,$r   c                r!  )FNr"  r   r   r   disable_interspersed_argsZ&OptionParser.disable_interspersed_args  s     (-$r   c                r   r   )r  )r   r   r   r   set_process_default_valuesZ'OptionParser.set_process_default_values  s    &-#r   c                s"    W P                   V&   R # r   )rn   )r   rp   r   r*   r   set_defaultZOptionParser.set_default  s    #dr   c                r   r   )rn   r   )r   r   s   &,r   set_defaultsZOptionParser.set_defaults  s    V$r   c                s    V P                   R ,          pV P                   F  pVP                  VP                   4       K   	  V# )NNN)r   r   r{   )r   Zoptionsr   s   &  r   _get_all_optionsZOptionParser._get_all_options
  s9    ""1%''ENN5,,- (r   c                s   V P                   '       g   \        V P                  4      # V P                  P                  4       pV P	                  4        Fc  pVP                  VP                  4      p\        V\        4      '       g   K6  VP                  4       pVP                  WC4      WP                  &   Ke  	  \        V4      # r   )r  r   rn   Zcopyr)  ro   rp   r   r'   r   r   )r   rn   r)   r   r/   s   &    r   get_default_valuesZOptionParser.get_default_values  s    ***$--((==%%'++-Fll6;;/G'3'' //1(.(:(:7(L%	 . hr   c                sv   \        V^ ,          \        4      '       d   \        V .VO5/ VB pMp\        V4      ^8X  dV   V'       gN   V^ ,          p\        V\        4      '       g   \	        RV,          4      hVP
                  V Jd   \        R4      hM\	        R4      hV P                  P                  V4       V# )rb   znot an OptionGroup instance: %rz"invalid OptionGroup (wrong parser)r  )	r   r'   r   ry   r   r6   r:   r   rz   )r   r   r   r   r   r   add_option_groupZOptionParser.add_option_group!  s    d1gs##6t6v6EY!^FGEe[11 AE IJJ||4' !EFF ( /00!!%(r   c                s    V P                   P                  V4      ;'       g    V P                  P                  V4      pV'       d   VP                  V Jd   VP                  # R # r   )r   ro   r   r  )r   r/   r)   rt   r   get_option_groupZOptionParser.get_option_group1  sT    //%%g. . ...$$W- 	f&&d2###r   c                sJ    Vf   \         P                  R,          # VR,          # )Nrw   r(  )r   argv)r   r   r   r   	_get_argsZOptionParser._get_args;  s    <88B<7Nr   c                s>   V P                  V4      pVf   V P                  4       pW0n        . ;V n        pW n         V P                  WCV4      pWC,           pV P                  W!4      #   \        \        3 d%   pT P                  \        T4      4        R p?LIR p?ii ; ir   )r.  r*  r  r  r   _process_argsr   r   r   r'   check_values)r   r   r   r  r  stopZerrs   &&&    r   
parse_argsZOptionParser.parse_argsA  s     t$>,,.F 

U	!%%eF;D }  ..	  01 	!JJs3x  	!s   A' 'B8BBc                s    W3# r   r+   )r   r   r   r*   r   r0  ZOptionParser.check_valuesh  s     ~r   c                s8   V'       d   V^ ,          pVR8X  d   V^  R# VR,          R8X  d   V P                  W#4       K>  VR,          R8X  d$   \        V4      ^8  d   V P                  W#4       Ko  V P                  '       d   VP	                  V4       V^  K  R# R# )rb   r   Nr   r   r   )_process_long_optry   _process_short_optsr  rz   )r   r  r  r   args   &&&& r   r/  ZOptionParser._process_argsu  s     (C d{!HST!&&u5RCCHqL ((7---S!!H' r   c                s,    \        WP                  4      # r   )_match_abbrevr   )r   r   r   r   _match_long_optZOptionParser._match_long_opt  s     S..11r   c                sd   VP                  ^ 4      pRV9   d*   VP                  R^4      w  rEVP                  ^ V4       RpMTpRpV P                  V4      pV P                  V,          pVP                  4       '       dr   VP                  p\        V4      V8  d)   V P                  \        RRV4      RVRV/,          4       MYV^8X  d   VP                  ^ 4      p	M@\        V^ V 4      p	V^ V1 M,V'       d#   V P                  \        R4      V,          4       MR	p	VP                  VX	W 4       R	# )
rb   rR   TF.%(option)s option requires %(number)d argument/%(option)s option requires %(number)d argumentsr)   numberz%s option does not take a valueN)popr   insertr7  r   r   r   ry   r   r   r   r1   r   )
r   r  r   r5  r   Znext_argZhad_explicit_valuer)   r   r   s
   &&&       r   r3  ZOptionParser._process_long_opt  s   iil #:!iiQ/OSLLH%!%C!&""3'$LLE5zE!

8DE 'Xu=> ? !		!eAen-!E'NJJq:;cAB EsE60r   c                sn   VP                  ^ 4      pRp^pVR,           EF  pRV,           pV P                  P                  V4      pV^,          pV'       g   \        V4      hVP	                  4       '       d   V\        V4      8  d   VP                  ^ W5R 4       RpVP                  p	\        V4      V	8  d)   V P                  \        RRV	4      RVR	V	/,          4       M/V	^8X  d   VP                  ^ 4      p
M\        V^ V	 4      p
V^ V	1 MRp
VP                  VX
W 4       V'       g   EK   R# 	  R# )
rb   Frw   r   NTr8  r9  r)   r:  )r;  r   ro   r   r   ry   r<  r   r   r   r   r   )r   r  r   r5  r1  ZiZchr   r)   r   r   s   &&&        r   r4  Z OptionParser._process_short_opts  s'   iilb''B(C__((-FFA$S))!!## s3x<LLCG,Du:%JJxHI  #+C5!A B C aZ!IIaLE!%%.1Eag NN3v4tA r   c                s    V P                   f5   \        P                  P                  \        P
                  ^ ,          4      # V P                   # r   )r  r9   ZpathZbasenamer   r-  r   r   r   get_prog_nameZOptionParser.get_prog_name  s3    9977##CHHQK0099r   c                sB    VP                  R V P                  4       4      # )z%prog)rs   r=  )r   sr   r   expand_prog_nameZOptionParser.expand_prog_name  s    yy$"4"4"677r   c                s8    V P                  V P                  4      # r   )r?  ri   r   r   r   r   ZOptionParser.get_description  s    $$T%5%566r   c                s    V'       d    \         P                  P                  V4       \         P                  ! V4       R # r   )r   stderrwriter   )r   Zstatusr   r*   r   r   ZOptionParser.exit
  s#    JJS!r   c                s    V P                  \        P                  4       V P                  ^V P	                  4       : RV: R24       R# )rv   z	: error: rf   N)print_usager   r@  r   r=  r   r   r   r   ZOptionParser.error  s2     	$		!$*<*<*>DEr   c                s    V P                   '       d5   V P                  P                  V P                  V P                   4      4      # R # r	  )r]   r  r^   r?  r   r   r   	get_usageZOptionParser.get_usage  s9    :::>>..%%djj13 3 r   c                d    V P                   '       d   \        V P                  4       VR 7       R# R# )fileN)r]   printrC  r   rF  r   r   rB  ZOptionParser.print_usage   s#     :::$..". r   c                s`    V P                   '       d   V P                  V P                   4      # R # r	  )r   r?  r   r   r   get_versionZOptionParser.get_version,  s#    <<<((66r   c                rD  rE  )r   rG  rI  rH  r   r   r   ZOptionParser.print_version2  s%     <<<$""$40 r   c                s   Vf   V P                   pVP                  V 4       . pVP                  VP                  \	        R4      4      4       VP                  4        V P                  '       d6   VP                  \        P                  W4      4       VP                  R4       V P                   F4  pVP                  VP                  V4      4       VP                  R4       K6  	  VP                  4        RP                  VR R 4      # )NZOptionsrf   rM   rx   )r  r   rz   ra   r1   rW   r   r   r  r   r  rX   r5   )r   r  r|   r   r   r   r  ZOptionParser.format_option_help=  s    I&&t,i..q|<=MM/<<TMNMM$''EMM%++I67MM$ ( 	wwvcr{##r   c                s8    VP                  V P                  4      # r   )rl   rk   r  r   r   rl   ZOptionParser.format_epilogN  s    &&t{{33r   c                s   Vf   V P                   p. pV P                  '       d'   VP                  V P                  4       R,           4       V P                  '       d(   VP                  V P                  V4      R,           4       VP                  V P                  V4      4       VP                  V P                  V4      4       RP                  V4      # )Nrf   rM   )	r  r]   rz   rC  ri   rj   r  rl   r5   r  rt   r   r  ZOptionParser.format_helpQ  s    I:::MM$..*T12MM$11)<tCDd--i89d((34wwvr   c                sl    Vf   \         P                  pVP                  V P                  4       4       R # r   )r   ZstdoutrA  r  rH  r   r   r   ZOptionParser.print_help]  s'     <::D

4##%&r   )r  rk   r  r  r   r   r  r  r  r]   r   r   )T)NNr   r   )-r   r    r!   r"   r  r    r   r   r   r  r  r  r  r  r#  r$  r%  r&  r'  r)  r*  r+  r,  r.  r2  r0  r/  r7  r3  r4  r=  r?  r   r   r   rC  rB  rI  r   r  rl   r  r   r#   r$   r%   r&   r   r   r   H  s     L  !$")!!%#D$'
C
J
$	,-.$% " %/Nf2"1H$R87
F
/	1$"4
' 'r   c                 s   W9   d   V # VP                  4        Uu. uF  pVP                  V 4      '       g   K  VNK   	  pp\        V4      ^8X  d
   V^ ,          # V'       g   \        V 4      hVP	                  4        \        W4      hu upi )rU   )r   r   ry   r   Zsortr2   )r>  ZwordmapZwordr3   r   r   r6  r6  j  s     	| +2,,. 0.$ OOA. . 0 }" ## ##  &q880s
   BB)r    make_optionr
  r   r   r   r   r   r   r   r   r   r	   r
   r   r   r   )ZNOZDEFAULTZSUPPRESSHELPZSUPPRESSUSAGE)$Z__version__Z__all__Z__copyright__r   r9   r   r1   r   r   Z	Exceptionr   r	   r
   r   r   r2   r   r   r   r   r   r   r   r   r   r   rq   r    r
  r   r   r   r   r   r6  rJ  r+   r   r   <module>rK     sQ  0 $@  *JY =  ; 
 6m 6
AN 
AO Ob?] ?&G= G&  *a	l3:q|4E1%5#67gq|47
G% 
n nf "#># >#By! y!x? <]'O ]'D9: r   