Ñò
6»‚Uc           @   s÷  d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k	 Z	 e i
 i d ƒ o d  d k i i i i Z n e i e  i Z y
 e Z Wn e j
 o d Z n Xe Z d  d k l Z d  d k	 l Z d  d k l Z d  d k l Z d d d	 d
 g Z  d d „ Z! e i" d d „ ƒ Z# e i" d „  ƒ Z$ e i" d „  ƒ Z% e i" d „  ƒ Z& d e' f d „  ƒ  YZ( d d" d „  ƒ  YZ) e i" d „  ƒ Z* d „  Z+ e i" d „  ƒ Z, e i" d „  ƒ Z- d „  Z. d „  Z/ d „  Z0 d d# d „  ƒ  YZ1 e2 e  d ƒ o e  i3 g Z4 n g  Z4 y' d  d k5 l6 Z6 e4 i7 e6 ƒ  ƒ [6 Wn e8 j
 o n Xd e1 f d „  ƒ  YZ9 e i: e i; g  Z< d i= ƒ  D] Z> e< e? e e> d  ƒ q¸[< ƒ Z@ d	 e f d! „  ƒ  YZA d S($   iÿÿÿÿNt   java(   t   DistutilsError(   t   working_set(   t   compat(   t   builtinst   AbstractSandboxt   DirectorySandboxt   SandboxViolationt	   run_setupc      
   B   sà   d } e  |  | ƒ i i ƒ  } z | ~ } | i ƒ  } Wd QXe i d  d j  p( e i d  d j o< e i d  d j  o( | i d d ƒ } | i d	 d ƒ } n | d j o
 | } n e | |  d
 ƒ } | | | f d Ud S(   s.   
    Python 3 implementation of execfile.
    t   rbNi   i   i   i    s   
s   
s   t   exec(   i   i   (   i   i    (   i   i   (	   t   opent   __exit__t	   __enter__t   readt   syst   version_infot   replacet   Nonet   compile(   t   filenamet   globalst   localst   modet   _[1]t   streamt   scriptt   code(    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt	   _execfile    s    &<
c         c   s@   t  i } |  d  j	 o |  t  i (n z	 | VWd  | t  i (Xd  S(   N(   R   t   argvR   (   t   replt   saved(    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt	   save_argv1   s    
	c          c   s%   t  i }  z	 |  VWd  |  t  i (Xd  S(   N(   R   t   path(   R   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt	   save_path<   s    
	c         c   sP   t  i i |  ƒ p t  i |  ƒ n t i } |  t _ z	 d VWd | t _ Xd S(   sL   
    Monkey-patch tempfile.tempdir with replacement, ensuring it exists
    N(   t   osR!   t   isdirt   makedirst   tempfilet   tempdir(   t   replacementR   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   override_tempE   s    			c         c   s7   t  i ƒ  } t  i |  ƒ z	 | VWd  t  i | ƒ Xd  S(   N(   R#   t   getcwdt   chdir(   t   targetR   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   pushdW   s
    	t   UnpickleableExceptionc           B   s   e  Z d  Z e d „  ƒ Z RS(   sP   
    An exception representing another Exception that could not be pickled.
    c         C   sS   y  t  i | ƒ t  i | ƒ f SWn, t j
 o  |  i |  |  t | ƒ ƒ ƒ SXd S(   s‰   
        Always return a dumped (pickled) type and exc. If exc can't be pickled,
        wrap it in UnpickleableException first.
        N(   t   picklet   dumpst	   Exceptiont   dumpt   repr(   t   clst   typet   exc(    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR2   e   s     (   t   __name__t
   __module__t   __doc__t   classmethodR2   (    (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR.   a   s   t   ExceptionSaverc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s^   
    A Context Manager that will save an exception, serialized, and restore it
    later.
    c         C   s   |  S(   N(    (   t   self(    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR   v   s    c         C   s.   | p d  St  i | | ƒ |  _ | |  _ t S(   N(   R.   R2   t   _savedt   _tbt   True(   R<   R5   R6   t   tb(    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR   y   s
    	c         C   sM   d t  |  ƒ j o d St t i |  i ƒ \ } } t i | | |  i ƒ d S(   s"   restore and re-raise any exceptionR=   N(   t   varst   mapR/   t   loadsR=   R   t   reraiseR>   (   R<   R5   R6   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   resume„   s    (   R7   R8   R9   R   R   RE   (    (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR;   q   s   		c          #   s{   t  i i ƒ  ‰  t ƒ  i i ƒ  }  z |  ~  } ˆ  VWd QXt  i i ˆ  ƒ ‡  f d †  t  i Dƒ } t | ƒ | i ƒ  d S(   s    
    Context in which imported modules are saved.

    Translates exceptions internal to the context into the equivalent exception
    outside the context.
    Nc         3   s;   x4 |  ]- } | ˆ  j o | i  d  ƒ o	 | Vq q Wd S(   s
   encodings.N(   t
   startswith(   t   .0t   mod_name(   R   (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pys	   <genexpr>   s   	 (	   R   t   modulest   copyR;   R   R   t   updatet   _clear_modulesRE   (   R   t	   saved_exct   del_modules(    (   R   s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   save_modulesŽ   s     
c         C   s%   x t  |  ƒ D] } t i | =q Wd  S(   N(   t   listR   RI   (   t   module_namesRH   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyRL   §   s     c          c   s*   t  i ƒ  }  z	 |  VWd  t  i |  ƒ Xd  S(   N(   t   pkg_resourcest   __getstate__t   __setstate__(   R   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   save_pkg_resources_state¬   s    	c         c   s×   t  i i |  d ƒ } t ƒ  i i ƒ  z§ t ƒ  i i ƒ  zŒ t ƒ  t ƒ  i i ƒ  zj t	 ƒ  i i ƒ  zO t
 | ƒ i i ƒ  z1 t |  ƒ i i ƒ  z t d ƒ d  VWd  QXWd  QXWd  QXWd  QXWd  QXWd  QXd  S(   Nt   tempt
   setuptools(   R#   R!   t   joinRU   R   R   RO   t   hide_setuptoolsR"   R    R)   R-   t
   __import__(   t	   setup_dirt   temp_dir(    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   setup_contextµ   s    
c         C   s"   t  i d ƒ } t | i |  ƒ ƒ S(   sù   
    >>> _needs_hiding('setuptools')
    True
    >>> _needs_hiding('pkg_resources')
    True
    >>> _needs_hiding('setuptools_plugin')
    False
    >>> _needs_hiding('setuptools.__init__')
    True
    >>> _needs_hiding('distutils')
    True
    s*   (setuptools|pkg_resources|distutils)(\.|$)(   t   reR   t   boolt   match(   RH   t   pattern(    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   _needs_hidingÄ   s    c          C   s    t  t t i ƒ }  t |  ƒ d S(   s%  
    Remove references to setuptools' modules from sys.modules to allow the
    invocation to import the most appropriate setuptools. This technique is
    necessary to avoid issues such as #315 where setuptools upgrading itself
    would fail to find a function declared in the metadata.
    N(   t   filterRb   R   RI   RL   (   RI   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyRY   Õ   s    c      
      sä   t  i i t  i i ˆ  ƒ ƒ } t | ƒ i i ƒ  z¨ ym ˆ  g t | ƒ t i	 (t i i
 d | ƒ t i ƒ  t i i d „  ƒ ‡  f d †  } t | ƒ i | ƒ Wn4 t j
 o( } | i o | i d o ‚  qÚ n XWd QXd S(   s8   Run a distutils setup script, sandboxed in its directoryi    c         S   s
   |  i  ƒ  S(    (   t   activate(   t   dist(    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   <lambda>é   s    c             s&   t  d ˆ  d d ƒ }  t ˆ  |  ƒ d  S(   Nt   __file__R7   t   __main__(   t   dictR   (   t   ns(   t   setup_script(    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   runnerê   s    N(   R#   R!   t   abspatht   dirnameR]   R   R   RP   R   R   t   insertR   t   __init__t	   callbackst   appendR   t   runt
   SystemExitt   args(   Rk   Ru   R[   Rl   t   v(    (   Rk   s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR   à   s    
c           B   sÑ  e  Z d  Z e Z d „  Z d „  Z d „  Z d „  Z x> d d d g D]- Z	 e
 e e	 ƒ o e e	 ƒ e ƒ  e	 <qF qF Wd' d „ Z e o e d	 e ƒ Z n e d
 e ƒ Z xn d d d d
 d d d d d d d d d d d d d d d g D]- Z	 e
 e e	 ƒ o e e	 ƒ e ƒ  e	 <qì qì Wd „  Z x; d d g D]- Z	 e
 e e	 ƒ o e e	 ƒ e ƒ  e	 <q3q3Wd  „  Z x; d! d" g D]- Z	 e
 e e	 ƒ o e e	 ƒ e ƒ  e	 <qzqzWd# „  Z d$ „  Z d% „  Z d& „  Z RS((   sD   Wrap 'os' module and 'open()' builtin for virtualizing setup scriptsc         C   sS   g  } t  t ƒ D]2 } | i d ƒ o t |  | ƒ o | | q q ~ |  _ d  S(   Nt   _(   t   dirt   _osRF   t   hasattrt   _attrs(   R<   R   t   name(    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyRp   ù   s    c         C   s1   x* |  i  D] } t t | t | | ƒ ƒ q
 Wd  S(   N(   R{   t   setattrR#   t   getattr(   R<   t   sourceR|   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   _copyÿ   s    
 c         C   s   zD |  i  |  ƒ t o |  i t _ n |  i t _ t |  _ | ƒ  SWd t |  _ t o t t _ n t t _ |  i  t	 ƒ Xd S(   s   Run 'func' under os sandboxingN(
   R€   t   _fileR   t   filet   _openR   R?   t   _activet   FalseRy   (   R<   t   func(    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyRs     s    			c            s%   t  t ˆ  ƒ ‰ ‡  ‡ f d †  } | S(   Nc            sB   |  i  o% |  i ˆ  | | | | Ž \ } } n ˆ | | | | Ž S(   N(   R„   t   _remap_pair(   R<   t   srct   dstRu   t   kw(   R|   t   original(    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   wrap  s    
%(   R~   Ry   (   R|   RŒ   (    (   R|   R‹   s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   _mk_dual_path_wrapper  s    t   renamet   linkt   symlinkc            s,   ˆ p t  t ˆ  ƒ ‰ ‡  ‡ f d †  } | S(   Nc            s6   |  i  o |  i ˆ  | | | Ž } n ˆ | | | Ž S(   N(   R„   t   _remap_input(   R<   R!   Ru   RŠ   (   R|   R‹   (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyRŒ      s    
(   R~   Ry   (   R|   R‹   RŒ   (    (   R|   R‹   s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   _mk_single_path_wrapper  s    R‚   R   t   statt   listdirR+   t   chmodt   chownt   mkdirt   removet   unlinkt   rmdirt   utimet   lchownt   chroott   lstatt	   startfilet   mkfifot   mknodt   pathconft   accessc            s%   t  t ˆ  ƒ ‰ ‡  ‡ f d †  } | S(   Nc            sO   |  i  o5 |  i ˆ  | | | Ž } |  i ˆ  ˆ | | | Ž ƒ Sˆ | | | Ž S(   N(   R„   R‘   t   _remap_output(   R<   R!   Ru   RŠ   (   R|   R‹   (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyRŒ   2  s    
(   R~   Ry   (   R|   RŒ   (    (   R|   R‹   s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   _mk_single_with_return0  s    t   readlinkt   tempnamc            s%   t  t ˆ  ƒ ‰ ‡  ‡ f d †  } | S(   Nc            s.   ˆ | | Ž  } |  i  o |  i ˆ  | ƒ S| S(   N(   R„   R¤   (   R<   Ru   RŠ   t   retval(   R|   R‹   (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyRŒ   >  s    
(   R~   Ry   (   R|   RŒ   (    (   R|   R‹   s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt	   _mk_query<  s    R*   t   tmpnamc         C   s   | S(   s=   Called to remap or validate any path, whether input or output(    (   R<   R!   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   _validate_pathH  s    c         O   s   |  i  | ƒ S(   s   Called for path inputs(   R«   (   R<   t	   operationR!   Ru   RŠ   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR‘   L  s    c         C   s   |  i  | ƒ S(   s   Called for path outputs(   R«   (   R<   R¬   R!   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR¤   P  s    c         O   s6   |  i  | d | | | Ž |  i  | d | | | Ž f S(   s?   Called for path pairs like rename, link, and symlink operationss   -froms   -to(   R‘   (   R<   R¬   Rˆ   R‰   Ru   RŠ   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR‡   T  s    N(   R7   R8   R9   R…   R„   Rp   R€   Rs   R   R|   Rz   Ry   R   R   R’   R   Rƒ   R¥   R©   R«   R‘   R¤   R‡   (    (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR   ô   sF   				    		  		  			t   devnull(   t   GetGeneratePathc           B   s¾   e  Z d  Z e i d d d d d d d d d	 d
 d d d g ƒ Z d g Z e d „ Z d „  Z	 e
 o d d „ Z
 n d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d d „ Z RS(   s<   Restrict operations to a single subdirectory - pseudo-chrootR   R•   R–   R—   R˜   R™   Rš   R›   Rœ   R   R    R¡   R§   s   .*lib2to3.*\.pickle$c         C   s‰   t  i i t  i i | ƒ ƒ |  _ t  i i |  i d ƒ |  _ g  } | D]% } | t  i i t  i i | ƒ ƒ qG ~ |  _ t i	 |  ƒ d  S(   Nt    (
   R#   R!   t   normcaset   realpatht   _sandboxRX   t   _prefixt   _exceptionsR   Rp   (   R<   t   sandboxt
   exceptionsR   R!   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyRp   w  s
    !5c         O   s   t  | | | ƒ ‚ d  S(   N(   R   (   R<   R¬   Ru   RŠ   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt
   _violation€  s    t   rc         O   sN   | d j o. |  i  | ƒ o |  i d | | | | Ž n t | | | | Ž S(   NR¸   t   rtR	   t   rUt   UR‚   (   R¸   R¹   s   rbs   rUR»   (   t   _okR·   R   (   R<   R!   R   Ru   RŠ   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR   „  s    c         O   sN   | d j o. |  i  | ƒ o |  i d | | | | Ž n t | | | | Ž S(   NR¸   R¹   R	   Rº   R»   R   (   R¸   s   rts   rbs   rUR»   (   R¼   R·   Rƒ   (   R<   R!   R   Ru   RŠ   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyRƒ   ‰  s    c         C   s   |  i  d ƒ d  S(   NRª   (   R·   (   R<   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyRª   Ž  s    c         C   su   |  i  } z[ t |  _  t i i t i i | ƒ ƒ } |  i | ƒ p  | |  i j p | i |  i	 ƒ SWd  | |  _  Xd  S(   N(
   R„   R…   R#   R!   R°   R±   t	   _exemptedR²   RF   R³   (   R<   R!   t   activeR±   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR¼   ‘  s    		c            sN   ‡  f d †  |  i  Dƒ } ‡  f d †  |  i Dƒ } t i | | ƒ } t | ƒ S(   Nc         3   s"   x |  ] } ˆ  i  | ƒ Vq Wd  S(   N(   RF   (   RG   t	   exception(   t   filepath(    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pys	   <genexpr>   s   	c         3   s%   x |  ] } t  i | ˆ  ƒ Vq Wd  S(   N(   R^   R`   (   RG   Ra   (   RÀ   (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pys	   <genexpr>¤  s   	(   R´   t   _exception_patternst	   itertoolst   chaint   any(   R<   RÀ   t   start_matchest   pattern_matchest
   candidates(    (   RÀ   s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR½   ž  s    c         O   sK   | |  i  j o7 |  i | ƒ o& |  i | t i i | ƒ | | Ž n | S(   s   Called for path inputs(   t	   write_opsR¼   R·   R#   R!   R±   (   R<   R¬   R!   Ru   RŠ   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR‘   ª  s    !&c         O   sI   |  i  | ƒ p |  i  | ƒ o |  i | | | | | Ž n | | f S(   s?   Called for path pairs like rename, link, and symlink operations(   R¼   R·   (   R<   R¬   Rˆ   R‰   Ru   RŠ   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR‡   °  s    "iÿ  c         O   sU   | t  @o1 |  i | ƒ o  |  i d | | | | | Ž n t i | | | | | Ž S(   s   Called for low-level os.open()s   os.open(   t   WRITE_FLAGSR¼   R·   Ry   R   (   R<   R‚   t   flagsR   Ru   RŠ   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR   ¶  s     (   R7   R8   R9   Ri   t   fromkeysRÈ   RÁ   t   _EXCEPTIONSRp   R·   R   Rƒ   Rª   R¼   R½   R‘   R‡   R   (    (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR   i  s    								s4   O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC O_TEMPORARYi    c           B   s   e  Z d  Z d „  Z RS(   sE   A setup script attempted to modify the filesystem outside the sandboxc         C   s   d |  i  S(   Ns³  SandboxViolation: %s%r %s

The package setup script has attempted to modify files on your system
that are not within the EasyInstall build area, and has been aborted.

This package cannot be safely installed by EasyInstall, and may not
support alternate installation locations even if you run its setup
script by hand.  Please inform the package's author and the EasyInstall
maintainers to find out if a fix or workaround is available.(   Ru   (   R<   (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   __str__Ä  s    	(   R7   R8   R9   RÍ   (    (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyR   Á  s   (    (    (B   R#   R   R&   t   operatort	   functoolsRÂ   R^   t
   contextlibR/   RR   t   platformRF   t$   org.python.modules.posix.PosixModulet   pythonRI   t   posixt   PosixModuleRy   R|   R‚   R   t	   NameErrorR   R   Rƒ   t   distutils.errorsR   R   RW   R   t   setuptools.compatR   t   __all__R   t   contextmanagerR    R"   R)   R-   R1   R.   R;   RO   RL   RU   R]   Rb   RY   R   R   Rz   R­   RÌ   t   win32com.client.gencacheR®   Rr   t   ImportErrorR   t   reducet   or_R   t   splitt   aR~   RÉ   R   (    (    (    s6   /usr/lib/python2.6/site-packages/setuptools/sandbox.pyt   <module>   sh   

	
					hS/