Viewing File: /opt/alt/python35/lib64/python3.5/__pycache__/configparser.cpython-35.opt-2.pyc



]@sddlmZddlmZmZddlZddlZddl	Z	ddl
Z
ddlZddlZdddddd	d
ddd
dddddddddddgZ
dZdZGdddeZGdddeZGdddeZGdddeZGd ddeZGd!ddeZGd"d
d
eZGd#ddeZGd$d	d	eZGd%ddeZGd&d
d
eZeZGd'ddZGd(ddeZGd)ddeZ Gd*ddeZ!Gd+ddeZ"Gd,dde"Z#Gd-dde#Z$Gd.ddeZ%Gd/ddeZ&dS)0)MutableMapping)OrderedDictChainMapNNoSectionErrorDuplicateOptionErrorDuplicateSectionError
NoOptionErrorInterpolationErrorInterpolationDepthErrorInterpolationMissingOptionErrorInterpolationSyntaxErrorParsingErrorMissingSectionHeaderErrorConfigParserSafeConfigParserRawConfigParser
InterpolationBasicInterpolationExtendedInterpolationLegacyInterpolationSectionProxyConverterMappingDEFAULTSECTMAX_INTERPOLATION_DEPTHZDEFAULT
c@s1eZdZdddZddZeZdS)ErrorcCs||_tj||dS)N)message	Exception__init__)selfmsgr"1/opt/alt/python35/lib64/python3.5/configparser.pyrs	zError.__init__cCs|jS)N)r)r r"r"r#__repr__szError.__repr__N)__name__
__module____qualname__rr$__str__r"r"r"r#rsrc@seZdZddZdS)rcCs0tj|d|f||_|f|_dS)NzNo section: %r)rrsectionargs)r r)r"r"r#rs	zNoSectionError.__init__N)r%r&r'rr"r"r"r#rsc@s"eZdZddddZdS)rNcCst|dg}|dk	rudt|g}|dk	rR|jdj||jd|j||}n|jddtj|dj|||_||_	||_
|||f|_dS)Nz already existszWhile reading from z [line {0:2d}]z
: section rzSection r)reprappendformatextendinsertrrjoinr)sourcelinenor*)r r)r1r2r!rr"r"r#rs

				zDuplicateSectionError.__init__)r%r&r'rr"r"r"r#rsc@s"eZdZddddZdS)rNcCst|dt|dg}|dk	rdt|g}|dk	r^|jdj||jd|j||}n|jddtj|dj|||_||_	||_
||_||||f|_dS)	Nz in section z already existszWhile reading from z [line {0:2d}]z	: option rzOption r)
r+r,r-r.r/rrr0r)optionr1r2r*)r r)r3r1r2r!rr"r"r#rs 	

					zDuplicateOptionError.__init__)r%r&r'rr"r"r"r#rsc@seZdZddZdS)rcCs?tj|d||f||_||_||f|_dS)NzNo option %r in section: %r)rrr3r)r*)r r3r)r"r"r#rs
		zNoOptionError.__init__N)r%r&r'rr"r"r"r#rsc@seZdZddZdS)r	cCs8tj||||_||_|||f|_dS)N)rrr3r)r*)r r3r)r!r"r"r#rs		zInterpolationError.__init__N)r%r&r'rr"r"r"r#r	sc@seZdZddZdS)rcCsPdj||||}tj||||||_||||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	referencer*)r r3r)rawvalr4r!r"r"r#r	s
	z(InterpolationMissingOptionError.__init__N)r%r&r'rr"r"r"r#rsc@seZdZdS)rN)r%r&r'r"r"r"r#rsc@seZdZddZdS)r
cCsDdj||t|}tj|||||||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	rr*)r r3r)r5r!r"r"r#rs
		z InterpolationDepthError.__init__N)r%r&r'rr"r"r"r#r
sc@sUeZdZddddZeddZejddZddZdS)	r
NcCsz|r|rtdn)|r8|r8tdn|rD|}tj|d|||_g|_|f|_dS)Nz:Cannot specify both `filename' and `source'. Use `source'.z%Required argument `source' not given.z"Source contains parsing errors: %r)
ValueErrorrrr1errorsr*)r r1filenamer"r"r#r*s		zParsingError.__init__cCstjdtdd|jS)NzSThe 'filename' attribute will be removed in future versions.  Use 'source' instead.
stacklevel)warningswarnDeprecationWarningr1)r r"r"r#r89s
zParsingError.filenamecCs#tjdtdd||_dS)NzSThe 'filename' attribute will be removed in future versions.  Use 'source' instead.r9r:)r;r<r=r1)r valuer"r"r#r8Cs
cCs3|jj||f|jd||f7_dS)Nz
	[line %2d]: %s)r7r,r)r r2liner"r"r#r,MszParsingError.append)r%r&r'rpropertyr8setterr,r"r"r"r#r
's

c@seZdZddZdS)rcCsNtj|d|||f||_||_||_|||f|_dS)Nz7File contains no section headers.
file: %r, line: %d
%r)rrr1r2r?r*)r r8r2r?r"r"r#rUs			z"MissingSectionHeaderError.__init__N)r%r&r'rr"r"r"r#rRsc@s@eZdZddZddZddZddZd	S)
rcCs|S)Nr")r parserr)r3r>defaultsr"r"r#
before_getiszInterpolation.before_getcCs|S)Nr")r rBr)r3r>r"r"r#
before_setlszInterpolation.before_setcCs|S)Nr")r rBr)r3r>r"r"r#before_readoszInterpolation.before_readcCs|S)Nr")r rBr)r3r>r"r"r#before_writerszInterpolation.before_writeN)r%r&r'rDrErFrGr"r"r"r#rfsc@sCeZdZejdZddZddZddZdS)	rz
%\(([^)]+)\)scCs2g}|j||||||ddj|S)Nr)_interpolate_somer0)r rBr)r3r>rCLr"r"r#rDszBasicInterpolation.before_getcCsV|jdd}|jjd|}d|krRtd||jdf|S)Nz%%r%z1invalid interpolation syntax in %r at position %d)replace_KEYCREsubr6find)r rBr)r3r>	tmp_valuer"r"r#rEszBasicInterpolation.before_setcCs|j||ddd|}|tkr<t|||x|r|jd}	|	dkrq|j|dS|	dkr|j|d|	||	d}|dd}
|
dkr|jd|dd}q?|
dkr|jj|}|dkr t||d	||j|j	d}||j
d}y||}
Wn*tk
rt||||dYnXd|
kr|j
||||
|||dq|j|
q?t||d
|fq?WdS)NrawTfallbackrKrrHr:(z'bad interpolation variable reference %rz/'%%' must be followed by '%%' or '(', found: %r)getrr
rOr,rMmatchroptionxformgroupendKeyErrorrrI)r rBr3accumrestr)mapdepthr5pcmvarvr"r"r#rIsF	

	

z$BasicInterpolation._interpolate_someN)	r%r&r'recompilerMrDrErIr"r"r"r#rvsc@sCeZdZejdZddZddZddZdS)	rz
\$\{([^}]+)\}cCs2g}|j||||||ddj|S)NrHr)rIr0)r rBr)r3r>rCrJr"r"r#rDsz ExtendedInterpolation.before_getcCsV|jdd}|jjd|}d|krRtd||jdf|S)Nz$$r$z1invalid interpolation syntax in %r at position %d)rLrMrNr6rO)r rBr)r3r>rPr"r"r#rEsz ExtendedInterpolation.before_setcCs|j||ddd|}|tkr<t|||xg|r|jd}	|	dkrq|j|dS|	dkr|j|d|	||	d}|dd}
|
dkr|jd|dd}q?|
dkr|jj|}|dkr t||d	||jdj	d
}||j
d}|}
|}yt|dkr|j|d}||}nct|dkr|d}
|j|d}|j|
|dd}nt||d|fWn<t
ttfk
r1t|||d
j|dYnXd|kry|j|||||
t|j|
dd|dq|j|q?t||d|fq?WdS)
NrQTrRrerrHr:{z'bad interpolation variable reference %r:zMore than one ':' found: %rz-'$' must be followed by '$' or '{', found: %r)rTrr
rOr,rMrUrrWsplitrXlenrVrYrrrr0rIdictitems)r rBr3rZr[r)r\r]r5r^r_r`pathZsectoptrbr"r"r#rIs^	

	


#z'ExtendedInterpolation._interpolate_someN)	r%r&r'rcrdrMrDrErIr"r"r"r#rsc@sIeZdZejdZddZddZeddZ	dS)	rz%\(([^)]*)\)s|.c
Cs|}t}x|r|d8}|rd|krtj|jd|}|jj||}y||}Wqtk
r}	z$t||||	jddWYdd}	~	XqXqPqW|rd|krt	||||S)NrHz%(rBr)
r	functoolspartial_interpolation_replacerMrNrYrr*r
)
r rBr)r3r>varsr5r]rLer"r"r#rDs"	
	2zLegacyInterpolation.before_getcCs|S)Nr")r rBr)r3r>r"r"r#rE"szLegacyInterpolation.before_setcCs:|jd}|dkr%|jSd|j|SdS)NrHz%%(%s)s)rWrV)rUrBsr"r"r#rp%s
z*LegacyInterpolation._interpolation_replaceN)
r%r&r'rcrdrMrDrEstaticmethodrpr"r"r"r#rscsjeZdZdZdZdZeZej	eej
Zej	ejddej
Z
ej	ejddej
Zej	dZddd	dd
ddddd
dd
dd
dd
iZded
dduddvdddddddedededdZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zdd*d+Zdd,d-Zd.d/d0Zd1d2d3Zdd4d5Zd6d
d7dd8ed9d:Zd;d<Z d6d
d7dd8ed=d>Z!d6d
d7dd8ed?d@Z"d6d
d7dd8edAdBZ#d6d
d7dd8edCdDZ$ed
dfdEdFZ%dGdHZ&dIdJZ'dKdLZ(ddMdNZ)ddOdPZ*dQdRZ+dSdTZ,dUdVZ-dWdXZ.dYdZZ/d[d\Z0d]d^Z1d_d`Z2dadbZ3dcddZ4dedfZ5dgdhZ6didjZ7dkdlZ8dmdndodndpdndqdrZ9e:dsdtZ;S)wrz
        \[                                 # [
        (?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
        delimz=|:z\S1TyestrueZon0FnofalseZoffN
delimiters=rgcomment_prefixes#;inline_comment_prefixesstrictempty_lines_in_valuesdefault_section
interpolation
converterscCs||_|j|_|j|_t||_|j|_t||	|j|	<|rx0|jD]"\}}
|
|j|j|<qnWt	||_
|dkr|r|jn|j|_
nsdjdd|D}|rtj|jjd|tj|_
n'tj|jjd|tj|_
t	|pLf|_t	|paf|_||_||_||_|	|_|
|_|jtkr|j|_|jdkrt|_|tk	r|jj|dS)Nr}rg|css|]}tj|VqdS)N)rcescape).0dr"r"r#	<genexpr>ksz+RawConfigParser.__init__.<locals>.<genexpr>ru)r}rg) _dict	_sections	_defaultsr_converters_proxiesrrkrVtuple_delimiters	OPTCRE_NVOPTCRE_optcrer0rcrd_OPT_NV_TMPLr-VERBOSE	_OPT_TMPL_comment_prefixes_inline_comment_prefixes_strict_allow_no_value_empty_lines_in_valuesr_interpolation_UNSET_DEFAULT_INTERPOLATIONrupdate)r rCZ	dict_typeZallow_no_valuer|r~rrrrrrkeyr>rr"r"r#rWs>						zRawConfigParser.__init__cCs|jS)N)r)r r"r"r#rCszRawConfigParser.defaultscCst|jjS)N)listrkeys)r r"r"r#sectionsszRawConfigParser.sectionscCsg||jkrtd|||jkr:t||j|j|<t|||j|<dS)NzInvalid section name: %r)rr6rrrrr)r r)r"r"r#add_sectionszRawConfigParser.add_sectioncCs
||jkS)N)r)r r)r"r"r#has_sectionszRawConfigParser.has_sectioncCs[y|j|j}Wn!tk
r:t|dYnX|j|jt|jS)N)rcopyrYrrrrr)r r)Zoptsr"r"r#optionss
zRawConfigParser.optionscCst|tr|g}g}xc|D][}y0t|d|}|j||WdQRXWntk
rrw%YnX|j|q%W|S)Nencoding)
isinstancestropen_readOSErrorr,)r 	filenamesrZread_okr8fpr"r"r#reads	

zRawConfigParser.readcCsH|dkr4y
|j}Wntk
r3d}YnX|j||dS)Nz<???>)nameAttributeErrorr)r fr1r"r"r#	read_files

zRawConfigParser.read_filez<string>cCs#tj|}|j||dS)N)ioStringIOr)r stringr1Zsfiler"r"r#read_stringszRawConfigParser.read_stringz<dict>cCs$t}x|jD]\}}t|}y|j|Wn0ttfk
rq|jrm||krmYnX|j|x|jD]\}}|jt|}|dk	rt|}|jr||f|krt	||||j||f|j|||qWqWdS)N)
setrkrrrr6raddrVr)r Z
dictionaryr1elements_addedr)rrr>r"r"r#	read_dicts"
	
zRawConfigParser.read_dictcCs-tjdtdd|j|d|dS)NzRThis method will be removed in future versions.  Use 'parser.read_file()' instead.r9r:r1)r;r<r=r)r rr8r"r"r#readfps
zRawConfigParser.readfprQrqrRcCsy|j||}Wn(tk
r@|tkr8n|SYnX|j|}y||}Wn4tk
r|tkrt||n|SYnX|s|dkr|S|jj|||||SdS)N)
_unify_valuesrrrVrYrrrD)r r)r3rQrqrRrr>r"r"r#rTs"
	
	zRawConfigParser.getcKs||j|||S)N)rT)r r)convr3kwargsr"r"r#_getszRawConfigParser._getcKsXy&|j|||d|d||SWn+ttfk
rS|tkrK|SYnXdS)NrQrq)rrrr)r r)r3rrQrqrRrr"r"r#	_get_conv"szRawConfigParser._get_convcKs(|j||td|d|d||S)NrQrqrR)rint)r r)r3rQrqrRrr"r"r#getint-szRawConfigParser.getintcKs(|j||td|d|d||S)NrQrqrR)rfloat)r r)r3rQrqrRrr"r"r#getfloat2szRawConfigParser.getfloatcKs+|j|||jd|d|d||S)NrQrqrR)r_convert_to_boolean)r r)r3rQrqrRrr"r"r#
getboolean7szRawConfigParser.getbooleanc
stkrtjSjjyjjWn-tk
rojkrkt	YnX|rx-|jD]\}}|j
|<qWfdd|rfddfddjDS)Ncs jj||S)N)rrD)r3)rr)r r"r#<lambda>Ssz'RawConfigParser.items.<locals>.<lambda>cs|S)Nr")r3)rr"r#rVscs"g|]}||fqSr"r")rr3)value_getterr"r#
<listcomp>Ws	z)RawConfigParser.items.<locals>.<listcomp>)rsuperrkrrrrrYrrrVr)r r)rQrqrr>)	__class__)rr)r rr#rk<s

zRawConfigParser.itemscCs9x,|jD]}||}||=||fSWtdS)N)rrY)r rr>r"r"r#popitemYs

zRawConfigParser.popitemcCs
|jS)N)lower)r Z	optionstrr"r"r#rVfszRawConfigParser.optionxformcCsx|s||jkr2|j|}||jkS||jkrEdS|j|}||j|kps||jkSdS)NF)rrVrr)r r)r3r"r"r#
has_optionis
zRawConfigParser.has_optioncCs|r!|jj||||}|s7||jkrC|j}n5y|j|}Wn!tk
rwt|dYnX|||j|<dS)N)rrErrrrYrrV)r r)r3r>sectdictr"r"r#rws	
zRawConfigParser.setcCs|rdj|jd}n
|jd}|jrW|j||j|jj|x4|jD])}|j|||j|j|qaWdS)Nz {} r)r-rr_write_sectionrrkr)r rZspace_around_delimitersrr)r"r"r#writes
	zRawConfigParser.writecCs|jdj|x|D]{\}}|jj||||}|dk	sZ|jry|t|jdd}nd}|jdj||qW|jddS)Nz[{}]

z
	rz{}{}
)rr-rrGrrrL)r rZsection_nameZ
section_items	delimiterrr>r"r"r#rs	zRawConfigParser._write_sectioncCs|s||jkr"|j}n5y|j|}Wn!tk
rVt|dYnX|j|}||k}|r||=|S)N)rrrrYrrV)r r)r3rexistedr"r"r#
remove_options
zRawConfigParser.remove_optioncCs-||jk}|r)|j|=|j|=|S)N)rr)r r)rr"r"r#remove_sections


zRawConfigParser.remove_sectioncCs6||jkr+|j|r+t||j|S)N)rrrYr)r rr"r"r#__getitem__szRawConfigParser.__getitem__cCsV||jkr|jjn ||jkr?|j|j|j||idS)N)rrclearrr)r rr>r"r"r#__setitem__s
zRawConfigParser.__setitem__cCsG||jkrtd|j|s6t||j|dS)Nz"Cannot remove the default section.)rr6rrYr)r rr"r"r#__delitem__s
zRawConfigParser.__delitem__cCs||jkp|j|S)N)rr)r rr"r"r#__contains__szRawConfigParser.__contains__cCst|jdS)NrH)rir)r r"r"r#__len__szRawConfigParser.__len__cCstj|jf|jjS)N)	itertoolschainrrr)r r"r"r#__iter__szRawConfigParser.__iter__cCsFt}d}d}d}d}d}d}	xt|ddD]\}}
tj}dd|jD}x|tjkr|ri}
x|jD]v\}}|
j||d}|dkrq||
|<|dks|dkr|
|djrt||}qW|
}qnWx-|j	D]"}|
j
j|r$d}Pq$W|tjkr_d}|
d|j
}|s|jr|dkr|dk	r|r||dk	r||j
dq@tj}q@|jj|
}|r|jnd}|dk	r.|r.||kr.||j
|q@|}|jj|}|r|jd}||jkr|jr||krt||||j|}|j|nW||jkr|j}n<|j}||j|<t|||j|<|j|d}q@|dkr/t|||
q@|jj|}|r|jdd	d
\}}}|s|j|	|||
}	|j |j!}|jr||f|krt"|||||j||f|dk	r|j
}|g||<q(d||<q@|j|	|||
}	q@W|j#|	rB|	dS)NrstartrHcSsi|]}d|qS)rHr")rr^r"r"r#
<dictcomp>s	z)RawConfigParser._read.<locals>.<dictcomp>rheaderr3vir>r)$r	enumeratesysmaxsizerrkrOisspaceminrstrip
startswithrr,NONSPACECREsearchrSECTCRErUrWrrrrrrrrrrr
_handle_errorrVrstripr_join_multiline_values)r rfpnamerZcursectZsectnameZoptnamer2Zindent_levelrrr?Z
comment_startZinline_prefixesZ
next_prefixesprefixindexr>Zfirst_nonspaceZcur_indent_levelmorZoptvalr"r"r#rs		
,
				


			

zRawConfigParser._readcCs|j|jf}tj|f|jj}xt|D]l\}}x]|jD]O\}}t|trdj|j	}|j
j||||||<qPWq7WdS)Nr)rrrrrrkrrr0rrrF)r rCZall_sectionsr)rrvalr"r"r#rVsz&RawConfigParser._join_multiline_valuescCs,|st|}|j|t||S)N)r
r,r+)r excrr2r?r"r"r#rbszRawConfigParser._handle_errorc
Csi}y|j|}Wn-tk
rF||jkrBt|YnXi}|rxE|jD]7\}}|dk	rt|}|||j|<q`Wt|||jS)N)	rrYrrrkrrV	_ChainMapr)r r)rqZsectiondictZvardictrr>r"r"r#rhs
zRawConfigParser._unify_valuescCs6|j|jkr%td||j|jS)NzNot a boolean: %s)rBOOLEAN_STATESr6)r r>r"r"r#r|sz#RawConfigParser._convert_to_booleanr)rr3r>cCset|tstdt|ts6td|jsF|rat|tsatddS)Nzsection names must be stringszoption keys must be stringszoption values must be strings)rr	TypeErrorr)r r)r3r>r"r"r#_validate_value_typess
z%RawConfigParser._validate_value_typescCs|jS)N)r)r r"r"r#rszRawConfigParser.converters)r}rg)rr)<r%r&r'Z
_SECT_TMPLrrrrrcrdrrr-rrrr
_default_dictrrrrCrrrrrrrrrrTrrrrrrkrrVrrrrrrrrrrrrrrrrrrr@rr"r")rr#r.st		!!$		%


zcs@eZdZeZdfddZfddZS)rNcs0|jd|d|tj|||dS)Nr3r>)rrr)r r)r3r>)rr"r#rszConfigParser.setcs$|jd|tj|dS)Nr))rrr)r r))rr"r#rszConfigParser.add_section)r%r&r'rrrrr"r")rr#rs	cs"eZdZfddZS)rcs-tj||tjdtdddS)NzThe SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.r9r:)rrr;r<r=)r r*r)rr"r#rszSafeConfigParser.__init__)r%r&r'rr"r")rr#rsc	@seZdZddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZeddZ
eddZdddddddddZdS)rcCse||_||_xL|jD]A}d|}tj|jdt||}t|||qWdS)NrT_impl)_parser_namerrnrorTgetattrsetattr)r rBrrrgetterr"r"r#rs		
!zSectionProxy.__init__cCsdj|jS)Nz
<Section: {}>)r-r)r r"r"r#r$szSectionProxy.__repr__cCs:|jj|j|s$t||jj|j|S)N)rrrrYrT)r rr"r"r#rszSectionProxy.__getitem__cCs2|jjd|d||jj|j||S)Nr3r>)rrrr)r rr>r"r"r#rszSectionProxy.__setitem__cCs@|jj|j|o-|jj|j|s<t|dS)N)rrrrrY)r rr"r"r#rszSectionProxy.__delitem__cCs|jj|j|S)N)rrr)r rr"r"r#rszSectionProxy.__contains__cCst|jS)N)ri_options)r r"r"r#rszSectionProxy.__len__cCs|jjS)N)rr)r r"r"r#rszSectionProxy.__iter__cCs9|j|jjkr(|jj|jS|jjSdS)N)rrrrrC)r r"r"r#rszSectionProxy._optionscCs|jS)N)r)r r"r"r#rBszSectionProxy.parsercCs|jS)N)r)r r"r"r#rszSectionProxy.nameNrQFrqrc
Ks7|s|jj}||j|d|d|d||S)NrQrqrR)rrTr)r r3rRrQrqrrr"r"r#rTs
zSectionProxy.get)r%r&r'rr$rrrrrrrr@rBrrTr"r"r"r#rs	c@sgeZdZejdZddZddZddZdd	Z	d
dZ
dd
ZdS)rz^get(?P<name>.+)$cCs{||_i|_xbt|jD]Q}|jj|}|s"tt|j|r]q"d|j|jd<q"WdS)Nr)r_datadir	GETTERCRErUcallablerrW)r rBrr`r"r"r#r
s		 zConverterMapping.__init__cCs|j|S)N)r)r rr"r"r#rszConverterMapping.__getitem__c
Csyd|}Wn0tk
r@tdj|t|YnX|dkrYtd||j|<tj|jjd|}||_	t
|j||x?|jjD].}tj|jd|}t
|||qWdS)NrTzIncompatible key: {} (type: {})z)Incompatible key: cannot use "" as a namerr)
rr6r-typerrnrorr	converterrvaluesrT)r rr>kfuncproxyrr"r"r#rs
	
	zConverterMapping.__setitem__cCsyd|pd}Wntk
r4t|YnX|j|=xRtj|jf|jjD]/}yt||Wqatk
rwaYqaXqaWdS)NrT)	rrYrrrrrdelattrr)r rrinstr"r"r#r)s

(
zConverterMapping.__delitem__cCs
t|jS)N)iterr)r r"r"r#r7szConverterMapping.__iter__cCs
t|jS)N)rir)r r"r"r#r:szConverterMapping.__len__N)r%r&r'rcrdr
rrrrrrr"r"r"r#rs	)'collections.abcrcollectionsrrrrrnrrrcrr;__all__rrrrrrrrr	rrr
r
robjectrrrrrrrrrrr"r"r"r#<module>sP					
	

+	HJ&q
F
Back to Directory File Manager