ó †2{Yc@sdZddlZddlZddlZddlmZddlmZmZd„Z ej ej fd„Z d„Z defd „ƒYZeƒZdS( sLogging iÿÿÿÿN(tbackwardcompat(tcoloramat pkg_resourcescs‡fd†}|S(Ncs#djtˆƒ|tjjgƒS(Nt(tjointlistRtStylet RESET_ALL(tinp(tcolors(s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pytwrapped s((R R ((R s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyt _color_wrap scCsmt|tjƒs|n|j}||kr1tSt|dƒrP|jƒrPtS|jdƒdkritStS(NtisattytTERMtANSI( t isinstanceRt AnsiToWin32R tFalsethasattrR tTruetget(tconsumertenvirontstdt real_consumer((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyt should_colors  cCs”dj|jdƒd ƒ}dj|jdƒd ƒ}|jdƒ\}}tt|ƒdƒ}dj||gƒ}tj|ƒtj|ƒkS(Nt.ii(RtsplittstrtintRt parse_version(tcurrent_versiontremoval_versiontmajortminort warn_version((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyt should_warn&s tLoggercBsqeZdZejdZejZejZejejdZejZZ ej Z ej Z eeeeee e gZ ie ejjƒe6e ejjƒe 6e ejjƒe 6Zd„Zd„Zd„Zd„Zd„Zd„Zd „Zd „Zd „Zd „Zd „Zd„Zdd„Zdd„Z!d„Z"d„Z#d„Z$e%d„ƒZ&d„Z'RS(s‰ Logging object for use in command-line script. Allows ranges of levels, to avoid some redundancy of displayed information. iicCs1g|_d|_t|_d|_t|_dS(Ni(t consumerstindentRtexplicit_levelstNonet in_progresstin_progress_hanging(tself((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyt__init__Ls     cGs‡tjjdƒrsxn|D]S\}}t|dƒrV|jj|tj|ƒfƒq|jj||fƒqWn|jj|ƒdS(Ntwintwrite( tsystplatformt startswithRR&tappendRRtextend(R,R&tlevelR((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyt add_consumersSs cOs|j|j|||ŽdS(N(tlogtDEBUG(R,tmsgtargstkw((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pytdebug_scOs|j|j|||ŽdS(N(R7tINFO(R,R9R:R;((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pytinfobscOs|j|j|||ŽdS(N(R7tNOTIFY(R,R9R:R;((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pytnotifyescOs|j|j|||ŽdS(N(R7tWARN(R,R9R:R;((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pytwarnhscOs|j|j|||ŽdS(N(R7tERROR(R,R9R:R;((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyterrorkscOs|j|j|||ŽdS(N(R7tFATAL(R,R9R:R;((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pytfatalnscOsLddlm}t||ƒr5|j|||Žn|j|||ŽdS(s… Logs deprecation message which is log level WARN if the ``removal_version`` is > 1 minor release away and log level ERROR otherwise. removal_version should be the version that the deprecated feature is expected to be removed in, so something that will not exist in version 1.7, but will in 1.6 would have a removal_version of 1.7. iÿÿÿÿ(t __version__N(tpipRGR$RBRD(R,R R9R:tkwargsRG((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyt deprecatedqs c Osu|r|rtdƒ‚qn|p'|}|r=||}n|}d|j|}|jrpd||f}nxþ|jD]ó\}}|j||ƒrz|jrâ|tjtjfkrât |_tjj dƒtjj ƒnt |dƒr`|d}t |tjƒr4|jj|d„ƒ} | |ƒ}n|j |ƒt |dƒrj|j ƒqjqm||ƒqzqzWdS(Ns6You may give positional or keyword arguments, not botht s%02i %ss R/cSs|S(N((tx((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pytŸstflush(t TypeErrorR'R(R&t level_matchesR+R0tstdouttstderrRR/RNRRtosRtCOLORSR( R,R5R9R:R;trenderedtconsumer_levelRt write_contentt colorizer((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyR7‚s6       cCs|j|jƒotjjƒS(s$Should we display download progress?(tstdout_level_matchesR?R0RQR (R,((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyt_show_progress¨scCs‚|j s#td||jfƒ‚|jƒrctjjd|j|ƒtjjƒt|_ n t |_ ||_d|_ dS(Ns0Tried to start_progress(%r) while in_progress %rRK( R*tAssertionErrorRZR0RQR/R'RNRR+RR)t last_message(R,R9((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pytstart_progress¬s      sdone.cCs­|jstdƒ‚|jƒr—|jsYtjjd|j|dƒtjjƒq—tj dƒtj dƒtjj|dƒtjjƒnd|_t |_dS(Ns,Tried to end_progress without start_progresss...s R( R*R[RZR+R0RQR/RNtloggert show_progressR)R(R,R9((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyt end_progress¹s       cCs´|jr°|dkr5tjjdƒtjjƒq°|jrgdtdt|jƒt|ƒƒ}nd}tjjdd|j |j ||fƒtjjƒ||_ndS(saIf we are in a progress scope, and no log messages have been shown, write out another '.'RRKiRs %s%s%s%sN( R+R)R0RQR/RNR\tmaxtlenR'R*(R,tmessagetpadding((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyR_Ês   )  cCs|j||jƒƒS(s9Returns true if a message at this level will go to stdout(RPt _stdout_level(R,R5((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyRYÛscCs4x*|jD]\}}|tjkr |Sq W|jS(s%Returns the level that stdout runs at(R&R0RQRE(R,R5R((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyReßscCslt|tƒr^|j|j}}|dk r>||kr>tS|dk sV||krZtStS||kSdS(sm >>> l = Logger() >>> l.level_matches(3, 4) False >>> l.level_matches(3, 2) True >>> l.level_matches(slice(None, 3), 3) False >>> l.level_matches(slice(None, 3), 2) True >>> l.level_matches(slice(1, 3), 1) True >>> l.level_matches(slice(2, 3), 1) False N(RtslicetstarttstopR)RR(R,R5RVRgRh((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyRPæscCs?|j}|dkr|dS|t|ƒkr7|dS||S(Niiÿÿÿÿ(tLEVELSRb(tclsR5tlevels((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pytlevel_for_integers   cCs–g}g}xR|jD]G\}}|tjkr|j||fƒ|j|tjfƒqqWx|D]}|jj|ƒqhW|jj|ƒdS(N(R&R0RQR3RRtremoveR4(R,t to_removetto_addRVRtitem((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pytmove_stdout_to_stderr s N((t__name__t __module__t__doc__tloggingR8t VERBOSE_DEBUGR=RAR?tWARNINGRCRERiR RtForetYELLOWtREDRTR-R6R<R>R@RBRDRFRJR7RZR]R`R)R_RYReRPt classmethodRlRq(((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyR%7s@               &       (RtR0RSRuRHRt pip._vendorRRR RQRRRR$tobjectR%R^(((s8/opt/alt/python33/lib/python3.3/site-packages/pip/log.pyts     Ý