PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/lib/python2.7/site-packages/yum
Viewing File: /usr/lib/python2.7/site-packages/yum/config.pyc
� � v_c@s�dZeZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z y@ddl mZddlmZmZmZddlmZWnek r�eZnXesddlmZmZmZddlmZnddlZddlZddlZddlZddlmZmZddlZeZ eZ!eZ"d Z#d Z$d Z%d Z&gZ'd e(fd��YZ)d�Z*de)fd��YZ+de)fd��YZ,de,fd��YZ-de+fd��YZ.de+fd��YZ/de)fd��YZ0de0fd��YZ1de)fd��YZ2d e)fd!��YZ3d"e)fd#��YZ4d$e)fd%��YZ5d&e5fd'��YZ6d(e)fd)��YZ7d*e7fd+��YZ8d,e(fd-��YZ9d.e9fd/��YZ:d0e:fd1��YZ;d2e9fd3��YZ<d4e9fd5��YZ=d6�Z>dd7�Z@d8�ZAd9d:�ZBd;�ZCd<�ZDd=�ZEd>�ZFdd?�ZGdd@�ZHdS(As2 Configuration parser and default values for yum. i����N(tConfigPreProcessort varReplace(t INIConfig(tNoSectionErrort NoOptionErrort ParsingError(tRawConfigParser(t ConfigParser(tget_uuidtread_in_items_from_dot_dirtbesttpriorityitobjectstOptioncBs\eZdZd ed�Zd�Zd�Zd�Zd�Z d�Z d�Z d�Z RS( s� This class handles a single Yum configuration file option. Create subclasses for each type of supported configuration option. Python descriptor foo (__get__ and __set__) is used to make option definition easy and concise. cCs8|j�t|_|r+|j|�}n||_dS(N(t _setattrnametFalsetinherittparsetdefault(tselfRt parse_default((s./usr/lib/python2.7/site-packages/yum/config.pyt__init__As   cCsdt|�|_dS(smCalculate the internal attribute name used to store option state in configuration instances. s__opt%dN(tidt _attrname(R((s./usr/lib/python2.7/site-packages/yum/config.pyRHscCs#|dkr|St||jd�S(sBCalled when the option is read (via the descriptor protocol). :param obj: The configuration instance to modify. :param objtype: The type of the config instance (not used). :return: The parsed option value or the default value if the value wasn't set in the configuration file. N(tNonetgetattrR(Rtobjtobjtype((s./usr/lib/python2.7/site-packages/yum/config.pyt__get__Ns cCstt|t�r]y|j|�}Wq]tk rY}td|j|t|�f��q]Xnt||j|�dS(s�Called when the option is set (via the descriptor protocol). :param obj: The configuration instance to modify. :param value: The value to set the option to. sError parsing "%s = %r": %sN(t isinstancet basestringRt ValueErrort_optnametstrtsetattrR(RRtvaluete((s./usr/lib/python2.7/site-packages/yum/config.pyt__set__\s cCs,||_t||jtj|j��dS(s�Initialise the option for a config instance. This must be called before the option can be set or retrieved. :param obj: :class:`BaseConfig` (or subclass) instance. :param name: Name of the option. N(R R"RtcopyR(RRtname((s./usr/lib/python2.7/site-packages/yum/config.pytsetupls cCstj|�}|j�|S(s|Return a safe copy of this :class:`Option` instance. :return: a safe copy of this :class:`Option` instance (R&R(Rtnew((s./usr/lib/python2.7/site-packages/yum/config.pytclonevs cCs|S(s Parse the string value to the :class:`Option`'s native value. :param s: raw string value to parse :return: validated native value :raise: ValueError if there was a problem parsing the string. Subclasses should override this ((Rts((s./usr/lib/python2.7/site-packages/yum/config.pyRscCs t|�S(s Convert the :class:`Option`'s native value to a string value. This does the opposite of the :func:`parse` method above. Subclasses should override this. :param value: native option value :return: string representation of input (R!(RR#((s./usr/lib/python2.7/site-packages/yum/config.pyttostring�sN( t__name__t __module__t__doc__RRRRRR%R(R*RR,(((s./usr/lib/python2.7/site-packages/yum/config.pyR 9s    cCs|j�}t|_|S(sClone an :class:`Option` instance for the purposes of inheritance. The returned instance has all the same properties as the input :class:`Option` and shares items such as the default value. Use this to avoid redefinition of reused options. :param option_obj: :class:`Option` instance to inherit :return: New :class:`Option` instance inherited from the input (R*tTrueR(t option_objt new_option((s./usr/lib/python2.7/site-packages/yum/config.pytInherit�s  t ListOptioncBs/eZdZded�Zd�Zd�ZRS(s'An option containing a list of strings.cCs2|dkrg}ntt|�j||�dS(N(RtsuperR4R(RRR((s./usr/lib/python2.7/site-packages/yum/config.pyR�s  cCs�|jdd�}|jdd�}g}x[|j�D]M}|jd�rw|jdd�}|jt|��q7n|j|�q7W|S(sConvert a string from the config file to a workable list, parses globdir: paths as foo.d-style dirs. :param s: The string to be converted to a list. Commas and whitespace are used as separators for the list :return: *s* converted to a list s t t,sglob:t(treplacetsplitt startswithtextendR tappend(RR+tresultstitemtthisglob((s./usr/lib/python2.7/site-packages/yum/config.pyR�s cCs dj|�S(s�Convert a list of to a string value. This does the opposite of the :func:`parse` method above. :param value: a list of values :return: string representation of input s (tjoin(RR#((s./usr/lib/python2.7/site-packages/yum/config.pyR,�sN(R-R.R/RRRRR,(((s./usr/lib/python2.7/site-packages/yum/config.pyR4�s t UrlOptioncBs2eZdZdd ed�Zd�Zd�ZRS( sMThis option handles lists of URLs with validation of the URL scheme. thttptftptfilethttpscCs,tt|�j|�||_||_dS(N(R5RBRtschemest allow_none(RRRGRH((s./usr/lib/python2.7/site-packages/yum/config.pyR�s cCs�|j�}|j�dkr:|jr+dStd��ntj|�\}}}}}}||jkr�td|j�|f��n|S(sParse a url to make sure that it is valid, and in a scheme that can be used. :param url: a string containing the url to parse :return: *url* if it is valid :raises: :class:`ValueError` if there is an error parsing the url t_none_s"_none_" is not a valid valuesURL must be %s not "%s"(tstriptlowerRHRturlparseRGt _schemelist(RturlR+tbtptqtfto((s./usr/lib/python2.7/site-packages/yum/config.pyR�s  !cCsbt|j�dkrdSt|j�dkr9|jdSddj|jd �|jdfSdS(s;Return a user friendly list of the allowed schemes itemptyis%s or %ss, i����N(tlenRGRA(R((s./usr/lib/python2.7/site-packages/yum/config.pyRM�s  N(RCRDsfileRF(R-R.R/RRRRRM(((s./usr/lib/python2.7/site-packages/yum/config.pyRB�s   t ProxyOptioncBseZdZd�ZRS(s4 Just like URLOption but accept "libproxy" too. cCs,|j�j�dkrdStj||�S(Ntlibproxy(RJRKRBR(Rtproxy((s./usr/lib/python2.7/site-packages/yum/config.pyR�s(R-R.R/R(((s./usr/lib/python2.7/site-packages/yum/config.pyRV�st UrlListOptioncBs)eZdZdded�Zd�ZRS( sMOption for handling lists of URLs with validation of the URL scheme. RCRDRERFcCs/tt|�j||�td|�|_dS(NRG(R5RYRRBt _urloption(RRRGR((s./usr/lib/python2.7/site-packages/yum/config.pyRscCs�g}|jdd�}|jdd�}gtj|�D]}|jdd�^q:}g}xU|D]M}|jd�r�|jdd�}|jt|��qen|j|�qeWxBtt|�j dj |��D]}|j|j j |��q�W|S(s,Parse a string containing multiple urls into a list, and ensure that they are in a scheme that can be used. :param s: the string to parse :return: a list of strings containing the urls in *s* :raises: :class:`ValueError` if there is an error parsing the urls s R6R7s%20sglob:R8( R9tshlexR:R;R<R R=R5RYRRARZ(RR+toutR?titemsttmpR@RN((s./usr/lib/python2.7/site-packages/yum/config.pyRs. (N(shttpsftpsfileshttps(R-R.R/RRRR(((s./usr/lib/python2.7/site-packages/yum/config.pyRY�s tWildListOptioncBseZdZd�ZRS(suAn option containing a list of strings that supports shell-style wildcard matching in membership test operations.cCs8dtfd��Y}tt|�j|�}||�S(NtWildListcBseZd�ZRS(cs-t�t�stSt�fd�|D��S(Nc3s!|]}tj�|�VqdS(N(tfnmatch(t.0RP(R?(s./usr/lib/python2.7/site-packages/yum/config.pys <genexpr>)s(RRRtany(RR?((R?s./usr/lib/python2.7/site-packages/yum/config.pyt __contains__&s(R-R.Rd(((s./usr/lib/python2.7/site-packages/yum/config.pyR`%s(tlistR5R_R(RR+R`tpatterns((s./usr/lib/python2.7/site-packages/yum/config.pyR$s(R-R.R/R(((s./usr/lib/python2.7/site-packages/yum/config.pyR_ st IntOptioncBs)eZdZdddd�Zd�ZRS(s(An option representing an integer value.cCs,tt|�j|�||_||_dS(N(R5RgRt _range_mint _range_max(RRt range_mint range_max((s./usr/lib/python2.7/site-packages/yum/config.pyR1s cCs�yt|�}Wn%ttfk r7}td��nX|jdk re||jkretd��n|jdk r�||jkr�td��n|S(s�Parse a string containing an integer. :param s: the string to parse :return: the integer in *s* :raises: :class:`ValueError` if there is an error parsing the integer sinvalid integer valuesout of range integer valueN(tintRt TypeErrorRiRRh(RR+tvalR$((s./usr/lib/python2.7/site-packages/yum/config.pyR6sN(R-R.R/RRR(((s./usr/lib/python2.7/site-packages/yum/config.pyRg.stPositiveIntOptioncBs,eZdZddddd�Zd�ZRS(sdAn option representing a positive integer value, where 0 can have a special representation. icCs)tt|�j|||�||_dS(N(R5RoRt_names0(RRRjRkt names_of_0((s./usr/lib/python2.7/site-packages/yum/config.pyRLscCs)||jkrdStt|�j|�S(sParse a string containing a positive integer, where 0 can have a special representation. :param s: the string to parse :return: the integer in *s* :raises: :class:`ValueError` if there is an error parsing the integer i(RpR5RoR(RR+((s./usr/lib/python2.7/site-packages/yum/config.pyRQs N(R-R.R/RRR(((s./usr/lib/python2.7/site-packages/yum/config.pyRoHs  t SecondsOptioncBs9eZdZid d6d d6dd6dd6Zd�ZRS( s�An option representing an integer value of seconds, or a human readable variation specifying days, hours, minutes or seconds until something happens. Works like :class:`BytesOption`. Note that due to historical president -1 means "never", so this accepts that and allows the word never, too. Valid inputs: 100, 1.5m, 90s, 1.2d, 1d, 0xF, 0.1, -1, never. Invalid inputs: -10, -0.1, 45.6Z, 1d6h, 1day, 1y. Return value will always be an integer i<itdthtmiR+cCst|�dkr!td��n|dks9|dkr=dS|dj�r�|d }|dj�}|jj|d �}|s�td|��q�n |}d}yt|�}Wn%ttfk r�}td��nX|dkr�td ��nt ||�S( s�Parse a string containing an integer value of seconds, or a human readable variation specifying days, hours, minutes or seconds until something happens. Works like :class:`BytesOption`. Note that due to historical president -1 means "never", so this accepts that and allows the word never, too. Valid inputs: 100, 1.5m, 90s, 1.2d, 1d, 0xF, 0.1, -1, never. Invalid inputs: -10, -0.1, 45.6Z, 1d6h, 1day, 1y. :param s: the string to parse :return: an integer representing the number of seconds specified by *s* :raises: :class:`ValueError` if there is an error parsing the string isno value specifieds-1tneveri����sunknown unit '%s's invalid valueis!seconds value may not be negativeN( RURtisalphaRKtMULTStgetRtfloatRmRl(RR+tntunittmultR$((s./usr/lib/python2.7/site-packages/yum/config.pyRls&  ii�Qi(R-R.R/RxR(((s./usr/lib/python2.7/site-packages/yum/config.pyRr^s "t BoolOptioncBs eZdZd�Zd�ZRS(shAn option representing a boolean value. The value can be one of 0, 1, yes, no, true, or false. cCs<|j�}|d krtS|d kr,tStd��dS( s�Parse a string containing a boolean value. 1, yes, and true will evaluate to True; and 0, no, and false will evaluate to False. Case is ignored. :param s: the string containing the boolean value :return: the boolean value contained in *s* :raises: :class:`ValueError` if there is an error in parsing the boolean value t0tnotfalset1tyesttruesinvalid boolean valueN(RR�R�(R�syesR�(RKRR0R(RR+((s./usr/lib/python2.7/site-packages/yum/config.pyR�s   cCs|r dSdSdS(s�Convert a boolean value to a string value. This does the opposite of the :func:`parse` method above. :param value: the boolean value to convert :return: a string representation of *value* R�RN((RR#((s./usr/lib/python2.7/site-packages/yum/config.pyR,�s(R-R.R/RR,(((s./usr/lib/python2.7/site-packages/yum/config.pyR~�s t FloatOptioncBseZdZd�ZRS(s-An option representing a numeric float value.cCs>yt|j��SWn#ttfk r9td��nXdS(sParse a string containing a numeric float value. :param s: a string containing a numeric float value to parse :return: the numeric float value contained in *s* :raises: :class:`ValueError` if there is an error parsing float value sinvalid float valueN(RzRJRRm(RR+((s./usr/lib/python2.7/site-packages/yum/config.pyR�s(R-R.R/R(((s./usr/lib/python2.7/site-packages/yum/config.pyR��stSelectionOptioncBs)eZdZddid�Zd�ZRS(sFHandles string values where only specific values are allowed. cCs,tt|�j|�||_||_dS(N(R5R�Rt_allowedt_mapper(RRtallowedtmapper((s./usr/lib/python2.7/site-packages/yum/config.pyR�s cCsE||jkr|j|}n||jkrAtd|��n|S(s�Parse a string for specific values. :param s: the string to parse :return: *s* if it contains a valid value :raises: :class:`ValueError` if there is an error parsing the values s"%s" is not an allowed value(R�R�R(RR+((s./usr/lib/python2.7/site-packages/yum/config.pyR�s N((R-R.R/RRR(((s./usr/lib/python2.7/site-packages/yum/config.pyR��stCaselessSelectionOptioncBseZdZd�ZRS(svMainly for compatibility with :class:`BoolOption`, works like :class:`SelectionOption` but lowers input case. cCstt|�j|j��S(s�Parse a string for specific values. :param s: the string to parse :return: *s* if it contains a valid value :raises: :class:`ValueError` if there is an error parsing the values (R5R�RRK(RR+((s./usr/lib/python2.7/site-packages/yum/config.pyR�s(R-R.R/R(((s./usr/lib/python2.7/site-packages/yum/config.pyR��st BytesOptioncBs2eZdZidd6dd6dd6Zd�ZRS( svAn option representing a value in bytes. The value may be given in bytes, kilobytes, megabytes, or gigabytes. itkRutgcCs�t|�dkr!td��n|dj�r||d }|dj�}|jj|d�}|s�td|��q�n |}d}yt|�}Wn!tk r�td|��nX|dkr�td��nt||�S( sFParse a friendly bandwidth option to bytes. The input should be a string containing a (possibly floating point) number followed by an optional single character unit. Valid units are 'k', 'M', 'G'. Case is ignored. The convention that 1k = 1024 bytes is used. Valid inputs: 100, 123M, 45.6k, 12.4G, 100K, 786.3, 0. Invalid inputs: -10, -0.1, 45.6L, 123Mb. :param s: the string to parse :return: the number of bytes represented by *s* :raises: :class:`ValueError` if the option can't be parsed isno value specifiedi����sunknown unit '%s'scouldn't convert '%s' to numberisbytes value may not be negativeN( RURRwRKRxRyRRzRl(RR+R{R|R}((s./usr/lib/python2.7/site-packages/yum/config.pyR�s"   iii@(R-R.R/RxR(((s./usr/lib/python2.7/site-packages/yum/config.pyR��s  tThrottleOptioncBseZdZd�ZRS(sjAn option representing a bandwidth throttle value. See :func:`parse` for acceptable input values. cCs�t|�dkr!td��n|ddkr�|d }yt|�}Wn!tk rntd|��nX|dks�|dkr�td��n|d Stj||�Sd S( s(Get a throttle option. Input may either be a percentage or a "friendly bandwidth value" as accepted by the :class:`BytesOption`. Valid inputs: 100, 50%, 80.5%, 123M, 45.6k, 12.4G, 100K, 786.0, 0. Invalid inputs: 100.1%, -4%, -500. :param s: the string to parse :return: the bandwidth represented by *s*. The return value will be an int if a bandwidth value was specified, and a float if a percentage was given :raises: :class:`ValueError` if input can't be parsed isno value specifiedi����t%scouldn't convert '%s' to numberiidspercentage is out of rangegY@N(RURRzR�R(RR+R{((s./usr/lib/python2.7/site-packages/yum/config.pyRs  (R-R.R/R(((s./usr/lib/python2.7/site-packages/yum/config.pyR�st BaseConfigcBs�eZdZd�Zd�Zd d�Zed�Ze e�Zd�Z e e �Z d�Z d�Z d d d�Z d d �Zd �ZRS( sgBase class for storing configuration definitions. Subclass when creating your own definitions. cCsCd|_x3|j�D]%}|j|�}|j||�qWdS(N(Rt_sectiontiterkeyst optionobjR((RR'toption((s./usr/lib/python2.7/site-packages/yum/config.pyRAs cCs[g}|jd|j�x1|j�D]#\}}|jd||f�q'Wdj|�S(Ns[%s]s%s: %rs (R=R�t iteritemsRA(RR\R'R#((s./usr/lib/python2.7/site-packages/yum/config.pyt__str__Hs cCs�||_||_|j|�r9t|j|��}n t�}x�|j�D]|}|j|�}d}||kr�|j||�}n!|r�|j r�t ||�}n|dk rOt |||�qOqOWdS(sCSet option values from an INI file section. :param parser: :class:`ConfigParser` instance (or subclass) :param section: INI file section to read use :param parent: Optional parent :class:`BaseConfig` (or subclass) instance to use when doing option value inheritance N( tcfgR�t has_sectiontsettoptionsR�R�RRyRRR"(RtparsertsectiontparenttoptsR'R�R#((s./usr/lib/python2.7/site-packages/yum/config.pytpopulateOs     cCs<t||d�}t|t�r%|S|r4t�ndSdS(s�Return the :class:`Option` instance for the given name. :param cls: the class to return the :class:`Option` instance from :param name: the name of the :class:`Option` instance to return :param exceptions: defines what action to take if the specified :class:`Option` instance does not exist. If *exceptions* is True, a :class:`KeyError` will be raised. If *exceptions* is False, None will be returned :return: the :class:`Option` instance specified by *name*, or None if it does not exist and *exceptions* is False :raises: :class:`KeyError` if the specified :class:`Option` does not exist, and *exceptions* is True N(RRRR tKeyError(tclsR't exceptionsR((s./usr/lib/python2.7/site-packages/yum/config.pyR�ls  cCs|j|dt�dk S(s�Return True if the given name refers to a defined option. :param cls: the class to find the option in :param name: the name of the option to search for :return: whether *name* specifies a defined option R�N(R�RR(R�R'((s./usr/lib/python2.7/site-packages/yum/config.pytisoption�sccs2x+t|�D]}|j|�r |Vq q WdS(s7Yield the names of all defined options in the instance.N(tdirR�(RR'((s./usr/lib/python2.7/site-packages/yum/config.pyR��sccs/x(|j�D]}|t||�fVq WdS(s�Yield (name, value) pairs for every option in the instance. The value returned is the parsed, validated option value. N(R�R(RR'((s./usr/lib/python2.7/site-packages/yum/config.pyR��sc Cs�|dkr6|jdkr*td��n|j}n|jj|�}x~|j�D]p\}}|j|�}|dks�||ks�|j|ks�||krU|jj|||j |��qUqUW|jj |�dS(s�Write out the configuration to a file-like object. :param fileobj: File-like object to write to :param section: Section name to use. If not specified, the section name used during parsing will be used :param always: A sequence of option names to always write out. Options not listed here will only be written out if they are at non-default values. Set to None to dump out all options s!not populated, don't know sectionN( RR�RR�R�R�R�RR�R,twrite(RtfileobjR�talwayst cfgOptionsR'R#R�((s./usr/lib/python2.7/site-packages/yum/config.pyR��s  3&cCs0tjdt�t||�r,t||�S|S(sCReturn the current value of the given option. :param option: string specifying the option to return the value of :param default: the value to return if the option does not exist :return: the value of the option specified by *option*, or *default* if it does not exist sxgetConfigOption() will go away in a future version of Yum. Please access option values as attributes or using getattr().(twarningstwarntDeprecationWarningthasattrR(RR�R((s./usr/lib/python2.7/site-packages/yum/config.pytgetConfigOption�s  cCsFtjdt�t||�r2t|||�ntjd|�dS(s�Set the value of the given option to the given value. :param option: string specifying the option to set the value of :param value: the value to set the option to susetConfigOption() will go away in a future version of Yum. Please set option values as attributes or using setattr().sNo such option %sN(R�R�R�R�R"tErrorst ConfigError(RR�R#((s./usr/lib/python2.7/site-packages/yum/config.pytsetConfigOption�s  N((R-R.R/RR�RR�R0R�t classmethodR�R�R�R�R�R�(((s./usr/lib/python2.7/site-packages/yum/config.pyR�<s          t StartupConfcBs�eZdZeddd�Zeddd�Zeddg�Zed�Z ed�Z e e �Z ed d g�Zed g�Ze e �Ze�Zed �Zed �Zed�Ze e�Ze e�ZRS(s�Configuration option definitions for yum.conf's [main] section that are required early in the initialisation process or before the other [main] options can be parsed. ii����i issystem-release(releasever)sredhat-releaset/s/etc/yum/yum.confs/usr/share/yum-pluginss/usr/lib/yum-pluginss/etc/yum/pluginconf.dtLOG_USERs/dev/logs /var/lib/yum(R-R.R/Rgt debuglevelt errorlevelR4t distroverpkgR t installroottconfig_file_pathR~Rtpluginst pluginpathtpluginconfpatht gaftonmodet syslog_identtsyslog_facilityt syslog_devicet persistdirR0tskip_missing_names_on_installtskip_missing_names_on_update(((s./usr/lib/python2.7/site-packages/yum/config.pyR��s          tYumConfcBs�eZdZedddg�Zeddd�Zee�Z e d�Z ee�Z ee�Z e d�Zed d g�Ze�Ze�Ze e�Zed ed dlde�Ze �Ze �Ze �Ze �Zedddddddddddd d!g �Zeedd"dd#d$g�Zeddddd%d d!g�Ze e!�Z"e�Z#e �Z$ee�Z%ee�Z&ee�Z'ee�Z(ee�Z)ee�Z*ee�Z+ee�Z,ee-�Z.ee/�Z0ee-�Z1ee2�Z3ee�Z4ee�Z5ee�Z6ee�Z7ee�Z8ee�Z9ee�Z:ee�Z;ed&d g�Z<e=e>dm�Z?ee�Z@eAd*�ZBed�ZCeDd�ZEeFd�ZGeHd+dnd/id,d06d-d16�ZIeddd�ZJee�ZKed"dd2d3d4�ZLed5ddd3d6�ZMed6dd�ZNe=d7do�ZOePdq�ZQe=d=dr�ZRePdt�ZSee�ZTe�ZUee�ZVee�ZWedBg�ZXe=dCdu�ZYe=eZdv�Z[e dF�Z\e=dGdwd/i dHdI6dHdJ6dHdK6dHdL6d>dM6d>dN6d>d#6d>dO6dGdP6dGdQ6�Z]e dR�Z^e dS�Z_e dT�Z`e dU�Zae dV�Zbe dW�Zce dX�Zde dY�Zee dT�Zfe dV�Zge dT�Zhe dR�Zie dT�Zje dR�ZkedZd[g�Zle �Zmee�Zne �Zoe �Zpee�Zqee�Zred\d]g�Zse d^�Zted_d`e�Zuee�Zvee�Zwee�Zxee�Zyee�Zzee�Z{ee�Z|ee�Z}e=dadxd/idcdd6dad 6�Z~ee�Zee�Z�ee�Z�ede�Z�ed6dded3d6�Z�edfd`e�Z�e=dgdy�Z�ed6ddg�Z�ee�Z�ee�Z�ee�Z�e=d#dz�Z�gZ�d{Z�dk�Z�RS(|s�Configuration option definitions for yum.conf's [main] section. Note: see also options inherited from :class:`StartupConf` i Rqs <forever>iRjis/var/cache/yums/var/log/yum.logs/etc/yum/repos.ds/etc/yum.repos.dRRGRCRDRFtsocks4tsocks4atsocks5tsocks5hRHtkernels kernel-bigmemsinstallonlypkg(kernel)sinstallonlypkg(kernel-module)sinstallonlypkg(vm)skernel-enterprises kernel-smps kernel-debugskernel-unsupporteds kernel-sources kernel-devels kernel-PAEskernel-PAE-debugiRs<off>s kernel-BOOTt mandatorytcompatR tsimpleg>@R�tipv4tipv6twhateverR�t4t6i�Rki�iKidtalltnonetpackagess lazy:packagesi<isread-only:presentRvsread-only:futuresread-only:pastis group:smalltsqlitetxmlR sVhttps://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&version=rawhide&component=yumtautoR�tonR�R�R�toffR�R�tttysif-ttytbolds bold,yellowtnormalsbold,redsbold,underlines bold,bluesdim,cyansbold,underline,greent releasevertbasearchtyumtrpmtinfos%yum, glob:/etc/yum/protected.d/*.confRssingle-user-commandstuserstcommandstcmdsis0!*/swap !*/lv_swap glob:/etc/yum/fssnap.d/*.confRcs broken-setupssnapshot-failuret?cCs�d}d}x�t|�D]�}|jd �r4qn||krFqntt||�tj�rgqnt||�}| r�t|�tt�td �fkr�d }nt|�tjkr�d j |�}n|d||f}qW|S(s�Return a string representing the values of all the configuration options. :return: a string representing the values of all the configuration options s[main] R�tuidtyumvart progress_objt failure_objtdisable_excludestconfig_file_ageR�t_iR8s, s%s = %s (scfgsuidsyumvarR�R�sdisable_excludessconfig_file_agesconfig_file_path( R�R;RRttypest MethodTypettypeRtListTypeRA(Rtoutputt excluded_varstattrtres((s./usr/lib/python2.7/site-packages/yum/config.pytdump�s" + (shttpsftpshttpsR�R�R�R�(R�R R�(R�R�R�(R�R�salls lazy:packagesii`T(sneversread-only:futuresread-only:presentsread-only:pastii�Q(R�R�(R sall(R�sneversalways(ssingle-user-commandsR�scommands(s broken-setupssnapshot-failuresanyR�(RR�N(�R-R.R/RotretriesRgtrecentR~R0t reset_niceR tcachedirt keepcachet usercachetlogfileR4treposdirR�texcludet__main_failovermethod_default__tfailovermethodRVRRXtproxy_usernametproxy_passwordtusernametpasswordtinstallonlypkgst"__main_installonly_limit_default__tinstallonly_limittkernelpkgnamesR_t__exactarchlist_default__t exactarchlistttsflagstoverride_install_langst assumeyestassumenot alwayspromptt exactarchttoleranttdiskspacechecktoverwrite_groupst keepalivet__pkgs_gpgcheck_default__tgpgcheckt__repo_gpgcheck_default__t repo_gpgchecktlocalpkg_gpgcheckt__payload_gpgcheck_default__tpayload_gpgcheckt obsoletestshowdupesfromrepostenabledtremove_leaf_onlytrepopkgsremove_leaf_onlyt enablegroupstenable_group_conditionalstgroupremove_leaf_onlytgroup_package_typesR�t__group_command_default__t group_commandtupgrade_group_objects_upgradeR�ttimeouttminrateR�t bandwidthR�tthrottleR�t ip_resolvetmax_connectionstftp_disable_epsvtdeltarpmtdeltarpm_percentagetdeltarpm_metadata_percentaget http_cachingRrtmetadata_expiretmetadata_expire_filtertmirrorlist_expiretrpm_check_debugR�tquery_install_excludest skip_brokentmdpolicytmddownloadpolicyt __main_multilib_policy_default__tmultilib_policytbugtracker_urltcolortcolor_list_installed_oldertcolor_list_installed_newertcolor_list_installed_reinstalltcolor_list_installed_extrat#color_list_installed_running_kerneltcolor_list_available_upgradetcolor_list_available_downgradetcolor_list_available_reinstalltcolor_list_available_installt#color_list_available_running_kerneltcolor_update_installedtcolor_update_localtcolor_update_remotetcolor_search_matchtui_repoid_varst sslcacertt sslverifyt sslclientcertt sslclientkeytssl_check_cert_permissionsthistory_recordthistory_record_packagest rpmverbositytprotected_packagestprotected_multilibt exit_on_locktloadts_ignoremissingtloadts_ignorerpmtloadts_ignorenewrpmt autosavetstclean_requirements_on_removetupgrade_requirements_on_installthistory_list_viewtrecheck_installed_requirestfssnap_automatic_pretfssnap_automatic_posttfssnap_automatic_keeptfssnap_percentagetfssnap_devicestfssnap_abort_on_errorstdepsolve_loop_limittautocheck_running_kerneltcheck_config_file_aget usr_w_checktshell_exit_statust _reposlistRt_pristine_cachedirR�(((s./usr/lib/python2.7/site-packages/yum/config.pyR��s$                                                                                                      tRepoConfcBs�eZdZe�Zd�Ze�Zee j �Z ee j �Z e �Z e�Ze�Ze�Ze �Ze �Ze�Ze�Zee j�Zee j�Zee j�Zee j�Zee j�Zee j�Zee j�Zee j�Zee j�Zee j �Z ee j!�Z!ee j"�Z"ee j#�Z#ee j$�Z$ee j%�Z%ee j&�Z&e'd dddd�Z)ee j*�Z*ee j+�Z+ee j,�Z,ee j-�Z-ee j.�Z.ee j/�Z/ee j0�Z0ee j1�Z1e'd�Z2ee j3�Z3ee j4�Z4ee j5�Z5ee j6�Z6ee j7�Z7e8e9�Z:e8e;�Z<ee j=�Z=ee j>�Z>e'ddddd �Z?RS( s4Option definitions for repository INI file sections.ccsf|j}t|t�s$t�}n|sI|jttj|���nx|jD] }|VqSWdS(s7Yield the names of all defined options in the instance.N(t_RepoConf__cached_keysRRoR�tupdateReR�R�(RtckR'((s./usr/lib/python2.7/site-packages/yum/config.pyR��s  RjiRkidi�iPiicN(@R-R.R/R�RpR�R R'R3R�RR�RYtbaseurlRBt mirrorlisttmetalinktmediaidtgpgkeytgpgcakeyR4R�t includepkgsRXRRR�RRRRRRR"R*R+R,R)R-RgRR1R2R/R3R4R5R6R:R;tcostRORPRQRRRSR~Rtskip_if_unavailableR0tasyncRNRjtcompare_providers_priority(((s./usr/lib/python2.7/site-packages/yum/config.pyRo�sd             tVersionGroupConfcBs#eZdZe�Zee�ZRS(s&Option definitions for version groups.(R-R.R/R4tpkglistR~Rtrun_with_packages(((s./usr/lib/python2.7/site-packages/yum/config.pyR~s cCs�y|d}tj|�}Wntk r6g}nXx�|D]�}tjj||�r`q>ny=t||�j�}|r�|ddkr�|d }nWnttfk r�q>nX|||<q>WdS(Ns/etc/yum/vars/i����s (tostlistdirtOSErrortpathtislinktopentreadlinetIOError(tyumvarstroott dir_fsvarstfsvarstfsvarRn((s./usr/lib/python2.7/site-packages/yum/config.pyt _read_yumvars s    c Cs=|tj_t�}||_t�}t|�}t�}t||j�||_||_ y|j |�Wn&t k r�}t j d|��nX|j|d�x3|jD](}|ddks�t j d��q�q�W||_|dkr t|j|j�}n||_d|j|jf} t| �|_|S(s�Parse Yum's main configuration file and return a :class:`StartupConf` instance. This is required in order to access configuration settings required as Yum starts up. :param configfile: the path to yum.conf :param root: the base path to use for installation (typically '/') :return: A :class:`StartupConf` instance :raises: :class:`Errors.ConfigError` if a problem is detected with while parsing. sParsing file failed: %stmainiR�s(All plugin search paths must be absolutes %s/%s/uuidN(R�R�RR�RRt _getEnvVarR�t_varsR�treadfpRR�R�R�R�t_parserRt _getsysverR�R�R�Rtuuid( t configfileR�R�t startupconfR�t confpp_objR�R$R�tuuidfile((s./usr/lib/python2.7/site-packages/yum/config.pytreadStartupConfig2s2            csX|j��jd|j��jd|j��jd|j��jd|j�t�}|j|jd�|j |_ �fd�}t j j |j kr�t�|j �nxd D]}|||�q�W�|_d |_d |_d |_|j|_tjj|j�r3tj|j�d |_n d |_|j|_|j|_|S(s�Parse Yum's main configuration file :param startupconf: :class:`StartupConf` instance as returned by readStartupConfig() :return: Populated :class:`YumConf` instance R�tarchR�R�R�csQt||�}|j|}|jdd�}t|��}t|||�dS(Ns//R�(RR�R9RR"(tyumconfR�R�tir_path(R�(s./usr/lib/python2.7/site-packages/yum/config.pyt_apply_installroot{s  R�R�R�ii(scachedirslogfiles persistdirN(R�t setdefaultR�R�R�R�R�R�R�R�RnR�R�RR�R�R�tcacheRt progess_objR�R�R�texistststatR�R�R�(R�R�R�R�((R�s./usr/lib/python2.7/site-packages/yum/config.pytreadMainConfigcs0            s/etc/yum/version-groups.confcCs�t�}t|�}y|j|�Wn&tk rN}tjd|��nXi}x5|j�D]'}t�||<||j||�qbW|S(s�Parse the configuration file for version groups. :param configfile: the configuration file to read :return: a dictionary containing the parsed options sParsing file failed: %s( RRR�RR�R�tsectionsR~R�(R�R�R�R$tretR�((s./usr/lib/python2.7/site-packages/yum/config.pytreadVersionGroupsConfig�s   cCsAy|j||�}Wnttfk r3|jSX|j|�S(s�Convenience function to retrieve a parsed and converted value from a :class:`ConfigParser`. :param conf: ConfigParser instance or similar :param section: Section name :param name: :class:`Option` name :param option: :class:`Option` instance to use for conversion :return: The parsed value or default if value was not present :raises: :class:`ValueError` if the option could not be parsed (RyRRRR(tconfR�R'R�Rn((s./usr/lib/python2.7/site-packages/yum/config.pyt getOption�s cCs\i}xOtdd�D]>}d|}tjj|d�}|r|||j�<qqW|S(s�Return variable replacements from the environment variables YUM0 to YUM9 The result is intended to be used with parser.varReplace() ii sYUM%dR8(trangeR�tenvironRyRK(R�tnumtenvRn((s./usr/lib/python2.7/site-packages/yum/config.pyR��s c Cs tjjd|�}|jtjtjB�y7x0|D](}|jd|�}|j�r7Pq7q7WWn�t k r�}t j dkr�t |d�r�t jdt|j���q�t jdt|���nt jdt|���n/tjk r}t jdt|���nX|j�dkr5d}n�y|j�}Wn tk rgt jd��nX|d }|ttd �j|�}|ttd �|} tjj| �} |ttd �|} | d kr�| r�|d|kr�| }q�n~~~|S(s�Calculate the release version for the system. @param installroot: The value of the installroot option. @param distroverpkg: The value of the distroverpkg option. @return: The release version as a string (eg. '4' for FC4) R�tprovidesitmessagesError: is $releasevers:Error: rpmdb failed release provides. Try: rpm --rebuilddbtversiontRPMTAG_PROVIDENAMEtRPMTAG_PROVIDEFLAGStRPMTAG_PROVIDEVERSIONtEQR'(trpmUtilst transactiontinitReadOnlyTransactiont pushVSFlagsR�t_RPMVSF_NOSIGNATURESt_RPMVSF_NODIGESTStdbMatchtcountRmtsyst hexversionR�R�t YumBaseErrorR!R�terrortnextt StopIterationRtindext miscutilst flagToString( R�R�ttstdistroverpkg_provtidxR$R�thdrR�tflagtver((s./usr/lib/python2.7/site-packages/yum/config.pyR��sB       cCs�ts dSt|d� s$|j r(dSytt|j��}WndSX|j}|j|jkr�xC|jj�D]+}t ||j �|jkrw|}PqwqwWdSn||fS(Ntrepofile( t _use_iniparseRR�R�RR�Rt _sectionstkeysRR�(trepotinit section_idtsect((s./usr/lib/python2.7/site-packages/yum/config.pyt_readRawRepoFiles  c Cs?ts dSt|�\}}|jj|j�}x�|j�D]�\}}|dkr\q>n|dk rz||krzq>n|j|�}|j|�}|||kr�|t ||||j �kr�|||}n||kr�|j |kr�q>n||||<q>Wt |j d�} | jt|��| j�dS(s�Write changes in a repo object back to a .repo file. :param repo: the Repo Object to write back out :param only: list of attributes to work on. If *only* is None, all options will be written out Ntw(R�R�R�R�RR�RR�R,RR�RRER�R�R!tclose( R�tonlyR�R�R�R'R#R�tovaluetfp((s./usr/lib/python2.7/site-packages/yum/config.pytwriteRawRepoFiles(  cCsptt|��}|}||jkrbx8|jj�D]$} t| |�|kr7| }q7q7Wn||�} x�|�D]�\} } | dkr�qxn|dk r�| |kr�qxn|| �} | j| �}| ||kr |t||| |�kr ||| }n| | kr.| j| kr.qxn|||| <qxWt|d�}|j t |��|j �dS(s@ From writeRawRepoFile, but so we can alter [main] too. R�N( RR�R�R�RRR,RRER�R!R�(tfilenameR�R�t cfgoptionsR]R�R�R�t osection_idR�R�R'R#R�R�R�((s./usr/lib/python2.7/site-packages/yum/config.pyt_writeRawConfigFileDs.   (IR/R0R�R�R�R�R�R&RLR[R�RRtiniparseRtiniparse.compatRRRRRt ImportErrorRtrpmUtils.transactionR�trpmUtils.miscutilsR�R�tmiscRR RaRRRR<RRR&R tobjectR R3R4RBRVRYR_RgRoRrR~R�R�R�R�R�R�R�R�RoR~R�RR�R�R�R�R�R�R�R�R�(((s./usr/lib/python2.7/site-packages/yum/config.pyt<module>s~              Z '-$6# 0"��Q  1 >   3  (