0{Yc@@s]ddlmZddlZddlZddlZejddkrddlmZefZe Z ddl m Z ddlZddlZddlmZddlmZmZmZmZmZdd lmZmZmZmZmZm Z m!Z!d Zddl"Z"dd l"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,ddl-Z-ddl.Z.ddl/Z0dd l1m1Z1ddl2Z2e3Z3dd l4m5Z6ddl4m7Z8da:dZ;noddl<mZe=fZe=Z ddl<m>Z ddlZddlZddlZddl?mZmZmZm;Z;mZmZmZmZm!Z!ddl@m$Z$mZm#Z#mZmZm'Z'm(Z(m)Z)m*Z*m+Z+m,Z,ddlAm&Z&m%Z%m Z ddlBjCZ-ddl@jDZ"ddlEjCZ.ddl0Z0dd lFm1Z1ddlGjHZ2eIZ3ddl4m8Z8e6Z6yddlJmKZKmLZLWn9eMk rdeNfdYZLdZOdZKnXyddl mPZQWn'eMk rdeRfdYZQnXyddlmSZSWn*eMk rejTejUBddZSnXddlVmWZXeYeXd r9eXZWn<dd!lVmZZ[d"e[fd#YZZd$eXfd%YZWydd&l\m]Z]WneMk rd'Z]nXyddl^Z^Wn!eMk rdd(lm^Z^nXy e_Z_Wn*e`k rdd)lambZbd*Z_nXyejcZcejdZdWnJeek rsejfZgegd+krXd,Zhnd-Zhd.Zcd/ZdnXydd0limjZjWnTeMk rdd1lkmlZlmmZmddlZejnd2Zod3Zpd4ZjnXydd5lqmrZrWn!eMk rdd5lsmrZrnXejd6 dSkr9e1jtZtndd8lqmtZtydd9lamuZuWnkeMk rdd:lamvZvydd;lwmxZyWneMk rd<d=ZynXd>evfd?YZunXydd@lzm{Z{WneMk rddAZ{nXyddBlam|Z|WneMk ryddCl}m~ZWn!eMk rZddClm~ZnXy ddDlmZmZmZWneMk rnXdEefdFYZ|nXyddGlmZmZWneMk rXejndHejZdIZdJefdKYZddLZdMefdNYZdOefdPYZdQeRfdRYZnXdS(Ti(tabsolute_importNi(tStringIO(tFileTypei(tshutil(turlparset urlunparseturljointurlsplitt urlunsplit(t urlretrievetquotetunquotet url2pathnamet pathname2urltContentTooShortErrort splittypecC@s+t|tr!|jd}nt|S(Nsutf-8(t isinstancetunicodetencodet_quote(ts((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyR s( tRequestturlopentURLErrort HTTPErrortHTTPBasicAuthHandlertHTTPPasswordMgrt HTTPSHandlert HTTPHandlertHTTPRedirectHandlert build_opener(t HTMLParser(tifilter(t ifilterfalsecC@sYtdkr*ddl}|jdantj|}|rO|jddSd|fS(sJsplituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.iNs ^(.*)@(.*)$ii(t _userprogtNonetretcompiletmatchtgroup(thostR$R&((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt splituser-s  (t TextIOWrapper( RRRR)R R RRR( RR RR R RRRRRR(RRR(t filterfalse(tmatch_hostnametCertificateErrorR-cB@seZRS((t__name__t __module__(((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyR-UscC@sg}x[|jdD]J}|dkr8|jdqtj|}|j|jddqWtjddj|dtjS( Nt.t*s[^.]+s\*s[^.]*s\As\.s\Z(tsplittappendR$tescapetreplaceR%tjoint IGNORECASE(tdntpatstfrag((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt_dnsname_to_patYs cC@sg|stdng}|jdd }xI|D]A\}}|dkr4t|j|redS|j|q4q4W|sxi|jddD]R}xI|D]A\}}|dkrt|j|rdS|j|qqWqWnt|dkr(td|d jtt |fn;t|dkrWtd ||d fn td dS(s7Verify that *cert* (in decoded format as returned by SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 rules are mostly followed, but IP addresses are not accepted for *hostname*. CertificateError is raised on failure. On success, the function returns nothing. sempty or no certificatetsubjectAltNametDNSNtsubjectt commonNameis&hostname %r doesn't match either of %ss, shostname %r doesn't match %ris=no appropriate commonName or subjectAltName fields were found((( t ValueErrortgetR;R&R3tlenR-R6tmaptrepr(tcertthostnametdnsnamestsantkeytvaluetsub((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyR,gs.  %(tSimpleNamespacet ContainercB@seZdZdZRS(sR A generic container for when multiple values need to be returned cK@s|jj|dS(N(t__dict__tupdate(tselftkwargs((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt__init__s(R.R/t__doc__RR(((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRMs(twhichc @sd}tjjr2||r.SdS|dkrYtjjdtj}n|scdS|jtj}t j dkrtj |kr|j dtj ntjjddjtj}t fd|Drg}qg|D]}|^q}n g}t}xu|D]m}tjj|} | |kr+|j| x9|D].} tjj|| } || |rc| SqcWq+q+WdS( sKGiven a command, mode, and a PATH string, return the path which conforms to the given mode on the PATH, or None if there is no such file. `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result of os.environ.get("PATH"), or can be overridden with a custom search path. cS@s5tjj|o4tj||o4tjj| S(N(tostpathtexiststaccesstisdir(tfntmode((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt _access_checks$tPATHtwin32itPATHEXTtc3@s*|] }jj|jVqdS(N(tlowertendswith(t.0text(tcmd(sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pys sN(RURVtdirnameR#tenvironRAtdefpathR2tpathseptsystplatformtcurdirtinserttanytsettnormcasetaddR6( ReR[RVR\tpathexttfilesRdtseentdirtnormdirtthefiletname((ResK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRTs8  !        (tZipFilet __enter__(t ZipExtFileR{cB@s#eZdZdZdZRS(cC@s|jj|jdS(N(RNRO(RPtbase((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRRscC@s|S(N((RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRzscG@s|jdS(N(tclose(RPtexc_info((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt__exit__s(R.R/RRRzR(((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyR{s  RycB@s#eZdZdZdZRS(cC@s|S(N((RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRzscG@s|jdS(N(R}(RPR~((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRscO@stj|||}t|S(N(t BaseZipFiletopenR{(RPtargsRQR|((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRs(R.R/RzRR(((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRys  (tpython_implementationcC@s@dtjkrdStjdkr&dStjjdr<dSdS(s6Return a string identifying the Python implementation.tPyPytjavatJythont IronPythontCPython(RjtversionRURxt startswith(((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRs(t sysconfig(tCallablecC@s t|tS(N(RR(tobj((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytcallablestmbcststricttsurrogateescapecC@sOt|tr|St|tr2|jttStdt|jdS(Nsexpect bytes or str, not %s( Rtbytest text_typeRt _fsencodingt _fserrorst TypeErrorttypeR.(tfilename((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytfsencode#s cC@sOt|tr|St|tr2|jttStdt|jdS(Nsexpect bytes or str, not %s( RRRtdecodeRRRRR.(R((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytfsdecode,s (tdetect_encoding(tBOM_UTF8tlookupscoding[:=]\s*([-\w.]+)cC@s^|d jjdd}|dks7|jdr;dS|d ksV|jd rZdS|S(s(Imitates get_normal_name in tokenizer.c.i t_t-sutf-8sutf-8-slatin-1s iso-8859-1s iso-latin-1slatin-1-s iso-8859-1-s iso-latin-1-(slatin-1s iso-8859-1s iso-latin-1(slatin-1-s iso-8859-1-s iso-latin-1-(RaR5R(torig_enctenc((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt_get_normal_name=s c@s yjjWntk r)dnXtd}d}fd}fd}|}|jtrt|d}d}n|s|gfS||}|r||gfS|}|s||gfS||}|r|||gfS|||gfS(s> The detect_encoding() function is used to detect the encoding that should be used to decode a Python source file. It requires one argment, readline, in the same way as the tokenize() generator. It will call readline a maximum of twice, and return the encoding used (as a string) and a list of any lines (left as bytes) it has read in. It detects the encoding from the presence of a utf-8 bom or an encoding cookie as specified in pep-0263. If both a bom and a cookie are present, but disagree, a SyntaxError will be raised. If the encoding cookie is an invalid charset, raise a SyntaxError. Note that if a utf-8 bom is found, 'utf-8-sig' is returned. If no encoding is specified, then the default of 'utf-8' will be returned. sutf-8c@s$y SWntk rdSXdS(NR`(t StopIteration((treadline(sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt read_or_stop`s  c@s7y|jd}WnDtk rYd}dk rJdj|}nt|nXtj|}|ssdSt|d}yt|}WnHt k rdkrd|}ndj|}t|nXr3|j dkr&dkrd}ndj}t|n|d 7}n|S( Nsutf-8s'invalid or missing encoding declarations {} for {!r}isunknown encoding: sunknown encoding for {!r}: {}sencoding problem: utf-8s encoding problem for {!r}: utf-8s-sig( RtUnicodeDecodeErrorR#tformatt SyntaxErrort cookie_retfindallRRt LookupErrorRx(tlinet line_stringtmsgtmatchestencodingtcodec(t bom_foundR(sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt find_cookiefs6          is utf-8-sigN(t__self__RxtAttributeErrorR#tFalseRRtTrue(RRtdefaultRRtfirsttsecond((RRRsK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRHs4  &         (R4ii(tunescape(tChainMap(tMutableMapping(trecursive_reprs...c@sfd}|S(sm Decorator to make a repr function return fillvalue for a recursive call c@smtfd}td|_td|_td|_tdi|_|S(Nc@sWt|tf}|kr%Sj|z|}Wdj|X|S(N(tidt get_identRqtdiscard(RPRItresult(t fillvaluet repr_runningt user_function(sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytwrappers  R/RSR.t__annotations__(RotgetattrR/RSR.R(RR(R(RRsK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytdecorating_functions  ((RR((RsK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt_recursive_reprsRcB@seZdZdZdZdZddZdZdZ dZ dZ e d Z ed Zd ZeZd Zed ZdZdZdZdZdZRS(s A ChainMap groups multiple dicts (or other mappings) together to create a single, updateable view. The underlying mappings are stored in a list. That list is public and can accessed or updated using the *maps* attribute. There is no other state. Lookups search the underlying mappings successively until a key is found. In contrast, writes, updates, and deletions only operate on the first mapping. cG@st|pig|_dS(sInitialize a ChainMap by setting *maps* to the given mappings. If no mappings are provided, a single empty dictionary is used. N(tlisttmaps(RPR((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRRscC@st|dS(N(tKeyError(RPRI((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt __missing__scC@sAx1|jD]&}y ||SWq tk r/q Xq W|j|S(N(RRR(RPRItmapping((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt __getitem__s   cC@s||kr||S|S(N((RPRIR((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRAscC@sttj|jS(N(RBRotunionR(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt__len__scC@sttj|jS(N(titerRoRR(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt__iter__sc@stfd|jDS(Nc3@s|]}|kVqdS(N((Rctm(RI(sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pys s(RnR(RPRI((RIsK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt __contains__scC@s t|jS(N(RnR(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt__bool__scC@s%dj|djtt|jS(Ns{0.__class__.__name__}({1})s, (RR6RCRDR(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt__repr__scG@s|tj||S(s?Create a ChainMap with a single dict created from the iterable.(tdicttfromkeys(tclstiterableR((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRscC@s$|j|jdj|jdS(sHNew ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]ii(t __class__Rtcopy(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyR scC@s|ji|jS(s;New ChainMap with a new dict followed by all previous maps.(RR(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt new_childscC@s|j|jdS(sNew ChainMap from maps[1:].i(RR(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytparentsscC@s||jd| od[i]=yiiN(RR(RPRIRJt dict_setitemRtlast((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRms    )cC@s@||||jj|\}}}||d<||d del od[y]iiN(RR(RPRIt dict_delitemt link_prevt link_next((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRws  cc@s=|j}|d}x#||k r8|dV|d}qWdS(sod.__iter__() <==> iter(od)iiN(R(RPRtcurr((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRs    cc@s=|j}|d}x#||k r8|dV|d}qWdS(s#od.__reversed__() <==> reversed(od)iiN(R(RPRR((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt __reversed__s    cC@smyHx|jjD] }|2qW|j}||dg|(|jjWntk r[nXtj|dS(s.od.clear() -> None. Remove all items from od.N(Rt itervaluesRR#RRR(RPtnodeR((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRs  cC@s|stdn|j}|rO|d}|d}||d<||d (k, v), return and remove a (key, value) pair. Pairs are returned in LIFO order if last is true or FIFO order if false. sdictionary is emptyiii(RRRRR(RPRRtlinkRRRIRJ((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRs            cC@s t|S(sod.keys() -> list of keys in od(R(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytkeysscC@sg|D]}||^qS(s#od.values() -> list of values in od((RPRI((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytvaluesscC@s!g|D]}|||f^qS(s.od.items() -> list of (key, value) pairs in od((RPRI((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytitemsscC@s t|S(s0od.iterkeys() -> an iterator over the keys in od(R(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytiterkeysscc@sx|D]}||VqWdS(s2od.itervalues -> an iterator over the values in odN((RPtk((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRs cc@s$x|D]}|||fVqWdS(s=od.iteritems -> an iterator over the (key, value) items in odN((RPR((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt iteritemss cO@s&t|dkr.tdt|fn|sCtdn|d}d}t|dkrr|d}nt|trxw|D]}|||| None. Update od from dict/iterable E and F. If E is a dict instance, does: for k in E: od[k] = E[k] If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] Or if E is an iterable of items, does: for k, v in E: od[k] = v In either case, this is followed by: for k, v in F.items(): od[k] = v is8update() takes at most 2 positional arguments (%d given)s,update() takes at least 1 argument (0 given)iiRN((RBRRRthasattrRR(RRRPtotherRIRJ((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyROs&    cC@sC||kr!||}||=|S||jkr?t|n|S(sod.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised. (t_OrderedDict__markerR(RPRIRR((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRs  cC@s"||kr||S|||<|S(sDod.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od((RPRIR((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt setdefaults  cC@s|si}nt|tf}||kr4dSd|| repr(od)s...is%s()s%s(%r)N(Rt _get_identRR.R(RPt _repr_runningtcall_key((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRs   cC@sg|D]}|||g^q}t|j}x'ttD]}|j|dqEW|rx|j|f|fS|j|ffS(s%Return state information for picklingN(tvarsRRRR#R(RPRRt inst_dict((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt __reduce__s#cC@s |j|S(s!od.copy() -> a shallow copy of od(R(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRscC@s(|}x|D]}||| New ordered dictionary with keys from S and values equal to v (which defaults to None). ((RRRJtdRI((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyR"s  cC@sMt|tr=t|t|ko<|j|jkStj||S(sod.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive while comparison to a regular mapping is order-insensitive. (RRRBRRt__eq__(RPR ((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyR-s.cC@s ||k S(N((RPR ((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt__ne__6scC@s t|S(s@od.viewkeys() -> a set-like object providing a view on od's keys(R(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytviewkeys;scC@s t|S(s<od.viewvalues() -> an object providing a view on od's values(R(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt viewvalues?scC@s t|S(sBod.viewitems() -> a set-like object providing a view on od's items(R(RP((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyt viewitemsCsN(#R.R/RSRRRRRRRRRRRRRRRR RORtobjectR RR#R RRRRRRRRRR(((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRQs:                   (tBaseConfiguratort valid_idents^[a-z_][a-z0-9_]*$cC@s,tj|}|s(td|ntS(Ns!Not a valid Python identifier: %r(t IDENTIFIERR&R@R(RR((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRMstConvertingDictcB@s#eZdZdZddZRS(s A converting dictionary wrapper.cC@sqtj||}|jj|}||k rm|||[a-z]+)://(?P.*)$s ^\s*(\w+)\s*s^\.\s*(\w+)\s*s^\[\s*(\w+)\s*\]\s*s^\d+$t ext_convertRdt cfg_converttcfgcC@st||_||j_dS(N(RtconfigR(RPR)((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRRsc C@s|jd}|jd}yy|j|}x_|D]W}|d|7}yt||}Wq7tk r|j|t||}q7Xq7W|SWnVtk rtjd\}}td||f}|||_ |_ |nXdS(sl Resolve strings to objects using standard import and attribute syntax. R0iisCannot resolve %r: %sN( R2RtimporterRRt ImportErrorRjR~R@t __cause__t __traceback__( RPRRxtusedtfoundR:tettbtv((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytresolves"    cC@s |j|S(s*Default converter for the ext:// protocol.(R3(RPRJ((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyR&scC@sO|}|jj|}|dkr7td|n||j}|j|jd}x|rJ|jj|}|r||jd}n|jj|}|r|jd}|j j|s||}qyt |}||}Wqt k r||}qXn|r1||j}qatd||fqaW|S(s*Default converter for the cfg:// protocol.sUnable to convert %risUnable to convert %r at %rN( t WORD_PATTERNR&R#R@tendR)tgroupst DOT_PATTERNt INDEX_PATTERNt DIGIT_PATTERNtintR(RPRJtrestRRR$tn((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyR's2     cC@s/t|t r7t|tr7t|}||_nt|t rnt|trnt|}||_nt|t rt|trt|}||_nt|tr+|j j |}|r+|j }|d}|j j |d}|r(|d}t||}||}q(q+n|S(s Convert values to an appropriate type. dicts, lists and tuples are replaced by their converting alternatives. Strings are checked to see if they have a conversion format and are converted if they do. tprefixRN(RRRRR!RR"R%t string_typestCONVERT_PATTERNR&t groupdicttvalue_convertersRAR#R(RPRJRRR=t converterR((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyR s*         c C@s|jd}t|s-|j|}n|jdd}tg|D]"}t|rI|||f^qI}||}|rx-|jD]\}}t|||qWn|S(s1Configure an object with a user-supplied factory.s()R0N(RRR3R#RRRtsetattr( RPR)RtpropsRRQRRxRJ((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytconfigure_customs 5 cC@s"t|trt|}n|S(s0Utility function which converts lists to tuples.(RRR%(RPRJ((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pytas_tuple$s(R.R/RSR$R%R?R4R7R8R9RAt staticmethodt __import__R*RRR3R&R'R RERF(((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyRs"      "  (ii(t __future__RRUR$Rjt version_infoRt basestringR>RRttypesRt file_typet __builtin__tbuiltinst ConfigParsert configparsert _backportRRRRRRturllibR R RR R R RRturllib2RRRRRRRRRRthttplibt xmlrpclibtQueuetqueueRthtmlentitydefst raw_inputt itertoolsR tfilterR!R+R#R"R)tiotstrR*t urllib.parseturllib.requestt urllib.errort http.clienttclienttrequestt xmlrpc.clientt html.parsert html.entitiestentitiestinputtsslR,R-R+R@R;RLRMRRTtF_OKtX_OKtzipfileRyRR R{tBaseZipExtFileRkRRRt NameErrort collectionsRRRRtgetfilesystemencodingRRttokenizeRtcodecsRRR%RRthtmlR4tcgiRRRtreprlibRRtimpRRtthreadRRt dummy_threadt_abcollRRRRtlogging.configRRtIRRRRR!R%R"(((sK/opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/compat.pyts      (4  F         @L    )  A                   [   b