python (3.11.7)

(root)/
lib/
python3.11/
__pycache__/
configparser.cpython-311.opt-2.pyc

e	ddlmZddlmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZgdZe
ZdZdZGddeZGd	d
eZGddeZGd
deZGddeZGddeZGddeZGddeZGddeZGddeZGddeZeZGddZGdd eZ Gd!d"eZ!Gd#d$eZ"Gd%d&eZ#Gd'd(e#Z$Gd)d*e$Z%Gd+d,eZ&Gd-d.eZ'dS)/)MutableMapping)ChainMapN)NoSectionErrorDuplicateOptionErrorDuplicateSectionError
NoOptionErrorInterpolationErrorInterpolationDepthErrorInterpolationMissingOptionErrorInterpolationSyntaxErrorParsingErrorMissingSectionHeaderErrorConfigParserSafeConfigParserRawConfigParser
InterpolationBasicInterpolationExtendedInterpolationLegacyInterpolationSectionProxyConverterMappingDEFAULTSECTMAX_INTERPOLATION_DEPTHDEFAULT
c"eZdZ	ddZdZeZdS)ErrorcJ||_t||dSN)message	Exception__init__)selfmsgs  @/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/configparser.pyr#zError.__init__s%4%%%%%c|jSr )r!r$s r&__repr__zError.__repr__s
|r'N)r)__name__
__module____qualname__r#r*__str__r'r&rrs;1&&&&GGGr'rceZdZ	dZdS)rc`t|d|||_|f|_dS)NzNo section: )rr#sectionargsr$r2s  r&r#zNoSectionError.__init__s1
tt:;;;K			r'Nr+r,r-r#r/r'r&rrs&<     r'rceZdZ	ddZdS)rNct|dg}|hdt|g}|(|d||d|||}n|ddt
|d|||_||_	||_
|||f|_dS)N already existsWhile reading from  [line {0:2d}]z
: section rzSection r)reprappendformatextendinsertrr#joinr2sourcelinenor3)r$r2rArBr%r!s      r&r#zDuplicateSectionError.__init__sG}}/0,d6ll;G!/66v>>???NN<(((NN3CCJJq*%%%
tRWWS\\***ff-			r'NNr5r/r'r&rrs-......r'rceZdZ	ddZdS)rNct|dt|dg}|hdt|g}|(|d||d|||}n|ddt
|d|||_||_	||_
||_||||f|_dS)	Nz in section r8r9r:z	: option rzOption r)
r;r<r=r>r?rr#r@r2optionrArBr3)r$r2rFrArBr%r!s       r&r#zDuplicateOptionError.__init__sF||^T']] ",d6ll;G!/66v>>???NN;'''NN3CCJJq)$$$
tRWWS\\***fff5			r'rCr5r/r'r&rrs-666666r'rceZdZ	dZdS)rcvt|d|d|||_||_||f|_dS)Nz
No option z
 in section: rr#rFr2r3)r$rFr2s   r&r#zNoOptionError.__init__sJ
tt)	*	*	*W%			r'Nr5r/r'r&rrs&+&&&&&r'rceZdZ	dZdS)r	clt||||_||_|||f|_dSr rI)r$rFr2r%s    r&r#zInterpolationError.__init__s6
tS!!!Wc*			r'Nr5r/r'r&r	r	s&:+++++r'r	ceZdZ	dZdS)rcd||||}t||||||_||||f|_dS)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#	referencer3)r$rFr2rawvalrNr%s      r&r#z(InterpolationMissingOptionError.__init__sV!!'F!K!K		##D&'3???"Wfi8			r'Nr5r/r'r&rr	s&K99999r'rceZdZdS)rN)r+r,r-r/r'r&rrsr'rceZdZ	dZdS)r
cd||t|}t|||||||f|_dS)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#r3)r$rFr2rOr%s     r&r#z InterpolationDepthError.__init__ sU&*A!!	
	##D&'3???Wf-			r'Nr5r/r'r&r
r
s&:.....r'r
cTeZdZ	ddZedZejdZdZdS)r
Nc|r|rtd|s|std|r|}t|d|z||_g|_|f|_dS)Nz:Cannot specify both `filename' and `source'. Use `source'.z%Required argument `source' not given.z"Source contains parsing errors: %r)
ValueErrorrr#rAerrorsr3)r$rAfilenames   r&r#zParsingError.__init__-s		-..
.	&	DEEE
	F
tAFJKKKJ			r'cJ	tjdtd|jSNzNThe 'filename' attribute will be removed in Python 3.12. Use 'source' instead.
stacklevelwarningswarnDeprecationWarningrAr)s r&rWzParsingError.filename<s2'

$1	
	
	
	

{r'cN	tjdtd||_dSrYr]r$values  r&rWzParsingError.filenameFs5(

$1	
	
	
	

r'ch|j||f|xjd||fzz
c_dS)Nz
	[line %2d]: %s)rVr<r!)r$rBlines   r&r<zParsingError.appendPs:FD>***,~==r'rC)r+r,r-r#propertyrWsetterr<r/r'r&r
r
*srH



X__>>>>>r'r
ceZdZ	dZdS)rct|d|||fz||_||_||_|||f|_dS)Nz7File contains no section headers.
file: %r, line: %d
%r)rr#rArBrer3)r$rWrBres    r&r#z"MissingSectionHeaderError.__init__XsV
G
vt$
%	&	&	&	vt,			r'Nr5r/r'r&rrUs&J-----r'rc(eZdZ	dZdZdZdZdS)rc|Sr r/)r$parserr2rFrcdefaultss      r&
before_getzInterpolation.before_getlr'c|Sr r/r$rlr2rFrcs     r&
before_setzInterpolation.before_setoror'c|Sr r/rqs     r&before_readzInterpolation.before_readrror'c|Sr r/rqs     r&before_writezInterpolation.before_writeuror'N)r+r,r-rnrrrtrvr/r'r&rrisSLr'rcBeZdZ	ejdZdZdZdZdS)rz
%\(([^)]+)\)sc	fg}|||||||dd|SNr_interpolate_somer@r$rlr2rFrcrmLs       r&rnzBasicInterpolation.before_get7vvq%(ANNNwwqzzr'c|dd}|jd|}d|vr'td||dfz|S)Nz%%r%1invalid interpolation syntax in %r at position %dreplace_KEYCREsubrUfindr$rlr2rFrc	tmp_values      r&rrzBasicInterpolation.before_setpMM$++	L$$R33	)+.3Y^^C5H5H-IJKK
Kr'c
|||d|}|tkrt||||r|d}	|	dkr||dS|	dkr'||d|	||	d}|dd}
|
dkr |d|dd}n|
dkr|j|}|t||d|z||	d}||
d}	||}
n!#t$rt||||dwxYwd|
vr|
||||
|||dzn*||
nt||d	||dSdS)
NTrawfallbackrrrzrZ('bad interpolation variable reference %rz+'%' must be followed by '%' or '(', found: )getrr
rr<rmatchroptionxformgroupendKeyErrorrr|)r$rlrFaccumrestr2mapdepthrOpcmvarvs              r&r|z$BasicInterpolation._interpolate_somes/GVEE***)&'6BBB"	+		#A1uuT"""1uuT"1"X&&&ABBxQqS	ACxxS!!!ABBxcL&&t,,9267ADHJJJ((44AEEGGHH~@CAA@@@966;?@@!88**665!+2CDDDDLLOOOO.GG#'4*+++?"	+"	+"	+"	+"	+sEE*N	r+r,r-recompilerrnrrr|r/r'r&rrys[Ibj)**G
'+'+'+'+'+r'rcBeZdZ	ejdZdZdZdZdS)rz
\$\{([^}]+)\}c	fg}|||||||dd|Sryr{r}s       r&rnz ExtendedInterpolation.before_getrr'c|dd}|jd|}d|vr'td||dfz|S)Nz$$r$rrrs      r&rrz ExtendedInterpolation.before_setrr'c
6|||d|}|tkrt||||r`|d}	|	dkr||dS|	dkr'||d|	||	d}|dd}
|
dkr!|d|dd}n|
dkr|j|}|t||d|z|d	d	}||
d}|}
|}	t|dkr$||d}||}nct|dkr<|d}
||d}||
|d
}nt||d|nA#tttf$r't!|||d	|dwxYwd|vrA||||||
t'||
d
|dzn*||nt||d||^dSdS)
NTrrrrzrZ{r:)rzMore than one ':' found: z+'$' must be followed by '$' or '{', found: )rrr
rr<rrrrsplitrlenrrrrrr@r|dictitems)r$rlrFrrr2rrrOrrrpathsectoptrs                r&r|z'ExtendedInterpolation._interpolate_somesGVEE***)&'6BBB/	+		#A1uuT"""1uuT"1"X&&&ABBxQqS	ACxxS!!!ABBxcL&&t,,9267ADHJJJwwqzz'',,AEEGGHH~K4yyA~~$00a99HTa#Aw$00a99"JJtSdJ;;6"GG=ATCEEE!.-@KKK9$AAFJKK!88**63q$+/Tt0L0L+M+M+0196666LLOOOO.GG#'4*+++Y/	+/	+/	+/	+/	+s
	BG$$>H"Nrr/r'r&rrsZ>bj)**G
4+4+4+4+4+r'rcbeZdZ	ejdZfdZdZdZe	dZ
xZS)rz%\(([^)]*)\)s|.crtj|i|tjdtddS)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.rZr[superr#r^r_r`r$r3kwargs	__class__s   r&r#zLegacyInterpolation.__init__sO$)&)))

G
1		
	
	
	
	
	
r'c@|}t}|r{|dz}|rqd|vrmtj|j|}|j||}	||z}n1#t$r#}	t||||	jddd}	~	wwxYwn|{|rd|vrt||||S)Nrzz%()rlr)
r	functoolspartial_interpolation_replacerrrrr3r
)
r$rlr2rFrcvarsrOrres
          r&rnzLegacyInterpolation.before_gets'	QJE

#+D,G39;;;((%88F!DLEEFFF9<<AEFF		CTU]])&'6BBBsA
BA<<Bc|Sr r/rqs     r&rrzLegacyInterpolation.before_set.ror'c|d}||Sd||zS)Nrzz%%(%s)s)rr)rrlss   r&rz*LegacyInterpolation._interpolation_replace1s=KKNN9;;== v11!4444r')r+r,r-rrrr#rnrrstaticmethodr
__classcell__rs@r&rrs@bj+,,G




(55\55555r'rc
eZdZ	dZdZdZeZej	eej
Zej	edej
Z
ej	edej
Zej	dZddddddddd	Zd
edfddd
ddeeed
dZdZdZdZdZdZd;dZd;dZd<dZd=dZd;dZdd
eddZdZ dd
eddZ!dd
eddZ"dd
edd Z#dd
edd!Z$edd
ffd"	Z%d#Z&d$Z'd%Z(d;d&Z)d>d'Z*d(Z+d)Z,d*Z-d+Z.d,Z/d-Z0d.Z1d/Z2d0Z3d1Z4d2Z5d3Z6d4Z7d5Z8d6Z9d7d7d7d8d9Z:e;d:Z<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||_||_||_t||_||_t
||	|j|	<t||_|dkr|r|j	n|j
|_ndd|D}|r>tj|j|tj|_n=tj|j|tj|_t|pd|_t|pd|_||_||_||_|	|_|
|_|jt4ur|j|_|jt9|_t;|jt8s$t=dt?|j|t4ur|j ||r|!|dSdS)Nr|c3>K|]}tj|VdSr )rescape).0ds  r&	<genexpr>z+RawConfigParser.__init__.<locals>.<genexpr>ts*::!1::::::r'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$rm	dict_typeallow_no_valuerrrrrrrrrs
             r&r#zRawConfigParser.__init__cs.
+D11


)5dO)L)L
o& ,,##-;L4>>DLL::z:::::A
6!z$*;*B*B*B*K*K*,* 6 6 "z$.*?*?a*?*H*H*,* 6 6!&'7'=2!>!>(-.E.K(L(L%-&;#,+&(("&"=D&"///D$-}==	F*.t/B*C*CFF
V####J///	*)))))	*	*r'c|jSr )rr)s r&rmzRawConfigParser.defaultss
~r'cP	t|jSr )listrkeysr)s r&sectionszRawConfigParser.sectionss!ADN''))***r'c	||jkrtd|z||jvrt|||j|<t|||j|<dS)NzInvalid section name: %r)rrUrrrrrr4s  r&add_sectionzRawConfigParser.add_sectionsv	
d***7'ABBBdn$$'000"&**,,w!-dG!<!<
gr'c	||jvSr )rr4s  r&has_sectionzRawConfigParser.has_sections	$.((r'c		|j|}n#t$rt|dwxYw||jt
|Sr )rcopyrrrrrr)r$r2optss   r&optionszRawConfigParser.optionssyG	4>'*//11DD	4	4	4 ))t3	4DN###DIIKK   s#>c	t|tttjfr|g}tj|}g}|D]}	t||5}|||dddn#1swxYwYn#t$rYOwxYwt|tjrtj
|}|||S)N)encoding)rstrbytesosPathLikeio
text_encodingopen_readOSErrorfspathr<)r$	filenamesrread_okrWfps      r&readzRawConfigParser.reads+
	i#ubk!:;;	$"I#H--!	%	%H
(X666-"JJr8,,,---------------



(BK00
/9X..NN8$$$$s6BA;/B;A?	?BA?	B
BBcn	|	|j}n#t$rd}YnwxYw|||dS)Nz<???>)nameAttributeErrorr)r$frAs   r&	read_filezRawConfigParser.read_filesZ	>
!!
!
!
! 
!

1fs
<string>c\	tj|}|||dSr )rStringIOr)r$stringrAsfiles    r&read_stringzRawConfigParser.read_strings.5F##uf%%%%%r'<dict>cF	t}|D]\}}t|}	||n##tt
f$r|jr||vrYnwxYw|||D]\}}|t|}|t|}|jr||f|vrt||||||f||||dSr )
setrr
rrrUraddrr)r$
dictionaryrAelements_addedr2rkeyrcs        r&	read_dictzRawConfigParser.read_dictsW	'--//	.	.MGT'llG
  ))))):6


<G~$=$=

w'''"jjll
.
.
U&&s3xx00$JJE<EWcNn$D$D.wVDDD""GS>222#u----
.	.	.sAA/.A/cn	tjdtd|||dS)NzMThis method will be removed in Python 3.12. Use 'parser.read_file()' instead.rZr[)rA)r^r_r`r)r$rrWs   r&readfpzRawConfigParser.readfpsF0

01	
	
	
	

	
r(+++++r'rrrcH		|||}n#t$r|tur|cYSwxYw||}	||}n+#t$r|turt|||cYSwxYw|s||S|j|||||Sr )
_unify_valuesrrrrrrrn)r$r2rFrrrrrcs        r&rzRawConfigParser.get
s
		 ""7D11AA	 	 	 6!!		 
!!&))	 fIEE	 	 	 6!!#FG444		 	5%-L&11$2355
5s33A%A=<A=c2||j||fi|Sr )r)r$r2convrFrs     r&_getzRawConfigParser._get2s(tHDHWf7777888r'cp	|j|||f||d|S#ttf$r|tur|cYSwxYw)N)rr)r5rrr)r$r2rFr4rrrrs        r&	_get_convzRawConfigParser._get_conv5sp	49WdF'$''%''
'
.			6!!OOO	s55c4|j||tf|||d|SNr0)r7intr$r2rFrrrrs       r&getintzRawConfigParser.getint@s7t~gvs;$'/;;39;;	;r'c4|j||tf|||d|Sr9)r7floatr;s       r&getfloatzRawConfigParser.getfloatEs7t~gvu;#D'/;;39;;	;r'c4|j|||jf|||d|Sr9)r7_convert_to_booleanr;s       r&
getbooleanzRawConfigParser.getbooleanJs@t~gvt/GO"%D8OOGMOO	Or'c	tur tSj	jn*#t$rjkrtYnwxYwt}|r2|D]\}}||<fd|rfdfd|DS)NcLj||Sr )rrn)rFrr2r$s r&<lambda>z'RawConfigParser.items.<locals>.<lambda>gs)d&9&D&DTVQvY'+'+r'c|Sr r/)rFrs r&rEz'RawConfigParser.items.<locals>.<lambda>js!F)r'c*g|]}||fSr/r/)rrFvalue_getters  r&
<listcomp>z)RawConfigParser.items.<locals>.<listcomp>ks(GGG6f--.GGGr')
rrrrrrrrrrrrr)
r$r2rr	orig_keysr,rcrrHrs
``     @@r&rzRawConfigParser.itemsOsA		f77==??"N!!	.
HHT^G,----	.	.	.$...$W---/.	.NN		1"jjll
1
1
U+0$""3''((++++++	43333LGGGGYGGGGs
 A++$BBc`	|D]}||}||=||fcStr )rrr$r,rcs   r&popitemzRawConfigParser.popitemmsE	==??		CIES	:r'c*|Sr )lower)r$	optionstrs  r&rzRawConfigParser.optionxformzs   r'c	|r||jkr||}||jvS||jvrdS||}||j|vp||jvS)NF)rrrr)r$r2rFs   r&
has_optionzRawConfigParser.has_option}s	N	1'T%999%%f--FT^++
DN
*
*5%%f--FdnW550/
1r'c	|r|j||||}|r||jkr|j}n-	|j|}n#t
$rt
|dwxYw||||<dSr )rrrrrrrrr)r$r2rFrcsectdicts     r&r(zRawConfigParser.sets	:'224&38::E	8'T%999~HH
8>'2
8
8
8$W--47
8-2!!&))***s
AA c\	|r!d|jd}n
|jd}|jr4|||j|j||jD]7}||||j||8dS)Nz {} r)r=rr_write_sectionrrr)r$rspace_around_delimitersrr2s     r&writezRawConfigParser.writes	#	$

d.q122AA #A>	?D$8$(N$8$8$:$:A
?
?
?~	D	DGG $w 7 = = ? ?
D
D
D
D	D	Dr'c	|d||D]}\}}|j||||}||js'|t|ddz}nd}|d||~|ddS)Nz[{}]

z
	rz{}{}
)rXr=rrvrr
r)r$rsection_name
section_items	delimiterr,rcs       r&rVzRawConfigParser._write_sections;
..///'	2	2JC'44T<5:<<E (< !CJJ$6$6tV$D$DDHHX__S%001111
r'c	|r||jkr|j}n-	|j|}n#t$rt	|dwxYw||}||v}|r||=|Sr )rrrrrr)r$r2rFrTexisteds     r&
remove_optionzRawConfigParser.remove_options	8'T%999~HH
8>'2
8
8
8$W--47
8!!&))H$	! s	
&Ac>	||jv}|r|j|=|j|=|Sr )rr)r$r2r_s   r&remove_sectionzRawConfigParser.remove_sections2$T^+	'w'
g&r'cz||jkr$||st||j|Sr )rrrrr$r,s  r&__getitem__zRawConfigParser.__getitem__s<$&&&t/?/?/D/D&3--}S!!r'c||vr|||urdS||jkr|jn(||jvr|j||||idSr )rrclearrr-rLs   r&__setitem__zRawConfigParser.__setitem__s$;;49--F$&&&N  """"
DN
"
"N3%%'''U|$$$$$r'c||jkrtd||st|||dS)Nz"Cannot remove the default section.)rrUrrrbrds  r&__delitem__zRawConfigParser.__delitem__s[$&&&ABBB$$	 3--C     r'cB||jkp||Sr )rrrds  r&__contains__zRawConfigParser.__contains__s#d**Cd.>.>s.C.CCr'c0t|jdzS)Nrz)rrr)s r&__len__zRawConfigParser.__len__s4>""Q&&r'cftj|jf|jSr )	itertoolschainrrrr)s r&__iter__zRawConfigParser.__iter__s( 468K8K8M8MNNNr'c	t}d}d}d}d}d}d}	t|dD]\}}
tj}d|jD}|tjkr|ri}
|D]c\}}|
||dz}|dkr%||
|<|dks#|dkr-|
|dz
rt||}d|
}|tjkr||j	D]-}|

|rd}n.|tjkrd}|
d|
}|s?|jr*|'|%|r#||||
dntj}g|j|
}|r|nd}|%|r#||kr||
||}|j|}|r|d}||jvr?|jr||vrt-||||j|}||n^||jkr|j}nK|}||j|<t7|||j|<||d}|t;|||
|j|}|r|dd	d
\}}}|s||	|||
}	| |!}|jr||f|vrtE|||||||f||
}|g||<|d||<||	|||
}	|#|	r|	dS)Nrrz)startci|]}|dS)r/)rrs  r&
<dictcomp>z)RawConfigParser._read.<locals>.<dictcomp>sLLLq"LLLr'rvrheaderrFvirc)$r(	enumeratesysmaxsizerrrisspaceminrstrip
startswithrr<NONSPACECREsearchrtSECTCRErrrrrr)rrrrrrr
_handle_errorrrstripr_join_multiline_values)r$rfpnamer+cursectsectnameoptnamerBindent_levelrre
comment_startinline_prefixes
next_prefixesprefixindexrcfirst_nonspacecur_indent_levelmoryoptvals                      r&rzRawConfigParser._reads	 %b222\	H\	HLFDKMLLd.KLLLO3;..?. "
%4%:%:%<%<BBMFE IIfeAg66E{{ ,1M&)zzeaiiDqM4I4I4K4Ki(+M5(A(A
"/ 3;..?.0

::<<**622$%ME++ $
-(..00E
.
/&-+,(4(//333$';L!-44T::N9GN~33555Q## <// ''.... 0\''...H!xx11H4>11<@H,F,F"7&8>#@#@@"&.":&**84444!T%999"&."&**,,3:x02>tX2N2N
h/&**8444"GG_3FFDIII++E22BH.0hhxw.O.O+V&L $ 2 21ffd K KA"&"2"27>>3C3C"D"D LG%w/>AA"6x7=v#G#GG&**Hg+>???"-%+\\^^F06xGG,,04GG,,!..q&&$GG##%%%	G		r'cx|j|jf}tj|f|j}|D]{\}}|D]a\}}t
|tr'd|	}|j
||||||<b|dS)NrZ)rrrprqrrrrr@rrrt)r$rmall_sectionsr2r
rvals       r&rz&RawConfigParser._join_multiline_valuesns'7 {'+~';';'='=?? ,	K	KGW$]]__
K
K	cc4((2))C..//11C $ 3 ? ?@G@Dc!K!K


K	K	Kr'cv	|D]"\}}||j||<#dSr )rrr)r$rmr,rcs    r&rzRawConfigParser._read_defaultszsK	+"..**	:	:JC49DN4++C0011	:	:r'cn|st|}||t||Sr )r
r<r;)r$excrrBres     r&rzRawConfigParser._handle_errors6	'v&&C

64::&&&
r'c6	i}	|j|}n+#t$r||jkrt|dYnwxYwi}|rC|D].\}}|t|}||||</t|||jSr )	rrrrrr
r	_ChainMapr)r$r2rsectiondictvardictr,rcs       r&r2zRawConfigParser._unify_valuess		8.1KK	8	8	8$...$W--47/.	8	7"jjll
7
7
U$JJE16((--..+t~>>>s
%;;c	||jvrtd|z|j|S)NzNot a boolean: %s)rOBOOLEAN_STATESrUrbs  r&rAz#RawConfigParser._convert_to_booleansG	;;== 333058999"5;;==11r'r)r2rFrcc	t|tstdt|tstd|jr|r&t|tstddSdS)Nzsection names must be stringszoption keys must be stringszoption values must be strings)rr
rr)r$r2rFrcs    r&_validate_value_typesz%RawConfigParser._validate_value_typess	'3''	=;<<<&#&&	;9:::#	Au	AeS))
A ?@@@
A
A	A	Ar'c|jSr )rr)s r&rzRawConfigParser.converterssr'r )r )r&)T)>r+r,r-
_SECT_TMPLrrrrrrrrr=rrrr
_default_dictrrr#rmrrrr
rrr%r-r/rr5r7r<r?rBrrMrrRr(rXrVr`rbrerhrjrlrnrrrrrrr2rArrfrrrs@r&rr:s?6J
IL+]__bjRZ00G
RZ	((u(55rz
B
BF
<..U.;;RZHHI"*U##Kd$ eMMN!%
 %+*5?",dD!,%&+*+*+*+*+*Z+++
===)))!!!6



&&&&
....>,,,,+0dV#5#5#5#5#5J9997<$!.3;;;;;
054 ;;;;;
27T"OOOOO
#DHHHHHH<!!!1113333DDDD(


"""
%%%!!!DDD'''OOOxxxt
K
K
K:::???(22202"BAAAAA*  X     r'rcFeZdZ	eZdfd	ZfdZdZxZS)rNc~	|||t|||dSN)rFrc)rrr()r$r2rFrcrs    r&r(zConfigParser.setsA	.""&">>>
GVU+++++r'cx	||t|dS)N)r2)rrr)r$r2rs  r&rzConfigParser.add_sections?		
""7"333
G$$$$$r'c		|j}t|_||j|i||_dS#||_wxYwr )rrr-r)r$rmhold_interpolations   r&rzConfigParser._read_defaultss^	
	5!%!4"///DNND0(;<<<"4D"4D4444s6A	Ar )	r+r,r-rrr(rrrrs@r&rrsw2//11,,,,,,%%%%%5555555r'rc eZdZ	fdZxZS)rcrtj|i|tjdtddS)NzThe SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in Python 3.12. Use ConfigParser directly instead.rZr[rrs   r&r#zSafeConfigParser.__init__sN$)&)))

2
1		
	
	
	
	
	
r')r+r,r-r#rrs@r&rrs;B








r'rceZdZ	dZdZdZdZdZdZdZ	dZ
d	Zed
Z
edZdd
ddddZdS)rc	||_||_|jD]A}d|z}tj|jt
||}t|||BdS)Nr_impl)_parser_namerrrrgetattrsetattr)r$rlrr4r,getters      r&r#zSectionProxy.__init__snN
%	'	'D$,C&txwvs7K7KLLLFD#v&&&&	'	'r'c6d|jS)Nz
<Section: {}>)r=rr)s r&r*zSectionProxy.__repr__s%%dj111r'c|j|j|st||j|j|Sr )rrRrrrrds  r&rezSectionProxy.__getitem__sD|&&tz377	 3--|
C000r'c||j|||j|j||Sr)rrr(rrLs   r&rhzSectionProxy.__setitem__s9**#U*CCC|
C777r'c|j|j|r |j|j|st	|dSr )rrRrr`rrds  r&rjzSectionProxy.__delitem__sP''
C88	 **4:s;;	 3--	 	 r'cB|j|j|Sr )rrRrrds  r&rlzSectionProxy.__contains__s|&&tz3777r'cDt|Sr )r_optionsr)s r&rnzSectionProxy.__len__s4==??###r'cN|Sr )rrrr)s r&rrzSectionProxy.__iter__s}}'')))r'c|j|jjkr|j|jS|jSr )rrrr
rmr)s r&rzSectionProxy._optionss@:555<''
333<((***r'c|jSr )rr)s r&rlzSectionProxy.parsers|r'c|jSr )rr)s r&rzSectionProxy.nameszr'NF)rrrcF	|s|jj}||j|f|||d|Sr9)rrr)r$rFrrrrrs       r&rzSectionProxy.getsN		%L$EuTZ2St&22*022	2r'r )r+r,r-r#r*rerhrjrlrnrrrrfrlrrr/r'r&rrs5'''222111
888   
888$$$***+++XX
2D
2
2
2
2
2
2
2r'rcTeZdZ	ejdZdZdZdZdZ	dZ
dZdS)	rz^get(?P<name>.+)$c||_i|_t|jD]^}|j|}|r"tt
|j|sAd|j|d<_dS)Nr)r_datadir	GETTERCRErcallablerr)r$rlrrs    r&r#zConverterMapping.__init__8s
$,''	/	/F$$V,,A
HWT\6%B%BCC
*.DJqwwv''		/	/r'c|j|Sr )rrds  r&rezConverterMapping.__getitem__Asz#r'c		d|z}n>#t$r1td|t|wxYw|dkrtd||j|<tj|jj|}||_	t|j|||jD].}tj|j|}t|||/dS)NrzIncompatible key: {} (type: {})z)Incompatible key: cannot use "" as a name)r4r)
rrUr=rrrrrr7	converterrvaluesr)r$r,rckfuncproxyrs       r&rhzConverterMapping.__setitem__Ds	8AA	8	8	8  &sDII 6 688
8	8
::HIII
3 !7eDDDa&&&\((**	&	&E&uy===FE1f%%%%	&	&s	;Ac	d|pdz}n#t$rt|wxYw|j|=tj|jf|jD]#}	t||#t$rY wxYwdS)Nr)	rrrrprqrrdelattrr)r$r,rinsts    r&rjzConverterMapping.__delitem__Ts	 %AA	 	 	 3--	 JsOOT\OT\5H5H5J5JKK		D
a    !



		s
$$A55
BBc*t|jSr )iterrr)s r&rrzConverterMapping.__iter__bsDJr'c*t|jSr )rrr)s r&rnzConverterMapping.__len__es4:r'N)r+r,r-rrrr#rerhrjrrrnr/r'r&rr.s
/00I///&&&    r'r)(collections.abcrcollectionsrrrrrprrr{r^__all__rrrrr"rrrrrr	rrr
r
robjectrrrrrrrrrrr/r'r&<module>rs!KZ+*****------												



555






I


     U   .....E...46666656666&&&&&E&&&++++++++	9	9	9	9	9&8	9	9	91
.
.
.
.
.0
.
.
.(>(>(>(>(>5(>(>(>V--------"








 E+E+E+E+E+E+E+E+PG+G+G+G+G+MG+G+G+T,5,5,5,5,5-,5,5,5^~	 ~	 ~	 ~	 ~	 n~	 ~	 ~	 B55555?555@









|





C2C2C2C2C2>C2C2C2L88888~88888r'