ó
ÓnùWc           @   sñ  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z e  j d k rŠ d  d l	 j
 j j j Z n e j e  j Z y
 e Z Wn e k
 r½ d Z n Xe Z d  d l m Z d  d l m Z d  d l m Z m Z d d d d	 g Z d
 „  Z d d d „  ƒ  YZ e e  d ƒ rFe  j g Z  n g  Z  y' d  d l! m" Z" e  j# e" ƒ  ƒ [" Wn e$ k
 r†n Xd e f d „  ƒ  YZ% e j& e j' g  d j( ƒ  D] Z) e* e e) d ƒ ^ q¶ƒ Z+ d e f d „  ƒ  YZ, d S(   iÿÿÿÿNt   java(   t   DistutilsError(   t   working_set(   t   builtinst   execfilet   AbstractSandboxt   DirectorySandboxt   SandboxViolationt	   run_setupc            sú  t  j ƒ  } t j } t j } t  j j t  j j ˆ  ƒ ƒ } t  j j | d ƒ } t  j j | ƒ su t  j	 | ƒ n  t
 j } t j j ƒ  } t j ƒ  }	 zÁ | t
 _ t  j | ƒ yg ˆ  g t | ƒ t j (t j j d | ƒ t j ƒ  t j j d „  ƒ t | ƒ j ‡  f d †  ƒ Wn= t k
 rXt j ƒ  d }
 |
 j rY|
 j d rY‚  qYn XWd t j |	 ƒ t j j | ƒ g  t j D]( } | | k r„| j d ƒ r„| ^ q„} t t t j j  | ƒ ƒ t  j | ƒ | t j (| t j (| t
 _ Xd S(   s8   Run a distutils setup script, sandboxed in its directoryt   tempi    c         S   s
   |  j  ƒ  S(   N(   t   activate(   t   dist(    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyt   <lambda>0   s    c              s   t  d i ˆ  d 6d d 6ƒ S(   Ns   setup.pyt   __file__t   __main__t   __name__(   R   (    (   t   setup_script(    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyR   2   s   i   Ns
   encodings.(!   t   ost   getcwdt   syst   argvt   patht   abspatht   dirnamet   joint   isdirt   makedirst   tempfilet   tempdirt   modulest   copyt   pkg_resourcest   __getstate__t   chdirt   listt   insertR   t   __init__t	   callbackst   appendR   t   runt
   SystemExitt   exc_infot   argst   __setstate__t   updatet
   startswitht   mapt   __delitem__(   R   R*   t   old_dirt	   save_argvt	   save_patht	   setup_dirt   temp_dirt   save_tmpt   save_modulest   pr_statet   vt   mod_namet   del_modules(    (   R   s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyR      sD    

 		


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	 ƒ rF e e	 ƒ e ƒ  e	 <qF qF Wd' d „ Z e r™ e d	 e ƒ Z n  e d
 e ƒ Z xl 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	 ƒ rè e e	 ƒ e ƒ  e	 <qè qè Wd „  Z x9 d d g D]+ Z	 e
 e e	 ƒ r-e e	 ƒ e ƒ  e	 <q-q-Wd  „  Z x9 d! d" g D]+ Z	 e
 e e	 ƒ rre e	 ƒ e ƒ  e	 <qrqrWd# „  Z d$ „  Z d% „  Z d& „  Z RS((   sD   Wrap 'os' module and 'open()' builtin for virtualizing setup scriptsc         C   sE   g  t  t ƒ D]+ } | j d ƒ r t |  | ƒ r | ^ q |  _ d  S(   Nt   _(   t   dirt   _osR-   t   hasattrt   _attrs(   t   selft   name(    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyR$   R   s    c         C   s1   x* |  j  D] } t t | t | | ƒ ƒ q
 Wd  S(   N(   R?   t   setattrR   t   getattr(   R@   t   sourceRA   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyt   _copyX   s    c         C   s{   zB |  j  |  ƒ t r% |  j t _ n  |  j t _ t |  _ | ƒ  SWd t |  _ t r` t t _ n  t t _ |  j  t	 ƒ Xd S(   s   Run 'func' under os sandboxingN(
   RE   t   _fileR   t   filet   _opent   opent   Truet   _activet   FalseR=   (   R@   t   func(    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyR'   \   s    			c            s%   t  t ˆ  ƒ ‰ ‡  ‡ f d †  } | S(   Nc            s@   |  j  r- |  j ˆ  | | | | Ž \ } } n  ˆ | | | | Ž S(   N(   RK   t   _remap_pair(   R@   t   srct   dstR*   t   kw(   RA   t   original(    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyt   wrapn   s    	$(   RC   R=   (   RA   RS   (    (   RA   RR   s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyt   _mk_dual_path_wrapperl   s    t   renamet   linkt   symlinkc            s+   ˆ p t  t ˆ  ƒ ‰ ‡  ‡ f d †  } | S(   Nc            s4   |  j  r$ |  j ˆ  | | | Ž } n  ˆ | | | Ž S(   N(   RK   t   _remap_input(   R@   R   R*   RQ   (   RA   RR   (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRS   y   s    	(   RC   R=   (   RA   RR   RS   (    (   RA   RR   s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyt   _mk_single_path_wrapperw   s    RG   RI   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            sM   |  j  r= |  j ˆ  | | | Ž } |  j ˆ  ˆ | | | Ž ƒ Sˆ | | | Ž S(   N(   RK   RX   t   _remap_output(   R@   R   R*   RQ   (   RA   RR   (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRS   ‹   s    	(   RC   R=   (   RA   RS   (    (   RA   RR   s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyt   _mk_single_with_return‰   s    t   readlinkt   tempnamc            s%   t  t ˆ  ƒ ‰ ‡  ‡ f d †  } | S(   Nc            s,   ˆ | | Ž  } |  j  r( |  j ˆ  | ƒ S| S(   N(   RK   Rk   (   R@   R*   RQ   t   retval(   RA   RR   (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRS   —   s    	(   RC   R=   (   RA   RS   (    (   RA   RR   s9   /var/www/html/venv/build/setuptools/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   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyt   _validate_path¡   s    c         O   s   |  j  | ƒ S(   s   Called for path inputs(   Rr   (   R@   t	   operationR   R*   RQ   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRX   ¥   s    c         C   s   |  j  | ƒ S(   s   Called for path outputs(   Rr   (   R@   Rs   R   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRk   ©   s    c         O   s6   |  j  | d | | | Ž |  j  | d | | | Ž f S(   s?   Called for path pairs like rename, link, and symlink operationss   -froms   -to(   RX   (   R@   Rs   RO   RP   R*   RQ   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRN   ­   s    N(   R   t
   __module__t   __doc__RL   RK   R$   RE   R'   RT   RA   R>   R=   t   localst   NoneRY   RF   RH   Rl   Rp   Rr   RX   Rk   RN   (    (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyR   M   s>   				  		 		 			t   devnull(   t   GetGeneratePathc           B   s¼   e  Z d  Z e j d d d d d d d d d	 d
 d d d g ƒ Z d g Z e d „ Z d „  Z	 e
 ru 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-chrootRI   R\   R]   R^   R_   R`   Ra   Rb   Rc   Rd   Rg   Rh   Rn   s   .*lib2to3.*\.pickle$c         C   s   t  j j t  j j | ƒ ƒ |  _ t  j j |  j d ƒ |  _ g  | D]$ } t  j j t  j j | ƒ ƒ ^ qC |  _ t j	 |  ƒ d  S(   Nt    (
   R   R   t   normcaset   realpatht   _sandboxR   t   _prefixt   _exceptionsR   R$   (   R@   t   sandboxt
   exceptionsR   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyR$   Ð   s
    !1c         O   s   t  | | | ƒ ‚ d  S(   N(   R   (   R@   Rs   R*   RQ   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyt
   _violationÙ   s    t   rc         O   sK   | d k r8 |  j  | ƒ r8 |  j d | | | | Ž n  t | | | | Ž S(   NRƒ   t   rtt   rbt   rUt   URG   (   Rƒ   R„   s   rbs   rUR‡   (   t   _okR‚   RF   (   R@   R   t   modeR*   RQ   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRF   Ý   s    c         O   sK   | d k r8 |  j  | ƒ r8 |  j d | | | | Ž n  t | | | | Ž S(   NRƒ   R„   R…   R†   R‡   RI   (   Rƒ   s   rts   rbs   rUR‡   (   Rˆ   R‚   RH   (   R@   R   R‰   R*   RQ   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRH   â   s    c         C   s   |  j  d ƒ d  S(   NRq   (   R‚   (   R@   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRq   ç   s    c         C   ss   |  j  } zY t |  _  t j j t j j | ƒ ƒ } |  j | ƒ p` | |  j k p` | j |  j	 ƒ SWd  | |  _  Xd  S(   N(
   RK   RL   R   R   R{   R|   t	   _exemptedR}   R-   R~   (   R@   R   t   activeR|   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRˆ   ê   s    		c            sN   ‡  f d †  |  j  Dƒ } ‡  f d †  |  j Dƒ } t j | | ƒ } t | ƒ S(   Nc         3   s   |  ] } ˆ  j  | ƒ Vq d  S(   N(   R-   (   t   .0t	   exception(   t   filepath(    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pys	   <genexpr>ù   s   c         3   s!   |  ] } t  j | ˆ  ƒ Vq d  S(   N(   t   ret   match(   RŒ   t   pattern(   RŽ   (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pys	   <genexpr>ý   s   (   R   t   _exception_patternst	   itertoolst   chaint   any(   R@   RŽ   t   start_matchest   pattern_matchest
   candidates(    (   RŽ   s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRŠ   ÷   s    c         O   sH   | |  j  k rD |  j | ƒ rD |  j | t j j | ƒ | | Ž n  | S(   s   Called for path inputs(   t	   write_opsRˆ   R‚   R   R   R|   (   R@   Rs   R   R*   RQ   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRX     s    %c         O   sF   |  j  | ƒ s  |  j  | ƒ r< |  j | | | | | Ž n  | | f S(   s?   Called for path pairs like rename, link, and symlink operations(   Rˆ   R‚   (   R@   Rs   RO   RP   R*   RQ   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRN   	  s     iÿ  c         O   sR   | t  @r9 |  j | ƒ r9 |  j d | | | | | Ž n  t j | | | | | Ž S(   s   Called for low-level os.open()s   os.open(   t   WRITE_FLAGSRˆ   R‚   R=   RI   (   R@   RG   t   flagsR‰   R*   RQ   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyRI     s    (   R   Rt   Ru   t   dictt   fromkeysR™   R’   t   _EXCEPTIONSR$   R‚   RF   RH   Rq   Rˆ   RŠ   RX   RN   RI   (    (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyR   Â   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 |  j  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.(   R*   (   R@   (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyt   __str__  s    	(   R   Rt   Ru   RŸ   (    (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyR     s   (    (-   R   R   R   t   operatort	   functoolsR“   R   R   RA   t$   org.python.modules.posix.PosixModulet   pythonR   t   posixt   PosixModuleR=   RG   RF   t	   NameErrorRw   RI   RH   t   distutils.errorsR   R   t   setuptools.compatR   R   t   __all__R   R   R>   Rx   Rž   t   win32com.client.gencacheRy   R&   t   ImportErrorR   t   reducet   or_t   splitt   aRC   Rš   R   (    (    (    s9   /var/www/html/venv/build/setuptools/setuptools/sandbox.pyt   <module>   sF   

	0hS	+