2{Yc@ssddlZddlmZddlZddlZddlmZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZyddlZWnek rddlZnXddlZddlmZddlmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/e j0e1Z2dZ3e j4e3Z5dZ6d e6d Z7e6d Z8d Z9d e9de8de3d e9de8dZ:dZ;de:de;de:dZ<e7d e3e7dZ=de=dZ>de6de>de<dZ?e j4e?Z@de9de8d ZAe j4eAZBdZCd ZDd!ZEd"ZFddd#ZHd$ZId%ZJd&ZKejLd'ZMejLd(ZNejLd)d*ZOd+ePfd,YZQd-ZRd.ePfd/YZSd0ZTd1ePfd2YZUe j4d3e jVZWd4ZXdd5ZYd6ZZd7Z[d8Z\d9Z]d:Z^e j4d;e j_Z`e j4d<Zadd=Zbe j4d>Zcd?Zdd@ZedAZfdBZgdCZhdDePfdEYZidFePfdGYZjdHePfdIYZkd}ZldemdQZndRZod~ZpdYePfdZYZqe j4d[Zre j4d\Zse j4d]Ztd^Zd_Zud`e"jvfdaYZvdbe'fdcYZ&dde&e%fdeYZwejxdf Zyeydkrdhe"jzfdiYZzdje"j{fdkYZ{ndle#j|fdmYZ|dne#j}fdoYZ}dpe#j~fdqYZ~drZdsePfdtYZduefdvYZdwefdxYZdye(fdzYZd{ePfd|YZdS(iN(tdeque(tiglobi(tDistlibException(t string_typest text_typetshutilt raw_inputtStringIOtcache_from_sourceturlopenthttplibt xmlrpclibt splittypet HTTPHandlert HTTPSHandlertBaseConfiguratort valid_identt Containert configparsertURLErrortmatch_hostnametCertificateErrortZipFiles\s*,\s*s (\w|[.-])+s(\*|:(\*|\w+):|t)s\*?s([<>=!~]=)|[<>]t(s)?\s*(s)(s)\s*(s))*s(from\s+(?P.*))s \(\s*(?Pt|s)\s*\)|(?Ps\s*)s)*s \[\s*(?Ps)?\s*\]s(?Ps \s*)?(\s*s)?$s(?Ps )\s*(?Pc Cskd}d}tj|}|rg|j}|d}|dpK|d}|dsad}nd}|dj}|sd}d}|d} n{|ddkrd |}ntj|} g| D]}||^q}d |d jg|D]} d | ^qf} |d s$d} ntj |d } t d|d|d| d| d|d|}n|S(NcSs|j}|d|dfS(Ntoptvn(t groupdict(tmtd((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytget_constraintTs tdntc1tc2tdireftis<>!=s~=s%s (%s)s, s%s %stextnamet constraintstextrast requirementtsourceturl( tNonetREQUIREMENT_REtmatchRtstriptRELOP_IDENT_REtfinditertjointCOMMA_REtsplitR( tsRtresultRRR&tconsR+tconstrtrstiteratortconR(((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytparse_requirementRs4       0  cCsd}i}x|D]\}}}tjj||}xt|D]}tjj||} xt| D]v} ||| } |dkr|j| dqo||| } |jtjjdjd} | d| || RAtrstrip(tresources_roottrulesREt destinationsRDtsuffixtdesttprefixtabs_basetabs_globtabs_patht resource_filetrel_pathtrel_dest((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytget_resources_destsws  !cCs:ttdrt}ntjttdtjk}|S(Nt real_prefixt base_prefix(thasattrtsystTrueRMtgetattr(R6((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytin_venvs cCs;tjdkr.dtjkr.tjd}n tj}|S(Ntdarwint__PYVENV_LAUNCHER__(RXtplatformR?tenviront executable(R6((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytget_executables   cCs|}xwtrt|}|}| r7|r7|}n|r |dj}||kr]Pn|r|d|||f}q|q q W|S(Nis %c: %s %s(RYRtlower(tpromptt allowed_charst error_prompttdefaulttpR5tc((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytproceeds     cCsVt|tr|j}ni}x+|D]#}||kr+||||scCstjj|}||jkrtjj| r|jj|tjj|\}}|j|tj d||j stj |n|j r|j j|qndS(Ns Creating %s(R?R@RRRRR4RRRRtmkdirRR(RR@RR((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRs"   cCst|| }tjd|||js|sD|j||rf|sSd}qf|t|}ntj|||t n|j ||S(NsByte-compiling %s to %s( RRRRRR,RBt py_compiletcompileRYR(RR@toptimizetforceRMtdpathtdiagpath((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt byte_compiles   cCstjj|rtjj|rtjj| rtjd||js`tj |n|j r ||j kr|j j |qq qtjj|rd}nd}tjd|||jstj |n|j r||j kr |j j |q qndS(NsRemoving directory tree at %stlinktfilesRemoving %s %s(R?R@RtisdirRRtdebugRRRRRRR(RR@R5((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytensure_removeds"%     cCsjt}x]|setjj|r:tj|tj}Pntjj|}||kr\Pn|}q W|S(N(RR?R@RtaccesstW_OKR(RR@R6tparent((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt is_writables   cCs |j|jf}|j|S(sV Commit recorded changes, turn off recording, return changes. (RRR(RR6((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytcommits cCs|jsx9t|jD](}tjj|rtj|qqWt|jdt }x\|D]Q}tj |}|rtjj ||d}tj |ntj |qaWn|j dS(Ntreversei(RtlistRR?R@RRtsortedRRYtlistdirR2trmdirR(RRtdirsRtflisttsd((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytrollbacks  N(RRRRRRRRYRR,RRRRtset_executable_modeRRRRRR(((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyR:s             cCs|tjkrtj|}n t|}|dkr@|}nG|jd}t||jd}x|D]}t||}qnW|S(Nt.i(RXtmodulest __import__R,R4RZRF(t module_namet dotted_pathtmodR6tpartsRg((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytresolves    t ExportEntrycBs;eZdZedZdZdZejZRS(cCs(||_||_||_||_dS(N(R&RMRKR(RR&RMRKR((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRs   cCst|j|jS(N(RRMRK(R((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRscCs d|j|j|j|jfS(Ns(R&RMRKR(R((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt__repr__ scCsdt|tst}nH|j|jko]|j|jko]|j|jko]|j|jk}|S(N(RjRRR&RMRKR(RtotherR6((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt__eq__s ( RRRRRRRRt__hash__(((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRs    s(?P(\w|[-.])+) \s*=\s*(?P(\w+)([:\.]\w+)*) \s*(\[\s*(?P\w+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])? c CsStj|}|sId}d|ks3d|krOtd|qOn|j}|d}|d}|jd}|dkr|d}}n4|dkrtd|n|jd\}}|d } | dkrd|ksd|kr td|ng} n(g| jd D]} | j^q"} t|||| }|S( Nt[t]sInvalid specification %rR&tcallablet:iiRt,( tENTRY_REtsearchR,RRtcountR4R/R( t specificationRR6RR&R@tcolonsRMRKRR((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRw!s2          (cCs|d krd}ntjdkrHdtjkrHtjjd}ntjjd}tjj|rtj|tj }|st j d|qnGytj |t }Wn-tk rt j d|dt t}nX|s tj}t j d |ntjj||S( s Return the default base location for distlib caches. If the directory does not exist, it is created. Use the suffix provided for the base directory, and default to '.distlib' if it isn't provided. On Windows, if LOCALAPPDATA is defined in the environment, then it is assumed to be a directory, and will be the parent directory of the result. On POSIX, and on Windows if LOCALAPPDATA is not defined, the user's home directory - using os.expanduser('~') - will be the parent directory of the result. The result is just the directory '.distlib' in the parent directory as determined above, or with the name specified with ``suffix``. s.distlibtntt LOCALAPPDATAs $localappdatat~s(Directory exists but is not writable: %ssUnable to create %stexc_infos#Default location unusable, using %sN(R,R?R&R_R@t expandvarst expanduserRRRRtwarningtmakedirsRYtOSErrorRRRR2(RKR6tusable((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytget_cache_base@s&       cCs`tjjtjj|\}}|r?|jdd}n|jtjd}||dS(s Convert an absolute path to a directory name for use in a cache. The algorithm used is: #. On Windows, any ``':'`` in the drive is replaced with ``'---'``. #. Any occurrence of ``os.sep`` is replaced with ``'--'``. #. ``'.cache'`` is appended. R s---s--s.cache(R?R@t splitdriveRR>RA(R@RRg((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytpath_to_cache_diris $cCs|jds|dS|S(NR=(tendswith(R5((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt ensure_slashzscCskd}}d|kr^|jdd\}}d|krC|}q^|jdd\}}n|||fS(Nt@iR (R,R4(tnetloctusernametpasswordRM((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytparse_credentialss    cCs tjd}tj||S(Ni(R?tumask(R6((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytget_process_umasks cCsFt}d}x3t|D]%\}}t|tst}PqqW|S(N(RYR,t enumerateRjRR(tseqR6tiR5((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytis_string_sequencess3([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-([a-z0-9_.+-]+)s -py(\d\.?\d?)cCsd}d}tj|}|rC|jd}||j }n|rt|t|dkrtjtj|d|}|r|j }|| ||d|f}qn|dkrt j|}|r|jd|jd|f}qn|S(sw Extract name, version, python version from a filename (no extension) Return name, version, pyver or None is\biN( R,tPYTHON_VERSIONRRtstartRBtreR.tescapetendtPROJECT_NAME_AND_VERSION(tfilenamet project_nameR6tpyverRtn((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytsplit_filenames " ! 's-(?P[\w .-]+)\s*\(\s*(?P[^\s)]+)\)$cCsRtj|}|s(td|n|j}|djj|dfS(s A utility method used to get name and version from a string. From e.g. a Provides-Dist value. :param p: A value in a form 'foo (1.0)' :return: The name and version as a tuple. s$Ill-formed name/version string: '%s'R&tver(tNAME_VERSION_RER.RRR/Rb(RgRR((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytparse_name_and_versions  cCs t}t|pg}t|p'g}d|krS|jd||O}nx|D]}|dkr||j|qZ|jdr|d}||krtjd|n||kr|j|qqZ||krtjd|n|j|qZW|S(Nt*t-isundeclared extra: %s(RRRt startswithRR(t requestedt availableR6trtunwanted((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt get_extrass&          cCsi}yet|}|j}|jddkrFtjdn$tjd|}tj|}Wn&t k r}tj d||nX|S(Ns Content-Typesapplication/jsons$Unexpected response for JSON requestsutf-8s&Failed to get external data for %s: %s( R RtgetRRRqRrRtRuRxt exception(R+R6tresptheaderstreaderte((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt_get_external_datas  cCs*d|dj|f}t|}|S(Ns9https://www.red-dove.com/pypi/projects/%s/%s/project.jsoni(tupperRH(R&R+R6((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytget_project_datas cCs'd|dj||f}t|S(Ns<https://www.red-dove.com/pypi/projects/%s/%s/package-%s.jsoni(RIRH(R&tversionR+((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytget_package_datastCachecBs)eZdZdZdZdZRS(s A class implementing a cache for resources that need to live in the file system e.g. shared libraries. This class was moved from resources to here because it could be used by other modules, e.g. the wheel module. cCsvtjj|s"tj|ntj|jd@dkrQtjd|ntjjtjj ||_ dS(su Initialise an instance. :param base: The base directory where the cache should be located. i?isDirectory '%s' is not privateN( R?R@RRRRRRRtnormpathRD(RRD((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyR s cCs t|S(sN Converts a resource prefix to a directory name in the cache. (R(RRM((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt prefix_to_dirscCsg}xtj|jD]}tjj|j|}yZtjj|s^tjj|rntj|n"tjj|rt j |nWqt k r|j |qXqW|S(s" Clear the cache. ( R?RRDR@R2RRRRRRRxtappend(Rt not_removedtfn((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytclears$ (RRt__doc__RRORS(((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRMs  t EventMixincBs>eZdZdZedZdZdZdZRS(s1 A very simple publish/subscribe system. cCs i|_dS(N(t _subscribers(R((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyR2scCs\|j}||kr+t|g|| %s;s %s;t}s (RbRPRdR2(RR6RkRmRjRe((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytdots    ( RRRRfRRhRRRpRvtpropertyRR(((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRavs      3s.tar.gzs.tar.bz2s.tars.zips.tgzs.tbzs.whlc sfd}tjjtd}|dkr|jdrZd}q|jdrxd}d}q|jdrd }d }q|jd rd}d}qtd|nz|dkrt|d}|rZ|j}x|D]}||qWqZnBt j ||}|rZ|j }x|D]}||qCWn|dkrt j ddkrxA|jD]0} t| jts| jjd| _qqWn|jWd|r|jnXdS(Ncs|t|ts!|jd}ntjjtjj|}|j se|tjkrxt d|ndS(Nsutf-8spath outside destination: %r( RjRtdecodeR?R@RR2R<RAR(R@Rg(tdest_dirtplen(sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt check_paths !#s.zips.whltzips.tar.gzs.tgzttgzsr:gzs.tar.bz2s.tbzttbzsr:bz2s.tarttarR?sUnknown format for %riisutf-8(s.zips.whl(s.tar.gzs.tgz(s.tar.bz2s.tbz(R?R@RRBR,RRRtnamelistttarfileRtgetnamesRXRpt getmembersRjR&RRt extractallR( tarchive_filenameRtformatRRtarchiveRtnamesR&ttarinfo((RRsI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt unarchivesH           c Cstj}t|}t|d}xutj|D]d\}}}xR|D]J}tjj||}||} tjj| |} |j|| qPWq:WWdQX|S(s*zip a directory tree into a BytesIO objectRN( tiotBytesIORBRR?twalkR@R2R( t directoryR6tdlentzftrootRRR&tfulltrelRL((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytzip_dir:s    R$tKtMtGtTtPtProgresscBseZdZdddZdZdZdZdZedZ ed Z d Z ed Z ed Z RS( tUNKNOWNiidcCs8||_|_||_d|_d|_t|_dS(Ni(RwtcurtmaxR,tstartedtelapsedRtdone(Rtminvaltmaxval((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRQs    cCsD||_tj}|jdkr0||_n||j|_dS(N(RttimeRR,R(Rtcurvaltnow((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytupdateYs    cCs|j|j|dS(N(RR(Rtincr((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt incrementcscCs|j|j|S(N(RRw(R((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyR-gscCs/|jdk r"|j|jnt|_dS(N(RR,RRYR(R((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytstopkscCs|jdkr|jS|jS(N(RR,tunknown(R((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytmaximumpscCsZ|jrd}nD|jdkr*d}n,d|j|j|j|j}d|}|S(Ns100 %s ?? %gY@s%3d %%(RRR,RRw(RR6R((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt percentagets   " cCsU|dkr|jdks-|j|jkr6d}ntjdtj|}|S(Nis??:??:??s%H:%M:%S(RR,RRwRtstrftimetgmtime(RtdurationR6((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytformat_durations- cCs|jrd}|j}nd}|jdkr9d}ne|jdksZ|j|jkrcd}n;t|j|j}||j|j:}|d|j}d||j|fS(NtDonesETA iiis%s: %s(RRRR,RRwtfloatR(RRMtt((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytETAs   ! cCsh|jdkrd}n|j|j|j}x(tD] }|dkrLPn|d:}q6Wd||fS(Nigig@@s%d %sB/s(RRRwtUNITS(RR6tunit((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytspeeds   (RRRRRRR-RRRRRRR(((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRNs    s \{([^}]*)\}s[^/\\,{]\*\*|\*\*[^/\\,}]s^[^{]*\}|\{[^}]*$cCsZtj|r(d}t||ntj|rPd}t||nt|S(sAExtended globbing function that supports ** and {opt1,opt2,opt3}.s7invalid glob %r: recursive glob "**" must be used alones2invalid glob %r: mismatching set marker '{' or '}'(t_CHECK_RECURSIVE_GLOBRRt_CHECK_MISMATCH_SETt_iglob(t path_globR((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRsc csmtj|d}t|dkr~|\}}}x3|jdD]4}x+tdj|||fD] }|VqhWqCWnd|krxt|D] }|VqWn|jdd\}}|dkrd}n|dkrd}n|jd}|jd}x]tj|D]L\}}} tj j |}x(ttj j||D] } | VqVWqWdS( NiR R$s**RR:R=s\( t RICH_GLOBR4RBRR2t std_iglobRCR?RR@RN( Rtrich_path_globRMRRKtitemR@tradicaltdirRRR((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRs(%      "tHTTPSConnectioncBseZdZeZdZRS(c Cstj|j|jf|j}t|dtrI||_|jnt t ds|j rmt j }n t j }t j||j|jd|dt jd|j |_nt jt j}|jt jO_|jr|j|j|jni}|j rHt j |_|jd|j tt dtrH|j|d!           N(RRR,RRYRR(((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRsRcBs&eZedZdZdZRS(cCs#tj|||_||_dS(N(tBaseHTTPSHandlerRRR(RRR((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRs  cOs7t||}|jr3|j|_|j|_n|S(s This is called to create a connection instance. Normally you'd pass a connection class to do_open, but it doesn't actually check for a class, and just expects a callable. As long as we behave just as a constructor would have, we should be OK. If it ever changes so that we *must* pass a class, we'll create an UnsafeHTTPSConnection class which just sets check_domain to False in the class definition, and choose which one to pass to do_open. (RRR(RR^R_R6((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt _conn_maker s   cCs_y|j|j|SWnAtk rZ}dt|jkrTtd|jq[nXdS(Nscertificate verify faileds*Unable to verify server certificate for %s(tdo_openRRtstrtreasonRR(RtreqRG((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt https_opens(RRRYRRR(((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRs  tHTTPSOnlyHandlercBseZdZRS(cCstd|dS(NsAUnexpected HTTP request on what should be a secure connection: %s(R(RR((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyt http_open0s(RRR(((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyR/siitHTTPcBseZdddZRS(R$cKs5|dkrd}n|j|j|||dS(Ni(R,t_setupt_connection_class(RRRR_((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyR<s  N(RRR,R(((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyR;stHTTPScBseZdddZRS(R$cKs5|dkrd}n|j|j|||dS(Ni(R,RR(RRRR_((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRCs  N(RRR,R(((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRBst TransportcBseZddZdZRS(icCs ||_tjj||dS(N(RR RR(RRt use_datetime((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRJs cCs|j|\}}}tdkr<t|d|j}nN|j sY||jdkr}||_|tj|f|_n|jd}|S(NiiRii(ii(t get_host_infot _ver_infoRRt _connectiont_extra_headersR tHTTPConnection(RRthtehtx509R6((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pytmake_connectionNs   (RRRR (((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRIs t SafeTransportcBseZddZdZRS(icCs ||_tjj||dS(N(RR R R(RRR((sI/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/util.pyRZs cCs|j|\}}}|s'i}n|j|ds                    . %   $       )           ,H6 ] !*)   :