
^Wc           @   s   d  d l  m Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d d l m Z m	 Z	 m
 Z
 d d l m Z d d l m Z m Z m Z m Z m Z e j e  Z d j   Z e j d  Z d	 Z d
   Z d e f d     YZ d S(   i(   t   BytesIONi   (   t	   sysconfigt   detect_encodingt   ZipFile(   t   finder(   t   FileOperatort   get_export_entryt   convert_patht   get_executablet   in_venvs  
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 <assemblyIdentity version="1.0.0.0"
 processorArchitecture="X86"
 name="%s"
 type="win32"/>

 <!-- Identify the application security requirements. -->
 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
 <security>
 <requestedPrivileges>
 <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
 </requestedPrivileges>
 </security>
 </trustInfo>
</assembly>s   ^#!.*pythonw?[0-9.]*([ 	].*)?$s{  # -*- coding: utf-8 -*-
if __name__ == '__main__':
    import sys, re

    def _resolve(module, func):
        __import__(module)
        mod = sys.modules[module]
        parts = func.split('.')
        result = getattr(mod, parts.pop(0))
        for p in parts:
            result = getattr(result, p)
        return result

    try:
        sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])

        func = _resolve('%(module)s', '%(func)s')
        rc = func() # None interpreted as 0
    except Exception as e:  # only supporting Python >= 2.6
        sys.stderr.write('%%s\n' %% e)
        rc = 1
    sys.exit(rc)
c         C   s   d |  k r |  j  d  re |  j d d  \ } } d | k r | j  d  r d | | f }  q q |  j  d  s d |  }  q n  |  S(   Nt    s   /usr/bin/env i   t   "s   %s "%s"s   "%s"(   t
   startswitht   split(   t
   executablet   envt   _executable(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   _enquote_executableB   s    t   ScriptMakerc           B   s  e  Z d  Z e Z d Z e e d d  Z	 d   Z
 e j j d  rZ d   Z d   Z n  d d d  Z d   Z e Z d	   Z d
   Z d d  Z d   Z e d    Z e j d    Z e j d k s e j d k r e j d k r d   Z n  d d  Z d d  Z  RS(   s_   
    A class to copy or create scripts from source scripts or callable
    specifications.
    c         C   s   | |  _  | |  _ | |  _ t |  _ t |  _ t j d k pW t j d k oW t j d k |  _	 t
 d  |  _ | p{ t |  |  _ t j d k p t j d k o t j d k |  _ d  S(   Nt   posixt   javat    s   X.Yt   nt(   R   s   X.Y(   t
   source_dirt
   target_dirt   add_launcherst   Falset   forcet   clobbert   ost   namet   _namet   set_modet   sett   variantsR   t   _fileopt   _is_nt(   t   selfR   R   R   t   dry_runt   fileop(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   __init__[   s    					c         C   sa   | j  d t  r] |  j r] t j j |  \ } } | j d d  } t j j | |  } n  | S(   Nt   guit   pythont   pythonw(   t   getR   R$   R   t   pathR   t   replacet   join(   R%   R   t   optionst   dnt   fn(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   _get_alternate_executablek   s
    R   c         C   s[   y, t  |   } | j d  d k SWd QXWn( t t f k
 rV t j d |  t SXd S(   sl   
            Determine if the specified executable is a script
            (contains a #! line)
            i   s   #!Ns   Failed to open %s(   t   opent   readt   OSErrort   IOErrort   loggert   warningR   (   R%   R   t   fp(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt	   _is_shells   s    c         C   s^   |  j  |  r= d d  l } | j j j d  d k rV | Sn | j   j d  rV | Sd | S(   Nis   os.namet   Linuxs
   jython.exes   /usr/bin/env %s(   R;   R   t   langt   Systemt   getPropertyt   lowert   endswith(   R%   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   _fix_jython_executable   s    R   c         C   s  t  } |  j r! |  j } t } n t j   s9 t   } nq t   rp t j j	 t j
 d  d t j d   } n: t j j	 t j d  d t j d  t j d  f  } | r |  j | |  } n  t j j d  r |  j |  } n  t j j |  } | rt |  } n  | j d  } t j d	 k rSd
 | k rSd | k rS| d 7} n  d | | d } y | j d  Wn! t k
 rt d |   n X| d k ry | j |  Wqt k
 rt d | | f   qXn  | S(   Nt   scriptss   python%st   EXEt   BINDIRs
   python%s%st   VERSIONR   s   utf-8t   clis	   -X:Framess   -X:FullFramess
    -X:Framess   #!s   
s,   The shebang (%r) is not decodable from utf-8s?   The shebang (%r) is not decodable from the script encoding (%r)(   t   TrueR   R   R   t   is_python_buildR   R	   R   R-   R/   t   get_patht   get_config_varR3   t   syst   platformR   RB   t   normcaseR   t   encodet   decodet   UnicodeDecodeErrort
   ValueError(   R%   t   encodingt   post_interpR0   t   enquoteR   t   shebang(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   _get_shebang   sL    					c         C   s    |  j  t d | j d | j  S(   Nt   modulet   func(   t   script_templatet   dictt   prefixt   suffix(   R%   t   entry(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   _get_script_text   s    c         C   s   t  j j |  } |  j | S(   N(   R   R-   t   basenamet   manifest(   R%   t   exenamet   base(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   get_manifest   s    c         C   s  |  j  o |  j } t j j d  } | s; | | | } n| | d k rY |  j d  } n |  j d  } t   }	 t |	 d   }
 |
 j d |  Wd  QX|	 j	   } | | | | } x| D]} t j
 j |  j |  } | rt j
 j |  \ } } | j d  r| } n  d | } y |  j j | |  Wqlt k
 rt j d  d	 | } t j
 j |  r|t j |  n  t j | |  |  j j | |  t j d
  y t j |  Wqt k
 rqXqlXn |  j r| j d |  rd | | f } n  t j
 j |  r:|  j r:t j d |  q n  |  j j | |  |  j rl|  j j | g  n  | j |  q Wd  S(   Ns   utf-8t   pyt   tt   ws   __main__.pys   .pys   %s.exes:   Failed to write executable - trying to use .deleteme logics   %s.deletemes0   Able to replace executable using .deleteme logict   .s   %s.%ss   Skipping existing file %s(   R   R$   R   t   linesepRO   t   _get_launcherR    R   t   writestrt   getvalueR-   R/   R   t   splitextR   R#   t   write_binary_filet	   ExceptionR8   R9   t   existst   removet   renamet   debugRA   R   R    t   set_executable_modet   append(   R%   t   namesRV   t   script_bytest	   filenamest   extt   use_launcherRi   t   launchert   streamt   zft   zip_dataR   t   outnamet   nt   et   dfname(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   _write_script   sT    		

	c         C   sQ  d } | rL | j  d g   } | rL d d j |  } | j d  } qL n  |  j d | d | } |  j |  j d  } | j } t   }	 d |  j k r |	 j |  n  d |  j k r |	 j d | t	 j
 d	 f  n  d
 |  j k r|	 j d | t	 j
 d  f  n  | r.| j  d t  r.d }
 n d }
 |  j |	 | | | |
  d  S(   NR   t   interpreter_argss    %sR
   s   utf-8R0   t   Xs   %s%si    s   X.Ys   %s-%si   R)   t   pywRe   (   R,   R/   RO   RW   R_   R   R!   R"   t   addRL   t   versionR   R   (   R%   R^   Rx   R0   RT   t   argsRV   t   scriptR   t   scriptnamesRy   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   _make_script   s(    		!!	c         C   s@  t  } t j j |  j t |   } t j j |  j t j j |   } |  j r| |  j	 j
 | |  r| t j d |  d  Sy t | d  } Wn& t k
 r |  j s   n  d  } no X| j   } | s t j d |  j   |  d  St j | j d d   } | r&t } | j d  p d } n  | s| r?| j   n  |  j	 j | |  |  j rq|  j	 j | g  n  | j |  n t j d | |  j  |  j	 j s)t | j  \ }	 }
 | j  d	  |  j! |	 |  } d
 | k rd } n d } t j j |  } |  j" | g | | j#   | |  n  | r<| j   n  d  S(   Ns   not copying %s (up-to-date)t   rbs"   %s: %s is an empty file (skipping)s   
s   
i   R   s   copying and adjusting %s -> %si    R+   R   Re   ($   R   R   R-   R/   R   R   R   R`   R   R#   t   newerR8   Rs   R4   R7   R&   t   Nonet   readlineR9   t   get_command_namet   FIRST_LINE_REt   matchR.   RH   t   groupt   closet	   copy_fileR    Rt   Ru   t   infoR   t   seekRW   R   R5   (   R%   R   Rx   t   adjustR   t   ft
   first_lineR   RT   RS   t   linesRV   Ry   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   _copy_script  sR    $ 	
		
	%c         C   s
   |  j  j S(   N(   R#   R&   (   R%   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyR&   J  s    c         C   s   | |  j  _ d  S(   N(   R#   R&   (   R%   t   value(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyR&   N  s    R   c         C   sf   t  j d  d k r d } n d } d | | f } t j d d  d } t |  j |  j } | S(	   Nt   Pi   t   64t   32s   %s%s.exeRh   i   i    (   t   structt   calcsizet   __name__t   rsplitR   t   findt   bytes(   R%   t   kindt   bitsR   t   distlib_packaget   result(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyRj   V  s    	c         C   sK   g  } t  |  } | d k r1 |  j | |  n |  j | | d | | S(   s  
        Make a script.

        :param specification: The specification, which is either a valid export
                              entry specification (to make a script from a
                              callable) or a filename (to make a script by
                              copying from a source location).
        :param options: A dictionary of options controlling script generation.
        :return: A list of all absolute pathnames written to.
        R0   N(   R   R   R   R   (   R%   t   specificationR0   Rx   R^   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   maked  s    c         C   s4   g  } x' | D] } | j  |  j | |   q W| S(   s   
        Take a list of specifications and make scripts from them,
        :param specifications: A list of specifications.
        :return: A list of all absolute pathnames written to,
        (   t   extendR   (   R%   t   specificationsR0   Rx   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   make_multiplew  s    N(!   R   t
   __module__t   __doc__t   SCRIPT_TEMPLATERZ   R   R   RH   R   R(   R3   RL   RM   R   R;   RB   RW   R_   t   _DEFAULT_MANIFESTRa   Rd   R   R   R   t   propertyR&   t   setterR   R   R   Rj   R   R   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyR   R   s,   		8			2	4-(   t   ioR    t   loggingR   t   reR   RL   t   compatR   R   R   t	   resourcesR   t   utilR   R   R   R   R	   t	   getLoggerR   R8   t   stripR   t   compileR   R   R   t   objectR   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/scripts.pyt   <module>   s   (	