MINI MINI MANI MO

Path : /usr/lib64/python3.6/__pycache__/
File Upload :
Current File : //usr/lib64/python3.6/__pycache__/configparser.cpython-36.opt-2.pyc

3


 \X@sddlmZddlmZmZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
dddddd	d
ddd
dddddddddddgZdZdZGdddeZGdddeZGdddeZGdddeZGd ddeZGd!ddeZGd"d
d
eZGd#ddeZGd$d	d	eZGd%ddeZGd&d
d
eZeZGd'ddZGd(ddeZ Gd)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@s"eZdZdddZddZeZdS)ErrorcCs||_tj||dS)N)message	Exception__init__)selfmsgr"$/usr/lib64/python3.6/configparser.pyrszError.__init__cCs|jS)N)r)r r"r"r#__repr__szError.__repr__N)r)__name__
__module____qualname__rr$__str__r"r"r"r#rs
rc@seZdZddZdS)rcCs$tj|d|f||_|f|_dS)NzNo section: %r)rrsectionargs)r r)r"r"r#rszNoSectionError.__init__N)r%r&r'rr"r"r"r#rsc@seZdZdddZdS)rNcCst|dg}|dk	rRdt|g}|dk	r8|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__)NN)r%r&r'rr"r"r"r#rsc@seZdZdddZdS)rNcCst|dt|dg}|dk	rZdt|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__)NN)r%r&r'rr"r"r"r#rsc@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#rsc@seZdZddZdS)r	cCs(tj||||_||_|||f|_dS)N)rrr3r)r*)r r3r)r!r"r"r#rszInterpolationError.__init__N)r%r&r'rr"r"r"r#r	sc@seZdZddZdS)rcCs8dj||||}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#rsc@seZdZdS)rN)r%r&r'r"r"r"r#rsc@seZdZddZdS)r
cCs0dj||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
sc@s8eZdZd	ddZeddZejddZddZdS)
r
NcCsX|r|rtdn|r(|r(tdn|r0|}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#r8:s
zParsingError.filenamecCstjdtdd||_dS)NzSThe 'filename' attribute will be removed in future versions.  Use 'source' instead.r9)r:)r;r<r=r1)r valuer"r"r#r8Ds
cCs*|jj||f|jd||f7_dS)Nz
	[line %2d]: %s)r7r,r)r r2liner"r"r#r,NszParsingError.append)NN)r%r&r'rpropertyr8setterr,r"r"r"r#r
(s


c@seZdZddZdS)rcCs8tj|d|||f||_||_||_|||f|_dS)Nz7File contains no section headers.
file: %r, line: %d
%r)rrr1r2r?r*)r r8r2r?r"r"r#rVsz"MissingSectionHeaderError.__init__N)r%r&r'rr"r"r"r#rSsc@s,eZdZddZddZddZddZd	S)
rcCs|S)Nr")r parserr)r3r>defaultsr"r"r#
before_getjszInterpolation.before_getcCs|S)Nr")r rBr)r3r>r"r"r#
before_setmszInterpolation.before_setcCs|S)Nr")r rBr)r3r>r"r"r#before_readpszInterpolation.before_readcCs|S)Nr")r rBr)r3r>r"r"r#before_writesszInterpolation.before_writeN)r%r&r'rDrErFrGr"r"r"r#rgsc@s.eZdZejdZddZddZddZdS)	rz
%\(([^)]+)\)scCs$g}|j||||||ddj|S)Nr)_interpolate_somer0)r rBr)r3r>rCLr"r"r#rDszBasicInterpolation.before_getcCs<|jdd}|jjd|}d|kr8td||jdf|S)Nz%%r%z1invalid interpolation syntax in %r at position %d)replace_KEYCREsubr6find)r rBr)r3r>	tmp_valuer"r"r#rEszBasicInterpolation.before_setcCsp|j||d|d}|tkr&t|||xB|rj|jd}	|	dkrP|j|dS|	dkrv|j|d|	||	d}|dd}
|
dkr|jd|dd}q*|
dkrV|jj|}|dkrt||d||j|j	d}||j
d}y||}
Wn&tk
r"t||||dYnXd|
krJ|j
||||
|||dn
|j|
q*t||d	|fq*WdS)
NT)rawfallbackrKrrHr9(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#rws
c@s.eZdZejdZddZddZddZdS)	rz
\$\{([^}]+)\}cCs$g}|j||||||ddj|S)NrHr)rIr0)r rBr)r3r>rCrJr"r"r#rDsz ExtendedInterpolation.before_getcCs<|jdd}|jjd|}d|kr8td||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||d|d}|tkr&t|||x|r|jd}	|	dkrP|j|dS|	dkrv|j|d|	||	d}|dd}
|
dkr|jd|dd}q*|
dkr|jj|}|dkrt||d||jdj	d	}||j
d}|}
|}yrt|dkr |j|d}||}nHt|dkrV|d}
|j|d}|j|
|dd
}nt||d|fWn2t
ttfk
rt|||d	j|dYnXd|kr|j|||||
t|j|
dd
|dn
|j|q*t||d|fq*WdS)
NT)rQrRrerrHr9{z'bad interpolation variable reference %r:)rQzMore 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@s2eZdZejdZddZddZeddZ	dS)	rz%\(([^)]*)\)s|.c
Cs|}t}x|r|d8}|rd|krtj|j|d}|jj||}y||}Wqtk
r}	zt||||	jddWYdd}	~	XqXq
Pq
W|rd|krt	||||S)NrHz%()rBr)
r	functoolspartial_interpolation_replacerMrNrYrr*r
)
r rBr)r3r>varsr5r]rLer"r"r#rDs"(zLegacyInterpolation.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#r	s
c
s*eZdZdZdZdZeZej	eej
Zej	ejddej
Z
ej	ejddej
Zej	dZddddddddd	Zd
edfdcddd
ddeeedddZddZddZddZddZddZdeddZdfddZdgd!d"Zdhd$d%Zdid&d'Zdd
ed(d)d*Zd+d,Z dd
ed(d-d.Z!dd
ed(d/d0Z"dd
ed(d1d2Z#dd
ed(d3d4Z$edd
ffd5d6	Z%d7d8Z&d9d:Z'd;d<Z(djd=d>Z)dkd?d@Z*dAdBZ+dCdDZ,dEdFZ-dGdHZ.dIdJZ/dKdLZ0dMdNZ1dOdPZ2dQdRZ3dSdTZ4dUdVZ5dWdXZ6dYdZZ7d[d\Z8d]d]d]d^d_d`Z9e:dadbZ;Z<S)lrz
        \[                                 # [
        (?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)1yestrueZon0noZfalseZoffN=rg#;)
delimiterscomment_prefixesinline_comment_prefixesstrictempty_lines_in_valuesdefault_section
interpolation
converterscCsX||_|j|_|j|_t||_|j|_t||	|j|	<|rhx$|jD]\}}
|
|j|j|<qLWt	||_
|dkr|r|jn|j|_
nNdjdd|D}|rtj|jj|dtj|_
ntj|jj|dtj|_
t	|pf|_t	|pf|_||_||_||_|	|_|
|_|jtkr*|j|_|jdkr>t|_|tk	rT|jj|dS)Nr{rg|css|]}tj|VqdS)N)rcescape).0dr"r"r#	<genexpr>lsz+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~rrrrrrrkeyr>rr"r"r#rXs>






zRawConfigParser.__init__cCs|jS)N)r)r r"r"r#rCszRawConfigParser.defaultscCst|jjS)N)listrkeys)r r"r"r#sectionsszRawConfigParser.sectionscCsJ||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_sectioncCsJy|j|j}Wntk
r0t|dYnX|j|jt|jS)N)rcopyrYrrrrr)r r)Zoptsr"r"r#optionsszRawConfigParser.optionscCst|ttjfr|g}g}xl|D]d}y(t||d}|j||WdQRXWntk
rbw YnXt|tjrztj|}|j|q W|S)N)encoding)	
isinstancestrosPathLikeopen_readOSErrorfspathr,)r 	filenamesrZread_okr8fpr"r"r#reads

zRawConfigParser.readcCs<|dkr,y
|j}Wntk
r*d}YnX|j||dS)Nz<???>)nameAttributeErrorr)r fr1r"r"r#	read_files

zRawConfigParser.read_file<string>cCstj|}|j||dS)N)ioStringIOr)r stringr1Zsfiler"r"r#read_strings
zRawConfigParser.read_string<dict>cCst}x|jD]\}}t|}y|j|Wn(ttfk
rV|jrR||krRYnX|j|xl|jD]`\}}|jt|}|dk	rt|}|jr||f|krt	||||j||f|j|||qlWqWdS)N)
setrkrrrr6raddrVr)r Z
dictionaryr1elements_addedr)rrr>r"r"r#	read_dicts"

zRawConfigParser.read_dictcCs"tjdtdd|j||ddS)NzRThis method will be removed in future versions.  Use 'parser.read_file()' instead.r9)r:)r1)r;r<r=r)r rr8r"r"r#readfps
zRawConfigParser.readfp)rQrqrRcCsy|j||}Wn$tk
r4|tkr,n|SYnX|j|}y||}Wn,tk
rx|tkrpt||n|SYnX|s|dkr|S|jj|||||SdS)N)
_unify_valuesrrrVrYrrrD)r r)r3rQrqrRrr>r"r"r#rTs"


zRawConfigParser.getcKs||j||f|S)N)rT)r r)convr3kwargsr"r"r#_get"szRawConfigParser._getcKsDy|j|||f||d|Sttfk
r>|tkr:|SXdS)N)rQrq)rrrr)r r)r3rrQrqrRrr"r"r#	_get_conv%szRawConfigParser._get_convcKs|j||tf|||d|S)N)rQrqrR)rint)r r)r3rQrqrRrr"r"r#getint0szRawConfigParser.getintcKs|j||tf|||d|S)N)rQrqrR)rfloat)r r)r3rQrqrRrr"r"r#getfloat5szRawConfigParser.getfloatcKs |j|||jf|||d|S)N)rQrqrR)r_convert_to_boolean)r r)r3rQrqrRrr"r"r#
getboolean:szRawConfigParser.getbooleanc
stkrtjSjjyjjWn&tk
rVjkrRt	YnX|rx"|jD]\}}|j
|<qfWfdd|rfddfddjDS)Ncsjj||S)N)rrD)r3)rr)r r"r#<lambda>Vsz'RawConfigParser.items.<locals>.<lambda>cs|S)Nr")r3)rr"r#rYscsg|]}||fqSr"r")rr3)value_getterr"r#
<listcomp>Zsz)RawConfigParser.items.<locals>.<listcomp>)rsuperrkrrrrrYrrrVr)r r)rQrqrr>)	__class__)rr)r rr#rk?s


zRawConfigParser.itemscCs.x$|jD]}||}||=||fSWtdS)N)rrY)r rr>r"r"r#popitem\s

zRawConfigParser.popitemcCs|jS)N)lower)r Z	optionstrr"r"r#rViszRawConfigParser.optionxformcCsX|s||jkr$|j|}||jkS||jkr2dS|j|}||j|kpR||jkSdS)NF)rrVrr)r r)r3r"r"r#
has_optionls



zRawConfigParser.has_optioncCsn|r|jj||||}|s&||jkr.|j}n.y|j|}Wntk
rZt|dYnX|||j|<dS)N)rrErrrrYrrV)r r)r3r>sectdictr"r"r#rzszRawConfigParser.setcCsl|rdj|jd}n
|jd}|jr>|j||j|jj|x(|jD]}|j|||j|j|qFWdS)Nz {} r)r-rr_write_sectionrrkr)r rZspace_around_delimitersrr)r"r"r#writes

zRawConfigParser.writecCs~|jdj|x^|D]V\}}|jj||||}|dk	s@|jrV|t|jdd}nd}|jdj||qW|jddS)Nz[{}]

z
	rz{}{}
)rr-rrGrrrL)r rZsection_nameZ
section_itemsZ	delimiterrr>r"r"r#rszRawConfigParser._write_sectioncCsf|s||jkr|j}n.y|j|}Wntk
rDt|dYnX|j|}||k}|rb||=|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_sectioncCs(||jkr|j|rt||j|S)N)rrrYr)r rr"r"r#__getitem__szRawConfigParser.__getitem__cCs@||jkr|jjn||jkr.|j|j|j||idS)N)rrclearrr)r rr>r"r"r#__setitem__s


zRawConfigParser.__setitem__cCs2||jkrtd|j|s$t||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__cCs2t}d}d}d}d}d}d}	xt|ddD]\}}
tj}dd|jD}x||tjkr|ri}
x`|jD]T\}}|
j||d}|dkrql||
|<|dks|dkrl|
|djrlt||}qlW|
}qPWx"|j	D]}|
j
j|rd}PqW|tjkrd}|
d|j
}|s^|jrV|dkr\|dk	r\|r\||dk	r\||j
dq.tj}q.|jj|
}|rx|jnd}|dk	r|r||kr||j
|q.|}|jj|}|rL|jd}||jkr|jr||krt||||j|}|j|n@||jkr|j}n,|j}||j|<t|||j|<|j|d}q.|dkrdt|||
q.|jj|}|r|jdd	d
\}}}|s|j|	|||
}	|j |j!}|jr||f|krt"|||||j||f|dk	r|j
}|g||<nd||<q.|j|	|||
}	q.W|j#|	r.|	dS)NrrH)startcSsi|]
}d|qS)rHr")rr^r"r"r#
<dictcomp>sz)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_levelZmorZoptvalr"r"r#rs 









zRawConfigParser._readcCsz|j|jf}tj|f|jj}xT|D]L\}}xB|jD]6\}}t|trXdj|j	}|j
j||||||<q8Wq&WdS)Nr)rrrrrrkrrr0rrrF)r rCZall_sectionsr)rrvalr"r"r#rYs
z&RawConfigParser._join_multiline_valuescCs |st|}|j|t||S)N)r
r,r+)r excrr2r?r"r"r#reszRawConfigParser._handle_errorc
Csi}y|j|}Wn&tk
r8||jkr4t|YnXi}|rvx2|jD]&\}}|dk	rdt|}|||j|<qLWt|||jS)N)	rrYrrrkrrV	_ChainMapr)r r)rqZsectiondictZvardictrr>r"r"r#rks
zRawConfigParser._unify_valuescCs(|j|jkrtd||j|jS)NzNot a boolean: %s)rBOOLEAN_STATESr6)r r>r"r"r#rsz#RawConfigParser._convert_to_booleanr)r)r3r>cCsFt|tstdt|ts$td|js0|rBt|tsBtddS)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)r|r})N)N)r)r)N)N)T)=r%r&r'Z
_SECT_TMPLrrrrrcrdrrr-rrrr
_default_dictrrrrCrrrrrrrrrrTrrrrrrkrrVrrrrrrrrrrrrrrrrrrr@r
__classcell__r"r")rr#r/st	
$	




	%




zcs0eZdZeZdfdd	ZfddZZS)rNcs"|j||dtj|||dS)N)r3r>)rrr)r r)r3r>)rr"r#rszConfigParser.setcs|j|dtj|dS)N)r))rrr)r r))rr"r#rszConfigParser.add_section)N)r%r&r'rrrrrr"r")rr#rscseZdZfddZZS)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.r9)r:)rrr;r<r=)r r*r)rr"r#rszSafeConfigParser.__init__)r%r&r'rrr"r")rr#rsc@seZdZddZddZddZddZd	d
ZddZd
dZ	ddZ
ddZeddZ
eddZdddddddZdS)rcCsJ||_||_x8|jD].}d|}tj|jt||d}t|||qWdS)NrT)_impl)_parser_namerrnrorTgetattrsetattr)r rBrrrgetterr"r"r#rszSectionProxy.__init__cCsdj|jS)Nz
<Section: {}>)r-r)r r"r"r#r$szSectionProxy.__repr__cCs(|jj|j|st||jj|j|S)N)rrrrYrT)r rr"r"r#rszSectionProxy.__getitem__cCs"|jj||d|jj|j||S)N)r3r>)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__cCst|jS)N)ri_options)r r"r"r#rszSectionProxy.__len__cCs|jjS)N)r
r)r r"r"r#rszSectionProxy.__iter__cCs*|j|jjkr|jj|jS|jjSdS)N)rrrrrC)r r"r"r#r
szSectionProxy._optionscCs|jS)N)r)r r"r"r#rBszSectionProxy.parsercCs|jS)N)r)r r"r"r#rszSectionProxy.nameNF)rQrqrcKs(|s|jj}||j|f|||d|S)N)rQrqrR)rrTr)r r3rRrQrqrrr"r"r#rTs
zSectionProxy.get)N)r%r&r'rr$rrrrrrr
r@rBrrTr"r"r"r#rs	c@sFeZdZejdZddZddZddZdd	Z	d
dZ
dd
ZdS)rz^get(?P<name>.+)$cCsZ||_i|_xHt|jD]:}|jj|}|stt|j|rBqd|j|jd<qWdS)Nr)r_datadir	GETTERCRErUcallablerrW)r rBr	r`r"r"r#rszConverterMapping.__init__cCs
|j|S)N)r)r rr"r"r#rszConverterMapping.__getitem__c
Csyd|}Wn(tk
r4tdj|t|YnX|dkrFtd||j|<tj|jj|d}||_	t
|j||x.|jjD] }tj|j|d}t
|||qWdS)NrTzIncompatible key: {} (type: {})z)Incompatible key: cannot use "" as a name)r)r)
rr6r-typerrnrorrZ	converterrvaluesrT)r rr>kfuncproxyr	r"r"r#rs
zConverterMapping.__setitem__cCsyd|p
d}Wntk
r,t|YnX|j|=xDtj|jf|jjD]*}yt||WqNtk
rvwNYqNXqNWdS)NrT)	rrYrrrrrdelattrr)r rrZinstr"r"r#r,szConverterMapping.__delitem__cCs
t|jS)N)iterr)r r"r"r#r:szConverterMapping.__iter__cCs
t|jS)N)rir)r r"r"r#r=szConverterMapping.__len__N)r%r&r'rcrdr
rrrrrrr"r"r"r#rs
	)(collections.abcrcollectionsrrrrrnrrrrcrr;__all__rrrrrrrrr	rrr
r
robjectrrrrrrrrrrr"r"r"r#<module>sV
	

+HJ&u
F

OHA YOOOO