ั๒ 9ีาTc @@s๏ddklZddkZddkZddkZddkZddkZddklZl Z ddk l Z ddk l Z lZlZlZlZlZddklZeieƒZdefd„ƒYZd efd „ƒYZdS( i(tabsolute_importN(t uses_pycachetWINDOWS(tUninstallationError(trmtreetasktis_localt dist_is_localtrenamestnormalize_path(t indent_logtUninstallPathSetcB@skeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z e d„Z d „Z d „Z RS( sMA set of file paths to be removed in the uninstallation of a requirement.cC@s@tƒ|_tƒ|_h|_||_d|_g|_dS(N(tsettpathst_refusetpthtdisttNonetsave_dirt _moved_paths(tselfR((s;/usr/lib/python2.6/vendor-packages/pip/req/req_uninstall.pyt__init__s      cC@s t|ƒS(ss Return True if the given path is one we are permitted to remove/modify, False otherwise. (R(Rtpath((s;/usr/lib/python2.6/vendor-packages/pip/req/req_uninstall.pyt _permittedscC@sDt|iƒp0tid|iit|iiƒtiƒt St S(Ns1Not uninstalling %s at %s, outside environment %s( RRtloggertinfot project_nameR tlocationtsystprefixtFalsetTrue(R((s;/usr/lib/python2.6/vendor-packages/pip/req/req_uninstall.pyt_can_uninstall&s  cC@sšt|ƒ}tii|ƒpdS|i|ƒo|ii|ƒn|ii|ƒtii|ƒddjo!t o|it i |ƒƒndS(Nis.py( R tosRtexistsRR taddRtsplitextRtimptcache_from_source(RR((s;/usr/lib/python2.6/vendor-packages/pip/req/req_uninstall.pyR#1s $cC@sot|ƒ}|i|ƒo?||ijot|ƒ|i|ธs s s sRemoving entry: %ssutf-8twb(RRBRQtopenR>R?t readlinesRSR.RRREtencodet ValueErrort writelines(RR3tfhtlinestendlineR)t_[2]((s;/usr/lib/python2.6/vendor-packages/pip/req/req_uninstall.pyREฒs )    )cC@s~|idjotid|iƒtStid|iƒt|idƒii ƒ}z|~}|i |iƒWdQXt S(Ns.Cannot roll back changes to %s, none were mades!Rolling %s back to previous stateRZ( RSRRRIRQRRBR[R>R?R_R(RR3R`((s;/usr/lib/python2.6/vendor-packages/pip/req/req_uninstall.pyRJลs )(RMRNRR#RERJ(((s;/usr/lib/python2.6/vendor-packages/pip/req/req_uninstall.pyR'žs (t __future__RR%tloggingR!RR@t pip.compatRRtpip.exceptionsRt pip.utilsRRRRRR tpip.utils.loggingR t getLoggerRMRtobjectR R'(((s;/usr/lib/python2.6/vendor-packages/pip/req/req_uninstall.pyts     .‹