
    ,hhG                     j   S SK JrJr  S SKJr  S SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKrSr\rSrSr " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S 5      r \ " 5       r!\"" 5       r# " S! S"5      r$ " S# S$\$5      r% " S% S&\$5      r& " S' S(5      r' " S) S*\(5      r) " S+ S,\5      r* " S- S.\*5      r+ " S/ S0\5      r, " S1 S2\5      r-g)3    )IterableMutableMapping)ChainMapN)NoSectionErrorDuplicateOptionErrorDuplicateSectionErrorNoOptionErrorInterpolationErrorInterpolationDepthErrorInterpolationMissingOptionErrorInterpolationSyntaxErrorParsingErrorMissingSectionHeaderErrorMultilineContinuationErrorConfigParserRawConfigParserInterpolationBasicInterpolationExtendedInterpolationSectionProxyConverterMappingDEFAULTSECTMAX_INTERPOLATION_DEPTHUNNAMED_SECTIONDEFAULT
   c                   (    \ rS rSrSS jrS r\rSrg)Error   c                 :    Xl         [        R                  X5        g N)message	Exception__init__)selfmsgs     5/opt/python-3.13.8/usr/lib/python3.13/configparser.pyr$   Error.__init__   s    4%    c                     U R                   $ r!   r"   r%   s    r'   __repr__Error.__repr__   s    ||r)   r+   N) )__name__
__module____qualname____firstlineno__r$   r-   __str____static_attributes__ r)   r'   r   r      s    & Gr)   r   c                       \ rS rSrS rSrg)r      c                 T    [         R                  U SU< 35        Xl        U4U l        g )NzNo section: )r   r$   sectionargsr%   r:   s     r'   r$   NoSectionError.__init__   s!    t:;K	r)   )r;   r:   Nr0   r1   r2   r3   r$   r5   r6   r)   r'   r   r      s     r)   r   c                       \ rS rSrSS jrSrg)r      Nc                 r   [        U5      S/nUbU  S[        U5      /nUb   UR                  SR                  U5      5        UR                  S5        UR                  U5        UnOUR	                  SS5        [
        R                  U SR                  U5      5        Xl        X l	        X0l
        XU4U l        g )N already existsWhile reading from  [line {0:2d}]z
: section r   zSection r/   )reprappendformatextendinsertr   r$   joinr:   sourcelinenor;   )r%   r:   rK   rL   r&   r"   s         r'   r$   DuplicateSectionError.__init__   s    G}/0,d6l;G!/66v>?NN<(NN3CJJq*%tRWWS\*f-	r)   )r;   rL   r:   rK   NNr>   r6   r)   r'   r   r      s    .r)   r   c                       \ rS rSrSS jrSrg)r      Nc                    [        U5      S[        U5      S/nUbU  S[        U5      /nUb   UR                  SR                  U5      5        UR                  S5        UR                  U5        UnOUR	                  SS5        [
        R                  U SR                  U5      5        Xl        X l	        X0l
        X@l        XX44U l        g )	Nz in section rB   rC   rD   z	: option r   zOption r/   )rE   rF   rG   rH   rI   r   r$   rJ   r:   optionrK   rL   r;   )r%   r:   rR   rK   rL   r&   r"   s          r'   r$   DuplicateOptionError.__init__   s    F|^T'] ",d6l;G!/66v>?NN;'NN3CJJq)$tRWWS\*f5	r)   )r;   rL   rR   r:   rK   rN   r>   r6   r)   r'   r   r      s    6r)   r   c                       \ rS rSrS rSrg)r	      c                 h    [         R                  U SU< SU< 35        Xl        X l        X4U l        g )Nz
No option z in section: r   r$   rR   r:   r;   )r%   rR   r:   s      r'   r$   NoOptionError.__init__   s.    t) 	*%	r)   r;   rR   r:   Nr>   r6   r)   r'   r	   r	      s    &r)   r	   c                       \ rS rSrS rSrg)r
   i  c                 X    [         R                  X5        Xl        X l        XU4U l        g r!   rW   )r%   rR   r:   r&   s       r'   r$   InterpolationError.__init__
  s$    t!c*	r)   rY   Nr>   r6   r)   r'   r
   r
     s    +r)   r
   c                       \ rS rSrS rSrg)r   i  c                 r    SR                  XXC5      n[        R                  XX%5        X@l        XX44U l        g )NzBad value substitution: option {!r} in section {!r} contains an interpolation key {!r} which is not a valid option name. Raw value: {!r})rG   r
   r$   	referencer;   )r%   rR   r:   rawvalr_   r&   s         r'   r$   (InterpolationMissingOptionError.__init__  s;    !!'!K 	 	##D'?"f8	r)   )r;   r_   Nr>   r6   r)   r'   r   r     s    9r)   r   c                       \ rS rSrSrg)r   i  r6   N)r0   r1   r2   r3   r5   r6   r)   r'   r   r     s     r)   r   c                       \ rS rSrS rSrg)r   i%  c                 p    SR                  X[        U5      n[        R                  XX$5        XU4U l        g )NzRecursion limit exceeded in value substitution: option {!r} in section {!r} contains an interpolation key which cannot be substituted in {} steps. Raw value: {!r})rG   r   r
   r$   r;   )r%   rR   r:   r`   r&   s        r'   r$    InterpolationDepthError.__init__(  s>     &*A! 	
 	##D'?f-	r)   )r;   Nr>   r6   r)   r'   r   r   %  s    .r)   r   c                   R   ^  \ rS rSrU 4S jrS rS r\S\S    4S j5       r	Sr
U =r$ )r   i2  c                    > [         TU ]  SU< 35        Xl        / U l        U4U l        U(       a  U R
                  " U6   g g )Nz Source contains parsing errors: )superr$   rK   errorsr;   rF   )r%   rK   r;   	__class__s      r'   r$   ParsingError.__init__5  sA    ;F:FGJ	KK r)   c                     U R                   R                  X45        U =R                  SU[        U5      4-  -  sl        g )Nz
	[line %2d]: %s)ri   rF   r"   rE   )r%   rL   lines      r'   rF   ParsingError.append=  s3    F>*,T
/CCCr)   c                 \    U H%  nUR                    H  nU R                  " U6   M     M'     U $ r!   )ri   rF   )r%   othersothererrors       r'   combineParsingError.combineA  s-    EU# &  r)   
exceptionsc                     [        U 5      n [        R                  " [        5         [	        U 5      R                  U 5      e! , (       d  f       g = fr!   )iter
contextlibsuppressStopIterationnextrs   )ru   s    r'   
_raise_allParsingError._raise_allG  s;    
 *%
  /z"**:66 0/s   A
A)r;   ri   rK   )r0   r1   r2   r3   r$   rF   rs   staticmethodr   r|   r5   __classcell__rj   s   @r'   r   r   2  s3    D 7x7 7 7r)   r   c                       \ rS rSrS rSrg)r   iR  c                 p    [         R                  U SXU4-  5        Xl        X l        X0l        XU4U l        g )Nz7File contains no section headers.
file: %r, line: %d
%rr   r$   rK   rL   rm   r;   r%   filenamerL   rm   s       r'   r$   "MissingSectionHeaderError.__init__U  s>    Gt$%	& 	t,	r)   r;   rm   rL   rK   Nr>   r6   r)   r'   r   r   R  s    -r)   r   c                       \ rS rSrS rSrg)r   i`  c                 p    [         R                  U SXU4-  5        Xl        X l        X0l        XU4U l        g )NzHKey without value continued with an indented line.
file: %r, line: %d
%rr   r   s       r'   r$   #MultilineContinuationError.__init__b  s@    %%&	'
 	t,	r)   r   Nr>   r6   r)   r'   r   r   `  s    	-r)   r   c                       \ rS rSrS rSrg)_UnnamedSectionim  c                     g)Nz<UNNAMED_SECTION>r6   r,   s    r'   r-   _UnnamedSection.__repr__o  s    "r)   r6   N)r0   r1   r2   r3   r-   r5   r6   r)   r'   r   r   m  s    #r)   r   c                   ,    \ rS rSrS rS rS rS rSrg)r   i|  c                     U$ r!   r6   )r%   parserr:   rR   valuedefaultss         r'   
before_getInterpolation.before_get      r)   c                     U$ r!   r6   r%   r   r:   rR   r   s        r'   
before_setInterpolation.before_set  r   r)   c                     U$ r!   r6   r   s        r'   before_readInterpolation.before_read  r   r)   c                     U$ r!   r6   r   s        r'   before_writeInterpolation.before_write  r   r)   r6   N)	r0   r1   r2   r3   r   r   r   r   r5   r6   r)   r'   r   r   |  s    r)   r   c                   J    \ rS rSr\R
                  " S5      rS rS rS r	Sr
g)r   i  z%\(([^)]+)\)sc           	      P    / nU R                  XXdX%S5        SR                  U5      $ N   r/   _interpolate_somerJ   r%   r   r:   rR   r   r   Ls          r'   r   BasicInterpolation.before_get  )    vqANwwqzr)   c                     UR                  SS5      nU R                  R                  SU5      nSU;   a  [        SXER	                  S5      4-  5      eU$ )Nz%%r/   %1invalid interpolation syntax in %r at position %dreplace_KEYCREsub
ValueErrorfindr%   r   r:   rR   r   	tmp_values         r'   r   BasicInterpolation.before_set  ^    MM$+	LL$$R3	) +.3^^C5H-IJ K Kr)   c           
         UR                  XRSUS9nU[        :  a  [        X%U5      eU(       Ga  UR                  S5      n	U	S:  a  UR	                  U5        g U	S:  a  UR	                  US U	 5        XIS  nUSS n
U
S:X  a  UR	                  S5        USS  nOU
S:X  a  U R
                  R                  U5      nUc  [        X%SU-  5      eUR                  UR                  S5      5      nXKR                  5       S  n Xl   nSU;   a  U R                  XX=XVUS-   5        O"UR	                  U5        O[        X%S	U< 35      eU(       a  GM  g g ! [         a    [        X%X5      S ef = f)
NTrawfallbackr   r   r      ('bad interpolation variable reference %rz+'%' must be followed by '%' or '(', found: )getr   r   r   rF   r   matchr   optionxformgroupendKeyErrorr   r   )r%   r   rR   accumrestr:   mapdepthr`   pcmvarvs                 r'   r   $BasicInterpolation._interpolate_some  s   GE**)&6BB		#A1uT"1uT"1X&BxQq	ACxS!ABxcLL&&t,926ADHJ J((4EEGH~@A !8**65+2D LLO.G#'*+ +? d,   @96;?@@s   ?E E'r6   Nr0   r1   r2   r3   recompiler   r   r   r   r5   r6   r)   r'   r   r     s"     jj)*G
'+r)   r   c                   J    \ rS rSr\R
                  " S5      rS rS rS r	Sr
g)r   i  z\$\{([^}]+)\}c           	      P    / nU R                  XXdX%S5        SR                  U5      $ r   r   r   s          r'   r    ExtendedInterpolation.before_get  r   r)   c                     UR                  SS5      nU R                  R                  SU5      nSU;   a  [        SXER	                  S5      4-  5      eU$ )Nz$$r/   $r   r   r   s         r'   r    ExtendedInterpolation.before_set  r   r)   c                 ,   UR                  XRSUS9nU[        :  a  [        X%U5      eU(       Ga  UR                  S5      n	U	S:  a  UR	                  U5        g U	S:  a  UR	                  US U	 5        XIS  nUSS n
U
S:X  a  UR	                  S5        USS  nGO:U
S:X  Ga#  U R
                  R                  U5      nUc  [        X%SU-  5      eUR                  S5      R                  S	5      nXKR                  5       S  nUnUn [        U5      S:X  a  UR                  US   5      nXn   nOI[        U5      S:X  a*  US   nUR                  US   5      nUR                  XSS
9nO[        X%SU< 35      eUc  GMT  SU;   a0  U R%                  XX?U['        UR)                  USS
95      US-   5        O"UR	                  U5        O[        X%SU< 35      eU(       a  GM  g g ! [        [        [        4 a    [!        X%US	R#                  U5      5      S ef = f)NTr   r   r   r   r   {r   :)r   zMore than one ':' found: z+'$' must be followed by '$' or '{', found: )r   r   r   r   rF   r   r   r   r   splitr   lenr   r   r   r	   r   rJ   r   dictitems)r%   r   rR   r   r   r:   r   r   r`   r   r   r   pathsectoptr   s                   r'   r   'ExtendedInterpolation._interpolate_some  s3   GE**)&6BB		#A1uT"1uT"1X&BxQq	ACxS!ABxcLL&&t,926ADHJ Jwwqz'',EEGH~K4yA~$00a9HTa#Aw$00a9"JJtdJ;6"G=ACE E 9!8**6$+/Tt0L+M+0196 LLO.G#'*+ +] dD !.-@ K9$AFJKKs   'G  -8G  &G   3Hr6   Nr   r6   r)   r'   r   r     s"     jj)*G
6+r)   r   c                       \ rS rSr% \\   \S'   Sr\\\4   S-  \S'   Sr	\S-  \S'   Sr
\S-  \S'   Sr\\S'   Sr\\S	'   \\   \S
'   S rSrg)
_ReadStatei   elements_addedNcursectsectnameoptnamer   rL   indent_levelri   c                 @    [        5       U l        [        5       U l        g r!   )setr   listri   r,   s    r'   r$   _ReadState.__init__)  s    !efr)   )r   ri   )r0   r1   r2   r3   r   str__annotations__r   r   r   r   rL   intr   r   r   r$   r5   r6   r)   r'   r   r      sc    X&*Gd38nt#* HsTz GcDjFSL3,r)   r   c                   n   ^  \ rS rSrU 4S jrS r\R                  S 5       r\	S 5       r
S rS rSrU =r$ )	_Linei.  c                 "   > [         TU ]  X5      $ r!   )rh   __new__)clsvalr;   kwargsrj   s       r'   r   _Line.__new__0  s    ws((r)   c                     X l         g r!   prefixes)r%   r   r   s      r'   r$   _Line.__init__3  s     r)   c                 P    U R                  5       =(       a    U R                  5       $ r!   )_strip_full_strip_inliner,   s    r'   clean_Line.clean6  s    !:d&8&8&::r)   c                 <    U R                  5       U R                  :g  $ r!   )stripr   r,   s    r'   has_comments_Line.has_comments:  s    zz|tzz))r)   c                 (   [         R                  " SR                  S U R                  R                   5       5      =(       d    S5      nUR                  U 5      nU S U(       a  UR                  5        R                  5       $ S  R                  5       $ )N|c              3   V   #    U  H  nS [         R                  " U5       S3v   M!     g7f)z(^|\s)()Nr   escape).0prefixs     r'   	<genexpr>&_Line._strip_inline.<locals>.<genexpr>C  s%     XCW		& 12!4CWs   ')z(?!))r   r   rJ   r   inlinesearchstartr  )r%   matcherr   s      r'   r   _Line._strip_inline>  sv     **HHX4==CWCWXX 

 t$5eU[[]6<<>>6<<>>r)   c                     [        [        U R                  5       R                  U R                  R
                  5      5      (       a  S$ S$ )Nr/   T)anyr   r  
startswithr   fullr,   s    r'   r   _Line._strip_fullJ  s5    TZZ\44dmm6H6HIJJrTPTTr)   r   )r0   r1   r2   r3   r   r$   	functoolscached_propertyr   propertyr  r   r   r5   r   r   s   @r'   r   r   .  sL    )! ; ; * *
?U Ur)   r   c                     ^  \ rS rSrSrSrSr\" 5       r\	R                  " \\	R                  5      r\	R                  " \R                  SS9\	R                  5      r\	R                  " \R                  SS9\	R                  5      r\	R                  " S5      rSSSSS	S	S	S	S
.rS\S	4SSSSS\\\S	S.	S jjrS rS rS rS rS rS>S jrS>S jrS?S jrS@S jrS	S\S.S jrS r S	S\S.S jr!S	S\S.S jr"S	S\S.S jr#S	S\S.S jr$\S	S4U 4S  jjr%S! r&S" r'S# r(S>S$ jr)SAS% jr*SBS& jr+S' r,S( r-S) r.S* r/S+ r0S, r1S- r2S. r3S/ r4S0 r5S1 r6S2 r7S3 r8S4 r9S5 r:S6 r;S7 r<S8 r=S9S9S9S:.S; jr>\?S< 5       r@S=rAU =rB$ )Cr   iN  z
        \[                                 # [
        (?P<header>.+)                     # very permissive!
        \]                                 # ]
        a  
        (?P<option>.*?)                    # very permissive!
        \s*(?P<vi>{delim})\s*              # any number of space/tab,
                                           # followed by any of the
                                           # allowed delimiters,
                                           # followed by any space/tab
        (?P<value>.*)$                     # everything up to eol
        a  
        (?P<option>.*?)                    # very permissive!
        \s*(?:                             # any number of space/tab,
        (?P<vi>{delim})\s*                 # optionally followed by
                                           # any of the allowed
                                           # delimiters, followed by any
                                           # space/tab
        (?P<value>.*))?$                   # everything up to eol
        z=|:delimz\STF)1yestrueon0nofalseoffN=r   )#;)	
delimiterscomment_prefixesinline_comment_prefixesstrictempty_lines_in_valuesdefault_sectioninterpolation
convertersallow_unnamed_sectionc       	            X l         U R                  5       U l        U R                  5       U l        [        U 5      U l        U R                  5       U l        [        X	5      U R
                  U	'   [        U5      U l        US:X  a%  U(       a  U R                  OU R                  U l        OSR                  S U 5       5      nU(       aB  [        R                  " U R                  R!                  US9[        R"                  5      U l        OA[        R                  " U R$                  R!                  US9[        R"                  5      U l        [&        R(                  " [        U=(       d    S5      [        U=(       d    S5      S9U l        Xpl        X0l        Xl        Xl        Xl        U R4                  [6        L a  U R8                  U l        U R4                  c  [;        5       U l        [=        U R4                  [:        5      (       d!  [?        S[A        U R4                  5       35      eU[6        La  U R                  RC                  U5        U(       a  U RE                  U5        Xl#        g )Nr(  r  c              3   N   #    U  H  n[         R                  " U5      v   M     g 7fr!   r
  )r  ds     r'   r  +RawConfigParser.__init__.<locals>.<genexpr>  s     :z!1zs   #%r  r6   )r  r  zSinterpolation= must be None or an instance of Interpolation; got an object of type )$_dict	_sections	_defaultsr   _converters_proxiesr   tuple_delimiters	OPTCRE_NVOPTCRE_optcrerJ   r   r   _OPT_NV_TMPLrG   VERBOSE	_OPT_TMPLtypesSimpleNamespace	_prefixes_strict_allow_no_value_empty_lines_in_valuesr1  _interpolation_UNSET_DEFAULT_INTERPOLATIONr   
isinstance	TypeErrortypeupdate_read_defaults_allow_unnamed_section)r%   r   	dict_typeallow_no_valuer,  r-  r.  r/  r0  r1  r2  r3  r4  r7  s                 r'   r$   RawConfigParser.__init__w  s    
+D1

)5d)Lo& ,#-;4>>DL:z::A!zz$*;*;*B*B*B*K*,** 6  "zz$..*?*?a*?*H*,** 6..'-2.06B7
 -&;#,+&("&"="=D&"//D$--}==**.t/B/B*C)DF  V###J/)&;#r)   c                     U R                   $ r!   )r;  r,   s    r'   r   RawConfigParser.defaults  s    ~~r)   c                 H    [        U R                  R                  5       5      $ r!   )r   r:  keysr,   s    r'   sectionsRawConfigParser.sections  s     DNN'')**r)   c                     XR                   :X  a  [        SU-  5      eXR                  ;   a  [        U5      eU R	                  5       U R                  U'   [        X5      U R                  U'   g )NzInvalid section name: %r)r1  r   r:  r   r9  r   r=  r<   s     r'   add_sectionRawConfigParser.add_section  s]     ***7'ABBnn$'00"&**,w!-d!<gr)   c                     XR                   ;   $ r!   )r:  r<   s     r'   has_sectionRawConfigParser.has_section  s    
 ..((r)   c                      U R                   U   R                  5       nUR	                  U R
                  5        [        UR                  5       5      $ ! [         a    [        U5      S ef = fr!   )r:  copyr   r   rR  r;  r   r[  )r%   r:   optss      r'   optionsRawConfigParser.options  s_    	4>>'*//1D 	DNN#DIIK    	4 )t3	4s   A A*c                    [        U[        [        [        R                  45      (       a  U/n[
        R                  " U5      n/ nU Hm  n [        XBS9 nU R                  XT5        S S S 5        [        U[        R                  5      (       a  [        R                  " U5      nUR                  U5        Mo     U$ ! , (       d  f       NZ= f! [         a     M  f = f)N)encoding)rO  r   bytesosPathLikeiotext_encodingopen_readOSErrorfspathrF   )r%   	filenamesrj  read_okr   fps         r'   readRawConfigParser.read  s     i#ubkk!:;;"I##H-!H(6"JJr, 7 (BKK0099X.NN8$ "  76 s0   	CB;'C;
C		C	C
CCc                 j    Uc   UR                   nU R                  X5        g ! [         a    Sn N f = f)Nz<???>)nameAttributeErrorrq  )r%   frK   s      r'   	read_fileRawConfigParser.read_file  s;     >! 	

1 " ! !s   # 22c                 R    [         R                  " U5      nU R                  X25        g r!   )rn  StringIOr}  )r%   stringrK   sfiles       r'   read_stringRawConfigParser.read_string  s    F#u%r)   c                    [        5       nUR                  5        H  u  pE[        U5      n U R                  U5        UR                  U5        UR                  5        Hu  u  pgU R                  [        U5      5      nUb  [        U5      nU R                  (       a  XF4U;   a  [        XFU5      eUR                  XF45        U R                  XFU5        Mw     M     g ! [        [
        4 a    U R                  (       a  XC;   a  e  Nf = fr!   )
r   r   r   r_  r   r   rI  addr   r   )r%   
dictionaryrK   r   r:   r[  keyr   s           r'   	read_dictRawConfigParser.read_dict  s     '--/MG'lG  ) w'"jjl
&&s3x0$JE<<WNn$D.wVDD""G>2u- + 0 *:6 <<G$=s   C'DDr   varsr   c                (    U R                  X5      nU R                  U5      n Xb   nU(       d  Uc  U$ U R                  R                  XX'U5      $ ! [         a    U[        L a  e Us $ f = f! [         a    U[        L a  [        X!5      eUs $ f = fr!   )_unify_valuesr   rM  r   r   r	   rL  r   )r%   r:   rR   r   r  r   r7  r   s           r'   r   RawConfigParser.get  s    	 ""71A !!&)	 IE %-L&&11$235 5#  	 6!		   	 6!#F44		 s"   A A. A+*A+. BBc                 4    U" U R                   " X40 UD65      $ r!   )r   )r%   r:   convrR   r   s        r'   _getRawConfigParser._getA  s    DHHW7788r)   c                t     U R                   " XU4XES.UD6$ ! [        [        4 a    U[        L a  e Us $ f = f)N)r   r  )r  r   r	   rM  )r%   r:   rR   r  r   r  r   r   s           r'   	_get_convRawConfigParser._get_convD  sO    	99WF ' '%' '. 	6!O	s    77c                8    U R                   " X[        4X4US.UD6$ Nr  )r  r   r%   r:   rR   r   r  r   r   s          r'   getintRawConfigParser.getintO  s)    ~~gs ;'/;39; 	;r)   c                8    U R                   " X[        4X4US.UD6$ r  )r  floatr  s          r'   getfloatRawConfigParser.getfloatT  s)    ~~gu ;#'/;39; 	;r)   c                D    U R                   " XU R                  4X4US.UD6$ r  )r  _convert_to_booleanr  s          r'   
getbooleanRawConfigParser.getbooleanY  s3    ~~gt/G/G O"%8OGMO 	Or)   c                   >^ ^^	 T[         L a  [        T
T ]	  5       $ T R                  R	                  5       m	 T	R                  T R                  T   5        [        T	R                  5       5      nU(       a-  UR                  5        H  u  pVUT	T R                  U5      '   M     U	UU 4S jnU(       a  U	4S jnU Vs/ s H  oU" U5      4PM     sn$ ! [         a    TT R                  :w  a  [        T5      e Nf = fs  snf )Nc                 H   > TR                   R                  TTU TU    T5      $ r!   )rL  r   )rR   r7  r:   r%   s    r'   <lambda>'RawConfigParser.items.<locals>.<lambda>v  s%    d&9&9&D&DTVQvY'+r)   c                    > TU    $ r!   r6   )rR   r7  s    r'   r  r  y  s	    !F)r)   )rM  rh   r   r;  re  rR  r:  r   r1  r   r   r[  r   )r%   r:   r   r  	orig_keysr  r   value_getterrR   r7  rj   s   ``       @r'   r   RawConfigParser.items^  s     f7=?"NN!	.HHT^^G,- N	"jjl
+0$""3'( ++3L=FGY6f-.YGG  	.$...$W-- /	. Hs   C ;C<%C98C9c                 N    U R                  5        H  nX   nX	 X4s  $    [        er!   )r\  r   r%   r  r   s      r'   popitemRawConfigParser.popitem|  s/     ==?CIE	: # r)   c                 "    UR                  5       $ r!   )lower)r%   	optionstrs     r'   r   RawConfigParser.optionxform  s      r)   c                     U(       a  XR                   :X  a  U R                  U5      nX R                  ;   $ XR                  ;  a  gU R                  U5      nX R                  U   ;   =(       d    X R                  ;   $ )NF)r1  r   r;  r:  )r%   r:   rR   s      r'   
has_optionRawConfigParser.has_option  so     '%9%99%%f-F^^++NN*%%f-FnnW55 0/1r)   c                    U(       a  U R                   R                  XUU5      nU(       a  XR                  :X  a  U R                  nO U R                  U   nX4U R                  U5      '   g ! [
         a    [        U5      S ef = fr!   )rL  r   r1  r;  r:  r   r   r   )r%   r:   rR   r   sectdicts        r'   r   RawConfigParser.set  s    ''224&38:E'%9%99~~H8>>'2 .3!!&)*  8$W-478s   	A, ,Bc                 &   U(       a  SR                  U R                  S   5      nOU R                  S   nU R                  (       a5  U R                  XR                  U R                  R                  5       U5        [        U R                  ;   a6  U R                  U[        U R                  [           R                  5       USS9  U R                   H<  nU[        L a  M  U R                  XU R                  U   R                  5       U5        M>     g )Nz {} r   T)unnamed)rG   r?  r;  _write_sectionr1  r   r   r:  )r%   rv  space_around_delimitersr7  r:   s        r'   writeRawConfigParser.write  s     #d..q12A  #A>>$8$8$(NN$8$8$:A?dnn,OT^^O5T5Z5Z5\^_imn~~G/) $w 7 = = ?D &r)   c                 n   U(       d   UR                  SR                  U5      5        U Hw  u  pgU R                  R                  XUU5      nUc  U R                  (       d  U[        U5      R                  SS5      -   nOSnUR                  SR                  Xg5      5        My     UR                  S5        g )Nz[{}]

z
	r/   z{}{}
)r  rG   rL  r   rJ  r   r   )r%   rv  section_namesection_items	delimiterr  r  r   s           r'   r  RawConfigParser._write_section  s    HHX__\23'JC''44T5:<E (<(<!CJ$6$6tV$DDHHX__S01 ( 	r)   c                     U(       a  XR                   :X  a  U R                  nO U R                  U   nU R                  U5      nX#;   nU(       a  X2	 U$ ! [         a    [	        U5      S ef = fr!   )r1  r;  r:  r   r   r   )r%   r:   rR   r  existeds        r'   remove_optionRawConfigParser.remove_option  sr    '%9%99~~H8>>'2 !!&)$   8$W-478s   A A+c                 d    XR                   ;   nU(       a  U R                   U	 U R                  U	 U$ r!   )r:  r=  )r%   r:   r  s      r'   remove_sectionRawConfigParser.remove_section  s.    ^^+w'g&r)   c                     XR                   :w  a!  U R                  U5      (       d  [        U5      eU R                  U   $ r!   )r1  rb  r   r=  r%   r  s     r'   __getitem__RawConfigParser.__getitem__  s7    &&&t/?/?/D/D3-}}S!!r)   c                     X;   a  X   UL a  g XR                   :X  a  U R                  R                  5         O,XR                  ;   a  U R                  U   R                  5         U R	                  X05        g r!   )r1  r;  clearr:  r  r  s      r'   __setitem__RawConfigParser.__setitem__  s`     ;49- &&&NN  "NN"NN3%%'|$r)   c                     XR                   :X  a  [        S5      eU R                  U5      (       d  [        U5      eU R	                  U5        g )Nz"Cannot remove the default section.)r1  r   rb  r   r  r  s     r'   __delitem__RawConfigParser.__delitem__  sC    &&&ABB$$3-C r)   c                 N    XR                   :H  =(       d    U R                  U5      $ r!   )r1  rb  r  s     r'   __contains__RawConfigParser.__contains__  s!    ***Cd.>.>s.CCr)   c                 2    [        U R                  5      S-   $ )Nr   )r   r:  r,   s    r'   __len__RawConfigParser.__len__  s    4>>"Q&&r)   c                 v    [         R                  " U R                  4U R                  R	                  5       5      $ r!   )	itertoolschainr1  r:  r[  r,   s    r'   __iter__RawConfigParser.__iter__  s)     4 468K8K8MNNr)   c                      [         R                  U R                  X5      5        U R                  5         g ! U R                  5         f = fr!   )r   r|   _read_inner_join_multiline_values)r%   rv  fpnames      r'   rq  RawConfigParser._read	  s9    $	*##D$4$4R$@A'')D'')s	   $7 A	c                    [        5       n[        R                  " [        U R                  S9n[        [        XA5      SS9 GH  u  Ul        nUR                  (       d  U R                  (       ar  UR                  (       d`  UR                  bS  UR                  (       aB  UR                  UR                     b(  UR                  UR                     R                  S5        O[        R                  Ul        M  U R"                  R%                  U5      nU(       a  UR'                  5       OSUl        U R+                  X5U5      (       a  GM
  U R-                  X5U5        GM     UR.                  $ )Nr   r   )r  r/   r   )r   r  partialr   rH  	enumerater   rL   r   rK  r  r   r   rF   sysmaxsizer   NONSPACECREr  r  cur_indent_level_handle_continuation_line_handle_restri   )r%   rv  r  stLinerm   first_nonspaces          r'   r  RawConfigParser._read_inner   s   \  @(Ta@OBIt::.. !--

.



2::.:

2::.55b9 '*kkBO!--44T:N<J."6"6"8PQB--b??b/+  A. yyr)   c                 Z   UR                   S L=(       a,    UR                  =(       a    UR                  UR                  :  nU(       ab  UR                   UR                     c  [	        X1R
                  U5      eUR                   UR                     R                  UR                  5        U$ r!   )r   r   r  r   r   rL   rF   r   )r%   r  rm   r  is_continues        r'   r  )RawConfigParser._handle_continuation_line=  s    zz- 2"** 2"//1 	zz"**%-0DIIJJrzz"))$**5r)   c                    U R                   (       a$  UR                  c  U R                  U[        U5        UR                  Ul        U R                  R                  UR                  5      nU(       d#  UR                  c  [        X1R                  U5      eU(       a"  U R                  XR                  S5      U5        g U R                  XU5        g )Nheader)rT  r   _handle_headerr   r  r   SECTCREr   r   r   rL   r   _handle_option)r%   r  rm   r  mos        r'   r  RawConfigParser._handle_restG  s    &&2::+=OV<--\\

+bjj(+FIItDD?AB 2F;tGZGZ[]ekGlr)   c                    X!l         UR                   U R                  ;   a  U R                  (       a;  UR                   UR                  ;   a!  [	        UR                   UUR
                  5      eU R                  UR                      Ul        UR                  R                  UR                   5        OUR                   U R                  :X  a  U R                  Ul        OU R                  5       Ul        UR                  U R                  UR                   '   [        XR                   5      U R                  UR                   '   UR                  R                  UR                   5        S Ul        g r!   )r   r:  rI  r   r   rL   r   r  r1  r;  r9  r   r=  r   )r%   r  r   r  s       r'   r  RawConfigParser._handle_headerU  s    ;;$..(||r/@/@ @+BKK,.II7 74BJ!!"++.[[D000BJBJ*,**DNN2;;')5dKK)HDMM"++&!!"++.
r)   c                    UR                   Ul        U R                  R                  UR                  5      nU(       d0  UR
                  R                  [        X1R                  U5      5        g UR                  SSS5      u  Ul
        pVUR                  (       d/  UR
                  R                  [        X1R                  U5      5        U R                  UR                  R                  5       5      Ul
        U R                  (       aQ  UR                  UR                  4UR                  ;   a+  [!        UR                  UR                  X1R                  5      eUR                  R#                  UR                  UR                  45        Ub+  UR%                  5       nU/UR&                  UR                  '   g S UR&                  UR                  '   g )NrR   vir   )r  r   rB  r   r   ri   rF   r   rL   r   r   r   rstriprI  r   r   r   r  r  r   )r%   r  rm   r  r  r  optvals          r'   r  RawConfigParser._handle_optiong  sF   --\\

+
 II\&))TBC!#(D'!B
BzzII\&))TBC%%bjj&7&7&9:
LL[["**%):)::&r{{BJJ$*II7 7
r{{BJJ78 \\^F&,XBJJrzz" &*BJJrzz"r)   c                    U R                   U R                  4n[        R                  " U4U R                  R                  5       5      nU Hq  u  p4UR                  5        HX  u  pV[        U[        5      (       a  SR                  U5      R                  5       nU R                  R                  U UXV5      XE'   MZ     Ms     g )Nr  )r1  r;  r  r  r:  r   rO  r   rJ   r  rL  r   )r%   r   all_sectionsr:   rg  rz  r   s          r'   r  &RawConfigParser._join_multiline_values  s    ''7 {'+~~';';'=? ,G$]]_	c4(())C.//1C $ 3 3 ? ?@G@D!K - !-r)   c                 p    UR                  5        H"  u  p#X0R                  U R                  U5      '   M$     g r!   )r   r;  r   )r%   r   r  r   s       r'   rS  RawConfigParser._read_defaults  s.     #..*JC49NN4++C01 +r)   c                 .   0 n U R                   U   n0 nU(       a:  UR	                  5        H&  u  pVUb  [        U5      nXdU R                  U5      '   M(     [        XCU R                  5      $ ! [         a    XR                  :w  a  [        U5      S e Nf = fr!   )	r:  r   r1  r   r   r   r   	_ChainMapr;  )r%   r:   r  sectiondictvardictr  r   s          r'   r  RawConfigParser._unify_values  s    
 	8..1K
 "jjl
$JE16((-. + t~~>>  	8...$W-47 /	8s   A, ,%BBc                     UR                  5       U R                  ;  a  [        SU-  5      eU R                  UR                  5          $ )NzNot a boolean: %s)r  BOOLEAN_STATESr   )r%   r   s     r'   r  #RawConfigParser._convert_to_boolean  s@     ;;= 3 3305899""5;;=11r)   r/   )r:   rR   r   c                    [        U[        5      (       d  [        S5      e[        U[        5      (       d  [        S5      eU R                  (       a  U(       a!  [        U[        5      (       d  [        S5      eg g )Nzsection names must be stringszoption keys must be stringszoption values must be strings)rO  r   rP  rJ  )r%   r:   rR   r   s       r'   _validate_value_types%RawConfigParser._validate_value_types  sd     '3'';<<&#&&9::##ueS)) ?@@ * (-r)   c                     U R                   $ r!   )r<  r,   s    r'   r3  RawConfigParser.converters  s    r)   )rJ  rT  r<  r;  r?  r9  rK  rL  rB  rH  r=  r:  rI  r1  r!   )z<string>)z<dict>)T)F)Cr0   r1   r2   r3   
_SECT_TMPLrE  rC  r   rN  r   r   rD  r  rG   rA  r@  r  r  _default_dictr   rM  r$   r   r\  r_  rb  rg  rw  r}  r  r  r   r  r  r  r  r  r   r  r   r  r   r  r  r  r  r  r  r  r  r  r  rq  r  r  r  r  r  r  rS  r  r  r  r  r3  r5   r   r   s   @r'   r   r   N  s   J
IL +_jjRZZ0GZZ	((u(5rzzBF 

<..U.;RZZHI**U#Kd$ eMN !% %/<5?",dD!,%&',/<b+
=)!6&
.> +0dV #5J9 7<$! .3;
 054 ;
 27T"O
 #D H<!13D2"
%!D'O*.:m$*>
K:?(2 02"B A*    r)   r   c                   L   ^  \ rS rSr\" 5       rSU 4S jjrU 4S jrS rSr	U =r
$ )r   i  c                 D   > U R                  X#S9  [        TU ]	  XU5        g N)rR   r   )r  rh   r   )r%   r:   rR   r   rj   s       r'   r   ConfigParser.set  s$     	""&">GU+r)   c                 B   > U R                  US9  [        TU ]	  U5        g )N)r:   )r  rh   r_  )r%   r:   rj   s     r'   r_  ConfigParser.add_section  s#     	""7"3G$r)   c                      U R                   n[        5       U l         U R                  U R                  U05        X l         g ! WU l         f = fr!   )rL  r   r  r1  )r%   r   hold_interpolations      r'   rS  ConfigParser._read_defaults  sD    	5!%!4!4"//DNND00(;<"4"4Ds   8A 	A
)rL  r!   )r0   r1   r2   r3   r   rN  r   r_  rS  r5   r   r   s   @r'   r   r     s"     01,%5 5r)   r   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 r\S 5       r\S 5       rSSSSS.S jjrSrg)r   i  c                     Xl         X l        UR                   H<  nSU-   n[        R                  " U R
                  [        X5      S9n[        XU5        M>     g )Nr   _impl)_parser_namer3  r  r  r   getattrsetattr)r%   r   rz  r  r  getters         r'   r$   SectionProxy.__init__  sJ    
%%D$,C&&txxwv7KLFDv& &r)   c                 8    SR                  U R                  5      $ )Nz<Section: {}>)rG   r(  r,   s    r'   r-   SectionProxy.__repr__  s    %%djj11r)   c                     U R                   R                  U R                  U5      (       d  [        U5      eU R                   R	                  U R                  U5      $ r!   )r'  r  r(  r   r   r  s     r'   r  SectionProxy.__getitem__  sB    ||&&tzz3773-||

C00r)   c                     U R                   R                  XS9  U R                   R                  U R                  X5      $ r  )r'  r  r   r(  r  s      r'   r  SectionProxy.__setitem__  s2    **#*C||

C77r)   c                     U R                   R                  U R                  U5      (       a+  U R                   R                  U R                  U5      (       d  [	        U5      eg r!   )r'  r  r(  r  r   r  s     r'   r  SectionProxy.__delitem__  sG    ''

C88**4::s;;3- <r)   c                 N    U R                   R                  U R                  U5      $ r!   )r'  r  r(  r  s     r'   r  SectionProxy.__contains__
  s    ||&&tzz377r)   c                 4    [        U R                  5       5      $ r!   )r   _optionsr,   s    r'   r  SectionProxy.__len__  s    4==?##r)   c                 >    U R                  5       R                  5       $ r!   )r8  r  r,   s    r'   r  SectionProxy.__iter__  s    }}''))r)   c                     U R                   U R                  R                  :w  a%  U R                  R                  U R                   5      $ U R                  R	                  5       $ r!   )r(  r'  r1  rg  r   r,   s    r'   r8  SectionProxy._options  sD    ::555<<''

33<<((**r)   c                     U R                   $ r!   )r'  r,   s    r'   r   SectionProxy.parser  s     ||r)   c                     U R                   $ r!   )r(  r,   s    r'   rz  SectionProxy.name  s     zzr)   NF)r   r  r&  c                j    U(       d  U R                   R                  nU" U R                  U4X4US.UD6$ r  )r'  r   r(  )r%   rR   r   r   r  r&  r   s          r'   r   SectionProxy.get#  s=     LL$$ETZZ 2S&2*02 	2r)   )r(  r'  r!   )r0   r1   r2   r3   r$   r-   r  r  r  r  r  r  r8  r  r   rz  r   r5   r6   r)   r'   r   r     sm    '21
8 
8$*+    2D2 2r)   r   c                   \    \ rS rSr\R
                  " S5      rS rS rS r	S r
S rS rS	rg
)r   i3  z^get(?P<name>.+)$c                 "   Xl         0 U l        [        U R                   5       Hi  nU R                  R	                  U5      nU(       a$  [        [        U R                   U5      5      (       d  MK  S U R                  UR                  S5      '   Mk     g )Nrz  )r'  _datadir	GETTERCREr   callabler)  r   )r%   r   r+  r   s       r'   r$   ConverterMapping.__init__=  sf    
$,,'F$$V,AHWT\\6%BCC*.DJJqwwv'	 (r)   c                      U R                   U   $ r!   )rF  r  s     r'   r  ConverterMapping.__getitem__F  s    zz#r)   c           	          SU-   nUS:X  a  [        S5      eX R                  U'   [
        R                  " U R                  R                  US9nX$l	        [        U R                  X45        U R                  R                  5        H.  n[
        R                  " UR                  US9n[        XSU5        M0     g ! [          a%    [        SR                  U[        U5      5      5      ef = f)Nr   zIncompatible key: {} (type: {})z)Incompatible key: cannot use "" as a name)r  r%  )rP  r   rG   rQ  rF  r  r  r'  r  	converterr*  valuesr   )r%   r  r   kfuncproxyr+  s          r'   r  ConverterMapping.__setitem__I  s    	8A :HII

3  !7!7eDa&\\((*E&&uyy=FEf% +  	8   &sDI 68 8	8s   B8 8/C'c                 *    SU=(       d    S -   nU R                  U	 [        R                  " U R
                  4U R
                  R                  5       5       H  n [        X25        M     g ! [          a    [        U5      ef = f! [         a     M:  f = f)Nr   )	rP  r   rF  r  r  r'  rO  delattrr{  )r%   r  rP  insts       r'   r  ConverterMapping.__delitem__Y  s    	 %A JJsOOOT\\OT\\5H5H5JKD  L  	 3-	  "  s   A+ B+B
BBc                 ,    [        U R                  5      $ r!   )rw   rF  r,   s    r'   r  ConverterMapping.__iter__g  s    DJJr)   c                 ,    [        U R                  5      $ r!   )r   rF  r,   s    r'   r  ConverterMapping.__len__j  s    4::r)   )rF  r'  N)r0   r1   r2   r3   r   r   rH  r$   r  r  r  r  r  r5   r6   r)   r'   r   r   3  s1     

/0I/&  r)   r   ).collections.abcr   r   collectionsr   r  rx   r  rn  r  rl  r   r  rF  __all__r   r  r   r   r#   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   objectrM  r   r   r   r   r   r   r   r   r   r   r6   r)   r'   <module>r`     si  h 5 -   	  	 	 
 H  

I 
 U  .E .465 66&E &+ +	9&8 	91 
.0 
.75 7@- -- -# # "# 
  E+ E+PI+M I+X UC U@|	 n |	 ~5? 5@C2> C2L8~ 8r)   