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/pip/req
Viewing File: /usr/lib/python2.7/site-packages/pip/req/req_set.pyc
� r2Wc@@s�ddlmZddlmZddlmZddlZddlZddlm Z ddlm Z ddl m Z ddl mZmZmZmZmZdd lmZmZmZmZmZmZmZmZmZdd lmZdd lm Z m!Z!m"Z"m#Z#dd l$m%Z%dd l&m'Z'ddl(m)Z)ddl*m+Z+ej,e-�Z.de/fd��YZ0de/fd��YZ1d�Z2de1fd��YZ3de1fd��YZ4de1fd��YZ5de/fd��YZ6dS(i(tabsolute_import(t defaultdict(tchainN(t pkg_resources(trequests(t expanduser(t is_file_urlt is_dir_urlt is_vcs_urlt url_to_patht unpack_url( tInstallationErrortBestVersionAlreadyInstalledtDistributionNotFoundtPreviousBuildDirErrort HashErrort HashErrorst HashUnpinnedtDirectoryUrlHashUnsupportedtVcsHashUnsupported(tInstallRequirement(t display_pathtdist_in_usersitet ensure_dirtnormalize_path(t MissingHashes(t indent_log(tvcs(tWheelt RequirementscB@sGeZd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cC@sg|_i|_dS(N(t_keyst_dict(tself((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt__init__s cC@s|jS(N(R(R ((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pytkeys#scC@s!g|jD]}|j|^q S(N(RR(R tkey((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pytvalues&scC@s ||jkS(N(R(R titem((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt __contains__)scC@s3||jkr"|jj|�n||j|<dS(N(RtappendR(R R#tvalue((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt __setitem__,scC@s |j|S(N(R(R R#((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt __getitem__1scC@sJg|j�D]&}dt|�t||�f^q }ddj|�S(Ns%s: %ssRequirements({%s})s, (R"treprtjoin(R tkR$((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt__repr__4s9( t__name__t __module__R!R"R$R&R)R*R.(((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyRs      tDistAbstractioncB@s)eZdZd�Zd�Zd�ZRS(stAbstracts out the wheel vs non-wheel prepare_files logic. The requirements for anything installable are as follows: - we must be able to determine the requirement name (or we can't correctly handle the non-upgrade case). - we must be able to generate a list of run-time dependencies without installing any additional packages (or we would have to either burn time by doing temporary isolated installs or alternatively violate pips 'don't start installing unless all requirements are available' rule - neither of which are desirable). - for packages with setup requirements, we must also be able to determine their requirements without installing additional packages (for the same reason as run-time dependencies) - we must be able to create a Distribution object exposing the above metadata. cC@s ||_dS(N(treq_to_install(R R2((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR!LscC@st|j��dS(s Return a setuptools Dist object.N(tNotImplementedErrortdist(R tfinder((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR4OscC@st|j��dS(s3Ensure that we can get a Dist for this requirement.N(R3R4(R ((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt prep_for_distSs(R/R0t__doc__R!R4R6(((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR19s  cC@s@|jrt|�S|jr2|jjr2t|�St|�SdS(s�Factory to make an abstract dist object. Preconditions: Either an editable req with a source_dir, or satisfied_by or a wheel link, or a non-editable req with a source_dir. :return: A concrete DistAbstraction. N(teditabletIsSDisttlinktis_wheeltIsWheel(R2((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pytmake_abstract_distXs    R<cB@seZd�Zd�ZRS(cC@sttj|jj��dS(Ni(tlistRtfind_distributionsR2t source_dir(R R5((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR4js cC@sdS(N((R ((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR6ns(R/R0R4R6(((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR<hs R9cB@seZd�Zd�ZRS(cC@s;|jj�}|jd�r7|j|jd��n|S(Nsdependency_links.txt(R2tget_distt has_metadatatadd_dependency_linkstget_metadata_lines(R R5R4((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR4us cC@s|jj�|jj�dS(N(R2t run_egg_infotassert_source_matches_version(R ((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR6~s (R/R0R4R6(((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR9ss t InstalledcB@seZd�Zd�ZRS(cC@s |jjS(N(R2t satisfied_by(R R5((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR4�scC@sdS(N((R ((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR6�s(R/R0R4R6(((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyRG�s tRequirementSetcB@s�eZeeedeeedeedded� Zd�Zd�Zdd�Zd�Z e d��Z e d��Z d�Z ed�Zd �Zd �Zeed �Zd �Zd �Zdd�ZRS(cC@s | dkrtd��n||_||_||_||_||_| |_t�|_ i|_ g|_ ||_ g|_ g|_g|_||_| |_||_| |_| |_| |_|r�t|�}n||_||_||_tt�|_dS(s3Create a RequirementSet. :param wheel_download_dir: Where still-packed .whl files should be written to. If None they are written to the download_dir parameter. Separate to download_dir to permit only keeping wheel archives for pip wheel. :param download_dir: Where still packed archives should be written to. If None they are not saved, and are deleted immediately after unpacking. :param wheel_cache: The pip wheel cache, for passing to InstallRequirement. s?RequirementSet() missing 1 required keyword argument: 'session'N(tNonet TypeErrort build_dirtsrc_dirt download_dirtupgradetignore_installedtforce_reinstallRt requirementstrequirement_aliasestunnamed_requirementstignore_dependenciestsuccessfully_downloadedtsuccessfully_installedtreqs_to_cleanuptas_eggt use_user_sitet target_dirtsessiont pycompiletisolatedRtwheel_download_dirt _wheel_cachetrequire_hashesRR>t _dependencies(R RLRMRNRORPRYR[RURQRZR\R]R^R_t wheel_cacheRa((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR!�s8                        cC@sgg|jj�D]}|js|^q}|jdd��djg|D]}t|j�^qK�S(NR#cS@s |jj�S(N(tnametlower(treq((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt<lambda>�st (RRR$t comes_fromtsortR,tstrRf(R Rftreqs((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt__str__�scC@s}g|jj�D] }|^q}|jdd��djg|D]}t|j�^qB�}d|jjt|�|fS(NR#cS@s |jj�S(N(RdRe(Rf((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyRg�ss, s"<%s object; %d requirement(s): %s>( RRR$RjR,RkRft __class__R/tlen(R RfRltreqs_str((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR.�s "+c C@s�|j}|j�s2tjd|j|j�gS|jr~|jjr~t|jj�}|j �s~t d|j��q~n|j |_ |j |_ |j |_ |j|_|s�|jj|�|gSy|j|�}Wntk r�d}nX|dkr[|r[|j r[|j|jkr[|jj|jjk r[t d|||f��n|s�||j|<|j�|kr�||j|j�<n|g}n�g}|j rd|jrd|jr |jo�|jj|jjk r |jj|�t d|��nt|_ttt |j�j!t |j����|_tj"d||j�|g}n|}|r�|j|�}|j#|j|�n|SdS(s�Add install_req as a requirement to install. :param parent_req_name: The name of the requirement that needed this added. The name is used because when multiple unnamed requirements resolve to the same name, we could otherwise end up with dependency links that point outside the Requirements set. parent_req must already be added. Note that None implies that this is a user supplied requirement, vs an inferred one. :return: Additional requirements to scan. That is either [] if the requirement is not applicable, or [install_req] if the requirement is applicable and has just been added. s4Ignoring %s: markers %r don't match your environments-%s is not a supported wheel on this platform.s5Double requirement given: %s (already in %s, name=%r)shCould not satisfy constraints for '%s': installation from path or url cannot be constrained to a versionsSetting %s extras to: %sN($Rdt match_markerstloggertwarningtmarkersR:R;Rtfilenamet supportedR RYRZR[R]RTR'tget_requirementtKeyErrorRJt constrainttextrasRft specifierRRReRStpathRXtFalsettupletsortedtsettuniontdebugRb(R t install_reqtparent_req_nameRdtwheelt existing_reqtresultt parent_req((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pytadd_requirement�sn                   cC@s[|j�}||jkr,|j|j sS||jkrW|j|j|j rWtStS(N(ReRRRyRStTrueR}(R t project_nameRd((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pythas_requirement)s cC@s&td�|jj�D��p%|jS(Ncs@s|]}|js|VqdS(N(Ry(t.0Rf((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pys <genexpr>4s(R>RRR$RT(R ((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pythas_requirements2scC@sa|jr]t|j�|_tjj|j�r4tStjd�tdt |j���nt S(Ns!Could not find download directorys0Could not find or access download directory '%s'( RNRtosR|texistsR�RrtcriticalR RR}(R ((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt is_download7s  cC@slxU||j�fD]A}||jkr3|j|S||jkr|j|j|SqWtd|��dS(NsNo project with the name %r(ReRRRSRx(R R�Rd((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyRwDs  cC@sGx@|jj�D]/}|jr%qn|jd|�|j�qWdS(Nt auto_confirm(RRR$Ryt uninstalltcommit_uninstall(R R�Rf((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR�Ls  c C@s|jrt|j�n|j|jj�}|jpKtd�|D��}|rl|jrltd��ng}t �}xot ||�D]^}y,|j |j ||d|d|j ��Wq�tk r�}||_|j|�q�Xq�W|r�|�ndS(sY Prepare process. Create temp directories, download and/or unpack files. cs@s|]}|jVqdS(N(thas_hash_options(R�Rf((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pys <genexpr>_ss�--egg is not allowed with --require-hashes mode, since it delegates dependency resolution to setuptools and could thus result in installation of unhashed packages.RaRUN(R_RRTRRR$RatanyRYR RRtextendt _prepare_fileRURRfR'(R R5t root_reqsRatdiscovered_reqst hash_errorsRftexc((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt prepare_filesSs,      cC@s�|j�|jr�d}|jr�t}|jp7|js�y|j||j�Wq�tk rpd}t}q�t k r�q�Xn|s�|j o�t |j� s�|j|_ nd|_q�n|SdSdS(sCheck if req_to_install should be skipped. This will check if the req is installed, and whether we should upgrade or reinstall it, taking into account all the relevant user options. After calling this req_to_install will only have satisfied_by set to None if the req_to_install is to be upgraded/reinstalled etc. Any other value will be a dist recording the current thing installed that satisfies the requirement. Note that for vcs urls and the like we can't assess skipping in this routine - we simply identify that we need to pull the thing down, then later on it is pulled down and introspected to assess upgrade/ reinstalls etc. :return: A text reason for why it was skipped, or None. s$satisfied (use --upgrade to upgrade)s up-to-dateN(tcheck_if_existsRHROR}RQR:tfind_requirementR R�R RZRtconflicts_withRJ(R R2R5t skip_reasontbest_installed((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt_check_skip_installedzs(       c@s��js�jrgSt�_�jr;tjd��n��jdksPt��j sn�j �|�}n�jr�|dk s�td�jf��tjd|��nV�j r��j j dkr�t �j j�}tjdt|��ntjd��t����jr�|r1td���n�j�j��j�j �t��}|j��jrN�j�j�qNn��jr�|r�tjd�nt��}n��j�j�tjjtjj �j!d ��rt"d ��j!f��n�j#|�j$|��j s*t��j }|r�t%|�rQt&��n$t'|�rut(|�rut)��n�j* r��j+ r�t,��q�n�j-d | �} |r�| r�t.�} ny��j} t} �j j/r��j0r��j0} n�j j/r| rt} qt1} nt2�j �j!| | d �j3d | �WnEt4j5k r�} tj6d�| �td�| �j f��nXt��}|j��jr��j j t7j8kr��j�j�q�n�j s��j9�n�jrN�j$s�j r;�j:ot;�j� s/�j�_<nd�_qNtjd��n|j=|�} g����fd�}�j>�j?�s��j@�d�n|sZ�jAr�tjddj �jA��ntBtC�jA�tC| jA��}x!|D]}tjDd| |�q�WtBtC| jA�tC�jA�@�}x$| jE|�D]}||�qCWn�jFjG���j r��j r��jHjG��nWdQX�S(sxPrepare a single requirements file. :return: A list of additional InstallRequirements to also install. s Obtaining %ssP_check_skip_installed returned None but req_to_install.satisfied_by is set to %rsRequirement already %s: %stfiles Processing %ss Collecting %ssoThe editable requirement %s cannot be installed when requiring hashes, because there is no single file to hash.s�Since it is already installed, we are trusting this package without checking its hash. To ensure a completely repeatable environment, install into an empty virtualenv.ssetup.pys�pip can't proceed with requirements '%s' due to a pre-existing build directory (%s). This is likely due to a previous installation that failed. pip is being responsible and not assuming it can delete this. Please delete it and try again.ttrust_internetR\thashess4Could not install requirement %s because of error %ssDCould not install requirement %s because of HTTP error %s for URL %ss<Requirement already satisfied (use --upgrade to upgrade): %sc@sGtt|��d�jd�j�}�j�j|�j��dS(NR^Rc(RRkR^R`R�R�Rd(tsubreqtsub_install_req(t more_reqsR2R (s3/usr/lib/python2.7/site-packages/pip/req/req_set.pytadd_reqzs    s!Installing extra requirements: %rt,s"%s does not provide the extra '%s'N(IRytpreparedR�R8RrtinfoRHRJtAssertionErrorRPR�R:tschemeR turlRRR tensure_has_source_dirRMtupdate_editableR�R=R6tarchiveRNR�RGRLR�R|R�R,R@Rt populate_linkRORRRRRt original_linkt is_pinnedRR�RR;R_R}R R\Rt HTTPErrorR�Rt all_schemesR�RZRR�R4R�RdR�RzRR�RstrequiresRXR'RV(R R5R2RaRUR�R|t abstract_distR:R�RNtautodelete_unpackedR�R4R�tmissing_requestedtmissingtavailable_requestedR�((R�R2R s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR��s�                                                cC@s?tjd�t��#x|jD]}|j�q!WWdQXdS(sClean up files, remove builds.sCleaning up...N(RrR�RRXtremove_temporary_source(R Rf((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt cleanup_files�s  c@sOg�t������fd��x!�jj�D]}�|�q7W�S(s�Create the installation order. The installation order is topological - requirements are installed before the requiring thing. We break cycles at an arbitrary point, and make no other guarantees. c@sf|js|�krdS|jr&dS�j|�x�j|D]}�|�qAW�j|�dS(N(RHRytaddRbR'(Rftdep(tordert ordered_reqstscheduleR (s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR��s  (R�RRR$(R R�((R�R�R�R s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt _to_install�s   c O@s!|j�}|rDtjddjg|D]}|j^q(��nt���x�|D]�}|jr�tjd|j�t��|jdt�WdQXny|j ||||�Wn*|jr�|j r�|j �n�n X|jr|j r|j �n|j �qUWWdQX||_dS(sl Install everything in this set (after having downloaded and unpacked the packages) s!Installing collected packages: %ss, sFound existing installation: %sR�N(R�RrR�R,RdRR�R�R�tinstalltinstall_succeededtrollback_uninstallR�R�RW(R tinstall_optionstglobal_optionstargstkwargst to_installRft requirement((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyR��s: )            N((R/R0R}RJR�R!RmR.R�R�tpropertyR�R�RwR�R�R�R�R�R�R�(((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyRI�s*  2   W    ' 7 �  (7t __future__Rt collectionsRt itertoolsRtloggingR�t pip._vendorRRt pip.compatRt pip.downloadRRRR R tpip.exceptionsR R R RRRRRRtpip.req.req_installRt pip.utilsRRRRtpip.utils.hashesRtpip.utils.loggingRtpip.vcsRt pip.wheelRt getLoggerR/RrtobjectRR1R=R<R9RGRI(((s3/usr/lib/python2.7/site-packages/pip/req/req_set.pyt<module>s.  (@"