python (3.12.0)

(root)/
lib/
python3.12/
__pycache__/
configparser.cpython-312.opt-2.pyc

ˑe	ddlmZddlmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZdZe
ZdZdZGddeZGd	d
eZGddeZGd
deZGddeZGddeZGddeZGddeZGddeZGddeZGddeZeZGddZGdd eZ Gd!d"eZ!Gd#d$eZ"Gd%d&eZ#Gd'd(e#Z$Gd)d*eZ%Gd+d,eZ&y)-)MutableMapping)ChainMapN)NoSectionErrorDuplicateOptionErrorDuplicateSectionError
NoOptionErrorInterpolationErrorInterpolationDepthErrorInterpolationMissingOptionErrorInterpolationSyntaxErrorParsingErrorMissingSectionHeaderErrorConfigParserRawConfigParser
InterpolationBasicInterpolationExtendedInterpolationLegacyInterpolationSectionProxyConverterMappingDEFAULTSECTMAX_INTERPOLATION_DEPTHDEFAULT
c eZdZ	ddZdZeZy)Errorc>||_tj||yN)message	Exception__init__)selfmsgs  @/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/configparser.pyr!zError.__init__s4%c|jSr)rr"s r$__repr__zError.__repr__s||r%N))__name__
__module____qualname__r!r(__str__r%r$rrs1&Gr%rceZdZ	dZy)rcTtj|d|||_|f|_y)NzNo section: )rr!sectionargsr"r1s  r$r!zNoSectionError.__init__s#
t:;K	r%Nr*r+r,r!r.r%r$rrs
< r%rceZdZ	ddZy)rNcvt|dg}|Tdt|g}| |jdj||jd|j||}n|j	ddt
j
|dj|||_||_	||_
|||f|_y)N already existsWhile reading from  [line {0:2d}]z
: section rzSection r))reprappendformatextendinsertrr!joinr1sourcelinenor2)r"r1r@rAr#rs      r$r!zDuplicateSectionError.__init__sG}/0,d6l;G!/66v>?NN<(NN3CJJq*%
tRWWS\*ff-	r%NNr4r.r%r$rrs.r%rceZdZ	ddZy)rNct|dt|dg}|Tdt|g}| |jdj||jd|j||}n|j	ddt
j
|dj|||_||_	||_
||_||||f|_y)	Nz in section r7r8r9z	: option rzOption r))
r:r;r<r=r>rr!r?r1optionr@rAr2)r"r1rEr@rAr#rs       r$r!zDuplicateOptionError.__init__sF|^T'] ",d6l;G!/66v>?NN;'NN3CJJq)$
tRWWS\*fff5	r%rBr4r.r%r$rrs6r%rceZdZ	dZy)rcjtj|d|d|||_||_||f|_y)Nz
No option z
 in section: rr!rEr1r2)r"rEr1s   r$r!zNoOptionError.__init__s4
t)	*W%	r%Nr4r.r%r$rrs
+&r%rceZdZ	dZy)r	c`tj||||_||_|||f|_yrrH)r"rEr1r#s    r$r!zInterpolationError.__init__s,
tS!Wc*	r%Nr4r.r%r$r	r	s
:+r%r	ceZdZ	dZy)rcdj||||}tj||||||_||||f|_y)NzBad value substitution: option {!r} in section {!r} contains an interpolation key {!r} which is not a valid option name. Raw value: {!r})r<r	r!	referencer2)r"rEr1rawvalrMr#s      r$r!z(InterpolationMissingOptionError.__init__sI!!'F!K		##D&'3?"Wfi8	r%Nr4r.r%r$rr	s
K9r%rceZdZy)rN)r*r+r,r.r%r$rrsr%rceZdZ	dZy)r
cxdj||t|}tj|||||||f|_y)NzRecursion limit exceeded in value substitution: option {!r} in section {!r} contains an interpolation key which cannot be substituted in {} steps. Raw value: {!r})r<rr	r!r2)r"rEr1rNr#s     r$r!z InterpolationDepthError.__init__ sF&*A!	
	##D&'3?Wf-	r%Nr4r.r%r$r
r
s
:.r%r
c&eZdZ	fdZdZxZS)r
cVt|d|||_g|_|f|_y)Nz Source contains parsing errors: )superr!r@errorsr2)r"r@	__class__s  r$r!zParsingError.__init__-s/
;F:FGJ	r%cr|jj||f|xjd||fzz
c_y)Nz
	[line %2d]: %s)rUr;r)r"rAlines   r$r;zParsingError.append3s0FD>*,~==r%)r*r+r,r!r;
__classcell__rVs@r$r
r
*sH>r%r
ceZdZ	dZy)rcztj|d|||fz||_||_||_|||f|_y)Nz7File contains no section headers.
file: %r, line: %d
%r)rr!r@rArXr2)r"filenamerArXs    r$r!z"MissingSectionHeaderError.__init__;sH
G
vt$
%	&	vt,	r%Nr4r.r%r$rr8s
J-r%rc&eZdZ	dZdZdZdZy)rc|Srr.)r"parserr1rEvaluedefaultss      r$
before_getzInterpolation.before_getOr%c|Srr.r"r`r1rEras     r$
before_setzInterpolation.before_setRrdr%c|Srr.rfs     r$before_readzInterpolation.before_readUrdr%c|Srr.rfs     r$before_writezInterpolation.before_writeXrdr%N)r*r+r,rcrgrirkr.r%r$rrLsLr%rcDeZdZ	ejdZdZdZdZy)rz
%\(([^)]+)\)sc	Vg}|j||||||ddj|SNr)_interpolate_somer?r"r`r1rErarbLs       r$rczBasicInterpolation.before_getm/vvq%(ANwwqzr%c|jdd}|jjd|}d|vrtd||j	dfz|S)Nz%%r)%1invalid interpolation syntax in %r at position %dreplace_KEYCREsub
ValueErrorfindr"r`r1rEra	tmp_values      r$rgzBasicInterpolation.before_setr`MM$+	LL$$R3	)+.3Y^^C5H-IJK
Kr%c
|j||d|}|tkDr
t||||r|jd}	|	dkr|j	|y|	dkDr|j	|d|	||	d}|dd}
|
dk(r|j	d|dd}n|
dk(r|j
j
|}|t||d|z|j|jd}||jd}	||}
d|
vr|j||||
|||dzn"|j	|
nt||d	||ryy#t$rt||||dwxYw)
NTrawfallbackrvrro('bad interpolation variable reference %rz+'%' must be followed by '%' or '(', found: )getrr
r}r;rzmatchroptionxformgroupendKeyErrorrrq)r"r`rEaccumrestr1mapdepthrNpcmvarvs              r$rqz$BasicInterpolation._interpolate_somezsGVE**)&'6BB		#A1uT"1uT"1X&ABxQq	ACxS!ABxcLL&&t,9267ADHJJ((4AEEGH~@CA!8**665!+2CDLLO.G#'*++?, @96;?@@s<EE!N	r*r+r,recompilerzrcrgrqr.r%r$rr\s*Ibjj)*G
'+r%rcDeZdZ	ejdZdZdZdZy)rz
\$\{([^}]+)\}c	Vg}|j||||||ddj|Srnrprrs       r$rcz ExtendedInterpolation.before_getrtr%c|jdd}|jjd|}d|vrtd||j	dfz|S)Nz$$r)$rwrxr~s      r$rgz ExtendedInterpolation.before_setrr%c
|j||d|}|tkDr
t||||r|jd}	|	dkr|j	|y|	dkDr|j	|d|	||	d}|dd}
|
dk(r|j	d|dd}n:|
dk(r$|j
j
|}|t||d|z|jdjd	}||jd}|}
|}	t|dk(r|j|d}||}nLt|dk(r.|d}
|j|d}|j|
|d
}nt||d|d|vr5|j%|||||
t'|j)|
d
|dzn"|j	|nt||d||ryy#tttf$rt!|||d	j#|dwxYw)
NTrrrror{r:)rzMore than one ':' found: z+'$' must be followed by '$' or '{', found: )rrr
r}r;rzrrrsplitrlenrrrrrr?rqdictitems)r"r`rErrr1rrrNrrrpathsectoptrs                r$rqz'ExtendedInterpolation._interpolate_somes=GVE**)&'6BB		#A1uT"1uT"1X&ABxQq	ACxS!ABxcLL&&t,9267ADHJJwwqz'',AEEGH~K4yA~$00a9HTa#Aw$00a9"JJtSdJ;6"G=ACEE!8**63q$+/Tt0L+M+0196LLO.G#'*++YD!.-@K9$AFJKKs
A4G3H
Nrr.r%r$rrs)>bjj)*G
4+r%rc`eZdZ	ejdZfdZdZdZe	dZ
xZS)rz%\(([^)]*)\)s|.c\t||i|tjdtdy)NzLegacyInterpolation has been deprecated since Python 3.2 and will be removed from the configparser module in Python 3.13. Use BasicInterpolation or ExtendedInterpolation instead.r)
stacklevel)rTr!warningswarnDeprecationWarning)r"r2kwargsrVs   r$r!zLegacyInterpolation.__init__s.
$)&)


G
1		
r%c@|}t}|rS|dz}|rHd|vrDtj|j|}|jj||}	||z}nn|rS|rd|vr
t||||S#t$r!}	t||||	jddd}	~	wwxYw)Nroz%()r`r)
r	functoolspartial_interpolation_replacerzr{rrr2r
)
r"r`r1rEravarsrNrryes
          r$rczLegacyInterpolation.before_gets'QJE#++D,G,G39;((%8F!DLE
TU])&'6BB F9<AEFFsA33	B<BBc|Srr.rfs     r$rgzLegacyInterpolation.before_setrdr%cp|jd}||jSd|j|zS)Nroz%%(%s)s)rr)rr`ss   r$rz*LegacyInterpolation._interpolation_replaces6KKN9;;= v11!444r%)r*r+r,rrrzr!rcrgstaticmethodrrYrZs@r$rrs?@bjj+,G
(55r%rc
eZdZ	dZdZdZeZejeejZejejdejZ
ejejdejZejdZddddddddd	Zd
edfddd
ddeeed
dZdZdZdZdZdZd8dZd8dZd9dZd:dZdd
eddZdZdd
eddZ dd
eddZ!dd
eddZ"dd
eddZ#edd
ffd	Z$d Z%d!Z&d"Z'd8d#Z(d;d$Z)d%Z*d&Z+d'Z,d(Z-d)Z.d*Z/d+Z0d,Z1d-Z2d.Z3d/Z4d0Z5d1Z6d2Z7d3Z8d4d4d4d5d6Z9e:d7Z;xZ<S)<rz
        \[                                 # [
        (?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)1yestrueon0nofalseoffN=r)#;)
delimiterscomment_prefixesinline_comment_prefixesstrictempty_lines_in_valuesdefault_section
interpolation
convertersc||_|j|_|j|_t||_|j|_t
||	|j
|	<t||_|dk(r |r|jn|j|_ndjd|D}|rDtj|jj!|tj"|_nCtj|j$j!|tj"|_t|xsd|_t|xsd|_||_||_||_|	|_|
|_|j2t4ur|j6|_|j2t9|_t;|j2t8s!t=dt?|j2|t4ur|jjA||r|jC|yy)Nr|c3FK|]}tj|ywr)rescape).0ds  r$	<genexpr>z+RawConfigParser.__init__.<locals>.<genexpr>Ws:!1:s!rr.zSinterpolation= must be None or an instance of Interpolation; got an object of type )"_dict	_sections	_defaultsr_converters_proxiesrtuple_delimiters	OPTCRE_NVOPTCRE_optcrer?rr_OPT_NV_TMPLr<VERBOSE	_OPT_TMPL_comment_prefixes_inline_comment_prefixes_strict_allow_no_value_empty_lines_in_valuesr_interpolation_UNSET_DEFAULT_INTERPOLATIONr
isinstance	TypeErrortypeupdate_read_defaults)
r"rb	dict_typeallow_no_valuerrrrrrrrrs
             r$r!zRawConfigParser.__init__Fs
+D1


)5dO)L

o& ,#-;4>>DL:z::A!zz$*;*;*B*B*B*K*,** 6 "zz$..*?*?a*?*H*,** 6!&'7'=2!>(-.E.K(L%-&;#,+&("&"="=D&"//D$--}=**.t/B/B*C)DF
V###J/)r%c|jSr)rr's r$rbzRawConfigParser.defaultsss~~r%cJ	t|jjSr)listrkeysr's r$sectionszRawConfigParser.sectionsvsADNN'')**r%c	||jk(rtd|z||jvrt||j	|j|<t|||j|<y)NzInvalid section name: %r)rr|rrrrrr3s  r$add_sectionzRawConfigParser.add_section{sh	
d***7'ABBdnn$'00"&**,w!-dG!<

gr%c 	||jvSr)rr3s  r$has_sectionzRawConfigParser.has_sections	$..((r%c		|j|j}|j	|j
t
|jS#t$r
t|dwxYwr)rcopyrrrrrr)r"r1optss   r$optionszRawConfigParser.optionssbG	4>>'*//1D	
DNN#DIIK  	4 )t3	4sAA*c	t|tttjfr|g}tj|}g}|D]k}	t||5}|j||dddt|tjrtj|}|j|m|S#1swYMxYw#t$rYwxYw)N)encoding)rstrbytesosPathLikeio
text_encodingopen_readOSErrorfspathr;)r"	filenamesrread_okr]fps      r$readzRawConfigParser.reads
	i#ubkk!:;"I##H-!	%H
(X6-"JJr8,-(BKK099X.NN8$	%--

s*
B?B3'B?3B<	8B??	C
Ccj	|
	|j}|j||y#t$rd}Y wxYw)Nz<???>)nameAttributeErrorr	)r"fr@s   r$	read_filezRawConfigParser.read_filesB	>
!	

1f"
! 
!s$22cT	tj|}|j||yr)rStringIOr)r"stringr@sfiles    r$read_stringzRawConfigParser.read_strings!5F#uf%r%c	t}|jD]\}}t|}	|j||j||jD]q\}}|jt|}|t|}|jr||f|vr
t||||j||f|j|||sy#tt
f$r|jr||vrYwxYwr)
setrrrrr|raddrr)r"
dictionaryr@elements_addedr1rkeyras        r$	read_dictzRawConfigParser.read_dicts	'--/	.MGT'lG
  )
w'"jjl
.
U&&s3x0$JE<<WcNn$D.wVDD""GS>2#u-
.	.*:6
<<G~$=
sC C:9C:rrrc 		|j||}|j|}	||}|s||S|jj|||||S#t$r|tur|cYSwxYw#t$r|turt|||cYSwxYwr)
_unify_valuesrrrrrrrc)r"r1rErrrrras        r$rzRawConfigParser.gets
		 ""7D1A!!&)	 fIE%-L&&11$235
5#	 6!		 	 6!#FG44		 s"AA+A('A(+B
B
c6||j||fi|Sr)r)r"r1convrErs     r$_getzRawConfigParser._getsHDHHWf7788r%ct	|j|||f||d|S#ttf$r|tur|cYSwxYw)N)rr)r&rrr)r"r1rEr%rrrrs        r$	_get_convzRawConfigParser._get_convsU	499WdF'$'%'
'
.	6!O	s77c<|j||tf|||d|SNr!)r(intr"r1rErrrrs       r$getintzRawConfigParser.getints/t~~gvs;$'/;39;	;r%c<|j||tf|||d|Sr*)r(floatr,s       r$getfloatzRawConfigParser.getfloats/t~~gvu;#D'/;39;	;r%cH|j|||jf|||d|Sr*)r(_convert_to_booleanr,s       r$
getbooleanzRawConfigParser.getboolean$s9t~~gvt/G/GO"%D8OGMO	Or%c		turt
	Sjj				jjt	j}|r,|jD]\}}|	j|<	fd}|r	fd}|Dcgc]}|||fc}S#t$rjk7rtYwxYwcc}w)NcHjj||Sr)rrc)rErr1r"s r$<lambda>z'RawConfigParser.items.<locals>.<lambda>As'd&9&9&D&DTVQvY'+r%c|Srr.)rErs r$r6z'RawConfigParser.items.<locals>.<lambda>Ds!F)r%)
rrTrrrrrrrrrrr)r"r1rr	orig_keysrravalue_getterrErrVs``       @r$rzRawConfigParser.items)s		f7=?"NN!	.
HHT^^G,-N	"jjl
1
U+0$""3'(
1+3L=FG6f-.GG	.$...$W--/	.HsC.C+#C('C(cT	|jD]}||}||=||fcStr)rrr"rras   r$popitemzRawConfigParser.popitemGs?	==?	CIES	:	r%c"|jSr)lower)r"	optionstrs  r$rzRawConfigParser.optionxformTs  r%c	|r||jk(r|j|}||jvS||jvry|j|}||j|vxs||jvS)NF)rrrr)r"r1rEs   r$
has_optionzRawConfigParser.has_optionWs	N'T%9%99%%f-FT^^++
DNN
*%%f-FdnnW550/
1r%c	|r|jj||||}|r||jk(r
|j}n	|j|}|||j|<y#t
$r
t
|dwxYwr)rrgrrrrrr)r"r1rErasectdicts     r$rzRawConfigParser.setes''224&38:E'T%9%99~~H
8>>'2.3!!&)*
8$W-47
8sA%%A;cj	|rdj|jd}n|jd}|jr6|j||j|jj||jD]1}|j|||j|j|3y)Nz {} r)r<rr_write_sectionrrr)r"rspace_around_delimitersrr1s     r$writezRawConfigParser.writess	#

d..q12A  #A>>D$8$8$(NN$8$8$:A
?~~	DGG $w 7 = = ?
D	Dr%cX	|jdj||D]s\}}|jj||||}||js|t|j
ddz}nd}|jdj||u|jdy)Nz[{}]

z
	r)z{}{}
)rGr<rrkrrry)r"rsection_name
section_items	delimiterrras       r$rEzRawConfigParser._write_sections;
./'	2JC''44T<5:<E (<(<!CJ$6$6tV$DDHHX__S%01	2	r%c	|r||jk(r
|j}n	|j|}|j|}||v}|r||=|S#t$r
t	|dwxYwr)rrrrrr)r"r1rErCexisteds     r$
remove_optionzRawConfigParser.remove_options{'T%9%99~~H
8>>'2!!&)H$ 

8$W-47
8sAA"c\	||jv}|r|j|=|j|=|Sr)rr)r"r1rNs   r$remove_sectionzRawConfigParser.remove_sections3$T^^+w'

g&r%cv||jk7r|j|st||j|Sr)rrrrr"rs  r$__getitem__zRawConfigParser.__getitem__s6$&&&t/?/?/D3-}}S!!r%c||vr|||ury||jk(r|jjn+||jvr|j|j|j	||iyr)rrclearrr r;s   r$__setitem__zRawConfigParser.__setitem__sj$;49-$&&&NN  "
DNN
"NN3%%'U|$r%c||jk(rtd|j|st||j	|y)Nz"Cannot remove the default section.)rr|rrrQrSs  r$__delitem__zRawConfigParser.__delitem__sB$&&&ABB$3-C r%cF||jk(xs|j|Sr)rrrSs  r$__contains__zRawConfigParser.__contains__s#d***Cd.>.>s.CCr%c2t|jdzS)Nro)rrr's r$__len__zRawConfigParser.__len__s4>>"Q&&r%cttj|jf|jj	Sr)	itertoolschainrrrr's r$__iter__zRawConfigParser.__iter__s) 4 468K8K8MNNr%cn	t}d}d}d}d}d}d}	t|dD]t\}}
tj}|jDcic]}|d}
}|tjk(r|
ri}|
jD]S\}}|
j
||dz}|dk(r!|||<|dk(s|dkDs1|
|dz
jsHt||}U|}
|tjk(r|
r|jD]%}|
jj|s#d}n|tjk(rd}|
d|j}|s>|jr |.|,|r*||%||jdntj}b|jj|
}|r|j!nd}||r||kDr||j||}|j"j%|}|r|j'd}||j(vr>|j*r||vr
t-||||j(|}|j/|ne||j0k(r
|j2}nI|j5}||j(|<t7|||j8|<|j/|d}|
t;|||
|j<j%|}|r|j'ddd	\}}}|s|j?|	|||
}	|jA|jC}|j*r||f|vrtE|||||j/||f||j}|g||<Zd||<a|j?|	|||
}	w|jG|	r|	ycc}w)
Nrro)startr)headerrEvira)$r	enumeratesysmaxsizerrr}isspaceminrstrip
startswithrr;NONSPACECREsearchrcSECTCRErrrrrrrrrrrrr
_handle_errorrrstripr_join_multiline_values)r"rfpnamercursectsectnameoptnamerAindent_levelrrX
comment_startrinline_prefixes
next_prefixesprefixindexrafirst_nonspacecur_indent_levelmorfoptvals                       r$r	zRawConfigParser._reads	 %b2\	HLFDKKM.2.K.KLq"uLOL3;;.? "
%4%:%:%<BMFE IIfeAg6E{ ,1M&)zeaiDqM4I4I4K(+M5(A

B#0 3;;.?00
::<**62$%M
+ $
-(..0E..&-+(4(//3$';;L!--44T:N9G~335Q# </ ''. 0\\''.!xx1H4>>1<<H,F"7&8>#@@"&..":&**84!T%9%99"&.."&**,3:x02>tX2N

h/&**84"G_3FFDII++E2B.0hhxw.O+V& $ 2 21ffd KA"&"2"27>>3C"D LL%w/>A"6x7=v#GG&**Hg+>?"-%+\\^F06xGG,04GG,!..q&&$Gy\	Hz	
##%G
yMs

N2cv|j|jf}tj|f|jj}|D]m\}}|jD]U\}}t
|trdj|j}|jj||||||<Woy)NrI)rrr_r`rrrrr?rrrri)r"rball_sectionsr1rrvals       r$rsz&RawConfigParser._join_multiline_valuesHs''7 {'+~~';';'=? ,	KGW$]]_
K	cc4())C.//1C $ 3 3 ? ?@G@Dc!K

K	Kr%cr	|jD]#\}}||j|j|<%yr)rrr)r"rbrras    r$rzRawConfigParser._read_defaultsTs:	+"..*	:JC49DNN4++C01	:r%cV|st|}|j|t||Sr)r
r;r:)r"excrtrArXs     r$rqzRawConfigParser._handle_errorZs&v&C

64:&
r%c$	i}	|j|}i}|r9|j	D]&\}}|t|}|||j
|<(t|||jS#t$r||jk7rt|dYzwxYwr)	rrrrrrr	_ChainMapr)r"r1rsectiondictvardictrras       r$r#zRawConfigParser._unify_values`s		8..1K
"jjl
7
U$JE16((-.
7+t~~>>	8$...$W-47/	8sA(($BBc	|j|jvrtd|z|j|jS)NzNot a boolean: %s)r>BOOLEAN_STATESr|)r"ras  r$r2z#RawConfigParser._convert_to_booleantsC	;;= 3 3305899""5;;=11r%r))r1rErac	t|tstdt|tstd|jr|rt|tstdyy)Nzsection names must be stringszoption keys must be stringszoption values must be strings)rrrr)r"r1rEras    r$_validate_value_typesz%RawConfigParser._validate_value_types{s`	'3';<<&#&9::##ueS) ?@@*(-r%c|jSr)rr's r$rzRawConfigParser.converterssr%r)z<string>)z<dict>)T)=r*r+r,
_SECT_TMPLrrrrrrrrpr<rrrnr
_default_dictrrr!rbrrrrrrrr rr&r(r-r0r3rr<rrArrGrErOrQrTrWrYr[r]rar	rsrrqr#r2rpropertyrrYrZs@r$rrs6J
IL+_bjjRZZ0G
RZZ	((u(5rzz
BF

<..U.;RZZHI"**U#Kd$ eMN!%
 %+*5?",dD!,%&+*Z+
=)!6
&
.>+0dV#5J97<$!.3;
054 ;
27T"O
#DH<!13D(
"
%!D'Oxt
K:?(202"BA*  r%rc@eZdZ	eZdfd	ZfdZdZxZS)rcP	|j||t|	|||yN)rEra)rrTr)r"r1rErarVs    r$rzConfigParser.sets+	.""&">
GVU+r%cJ	|j|t|	|y)N)r1)rrTr)r"r1rVs  r$rzConfigParser.add_sections(		
""7"3
G$r%c		|j}t|_|j|j|i||_y#|_wxYwr)rrr r)r"rbhold_interpolations   r$rzConfigParser._read_defaultssK	
	5!%!4!4"//DNND00(;<"4D"4Ds8A	Ar)	r*r+r,rrrrrrYrZs@r$rrs2/1,%5r%rcveZdZ	dZdZdZdZdZdZdZ	dZ
d	Zed
Z
edZdd
ddddZy)rc	||_||_|jD]?}d|z}tj|j
t
||}t|||Ay)Nr_impl)_parser_namerrrrgetattrsetattr)r"r`rr%rgetters      r$r!zSectionProxy.__init__sZN
%%	'D$,C&&txxwvs7KLFD#v&	'r%c8dj|jS)Nz
<Section: {}>)r<rr's r$r(zSectionProxy.__repr__s%%djj11r%c|jj|j|st||jj	|j|Sr)rrArrrrSs  r$rTzSectionProxy.__getitem__s?||&&tzz373-||

C00r%c|jj|||jj|j||Sr)rrrrr;s   r$rWzSectionProxy.__setitem__s6**#U*C||

C77r%c|jj|j|r&|jj|j|st	|yr)rrArrOrrSs  r$rYzSectionProxy.__delitem__sA''

C8**4::s;3-<r%cN|jj|j|Sr)rrArrSs  r$r[zSectionProxy.__contains__s||&&tzz377r%c4t|jSr)r_optionsr's r$r]zSectionProxy.__len__s4==?##r%c>|jjSr)rrar's r$razSectionProxy.__iter__s}}''))r%c|j|jjk7r%|jj|jS|jj	Sr)rrrrrbr's r$rzSectionProxy._optionssD::555<<''

33<<((**r%c|jSr)rr's r$r`zSectionProxy.parsers||r%c|jSr)rr's r$rzSectionProxy.nameszzr%NF)rrrcd	|s|jj}||j|f|||d|Sr*)rrr)r"rErrrrrs       r$rzSectionProxy.getsD	LL$$ETZZ2St&2*02	2r%r)r*r+r,r!r(rTrWrYr[r]rarrr`rrr.r%r$rrsk5'21
8 
8$*+
2D
2r%rcVeZdZ	ejdZdZdZdZdZ	dZ
dZy)	rz^get(?P<name>.+)$c
||_i|_t|jD]]}|jj	|}|rtt
|j|s@d|j|jd<_y)Nr)r_datadir	GETTERCRErcallablerr)r"r`rrs    r$r!zConverterMapping.__init__sj
$,,'	/F$$V,AHWT\\6%BC*.DJJqwwv'		/r%c |j|Sr)rrSs  r$rTzConverterMapping.__getitem__szz#r%c		d|z}|dk(rtd||j|<tj|jj|}||_	t|j|||jjD]0}tj|j|}t|||2y#t$r%tdj|t|wxYw)NrzIncompatible key: {} (type: {})z)Incompatible key: cannot use "" as a name)r%r)
rr|r<rrrrrr(	converterrvaluesr)r"rrakfuncproxyrs       r$rWzConverterMapping.__setitem__s	8A
:HII

3  !7!7eDa&\\((*	&E&&uyy=FE1f%	&	8  &sDI 68
8	8sB==.C+c	d|xsdz}|j|=tj|j
f|j
j
D]}	t||y#t$rt|wxYw#t$rY6wxYw)Nr)	rrrr_r`rrdelattrr)r"rrinsts    r$rYzConverterMapping.__delitem__!s	 %A
JJsOOOT\\OT\\5H5H5JK	D
a 		 3-	 "

s	A$A<$A9<	BBc,t|jSr)iterrr's r$razConverterMapping.__iter__/sDJJr%c,t|jSr)rrr's r$r]zConverterMapping.__len__2s4::r%N)r*r+r,rrrr!rTrWrYrar]r.r%r$rrs8

/0I/&  r%r)'collections.abcrcollectionsrrrrr_rrrhr__all__rrrrr rrrrrr	rrr
r
robjectrrrrrrrrrr.r%r$<module>rs>KZ+-			
5


I
 U .E.46566&E&++	9&8	91
.0
.>5>--"


 E+E+PG+MG+T,5-,5^u	 nu	 p5?5@C2>C2L8~8r%