;
Ρβ"Ic               @   s   d  Z  d Z d d l Z d d l Z d d l m Z d d l m Z d d l m	 Z	 m
 Z
 d d l Td d l m Z d d	 l m Z Gd
   d e  Z d S(   uz   distutils.command.bdist_wininst

Implements the Distutils 'bdist_wininst' command: create a windows installer
exe-program.uA   $Id: bdist_wininst.py 66223 2008-09-04 21:32:09Z antoine.pitrou $i    N(   u   Command(   u   get_platform(   u   create_treeu   remove_tree(   u   *(   u   get_python_version(   u   logc             B   sΏ   |  Ee  Z d  Z d, d d d e   f d d d d	 f d
 d+ d d f d- d. d/ d0 d1 d2 d3 d4 d5 g Z d d d d g Z d$   Z d%   Z d&   Z	 d'   Z
 d+ d(  Z d)   Z d*   Z d+ S(6   u-   create an executable installer for MS Windowsu
   bdist-dir=u1   temporary directory for creating the distributionu
   plat-name=u   pu;   platform name to embed in generated filenames (default: %s)u	   keep-tempu   ku/   keep the pseudo-installation tree around after u!   creating the distribution archiveu   target-version=u!   require a specific python versionu    on the target systemu   no-target-compileu   cu/   do not compile .py to .pyc on the target systemu   no-target-optimizeu   ou:   do not compile .py to .pyo (optimized)on the target systemu	   dist-dir=u   du-   directory to put final built distributions inu   bitmap=u   bu>   bitmap to use for the installer instead of python-powered logou   title=u   tu?   title to display on the installer background instead of defaultu
   skip-buildu2   skip rebuilding everything (for testing/debugging)u   install-script=uT   basename of installation script to be run afterinstallation or before deinstallationu   pre-install-script=u{   Fully qualified filename of a script to be run before any files are installed.  This script need not be in the distributionu   user-access-control=u   specify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACc             C   sy   d  |  _ d  |  _ d |  _ d |  _ d |  _ d  |  _ d  |  _ d  |  _ d  |  _	 d |  _
 d  |  _ d  |  _ d  |  _ d  S(   Ni    (   u   Noneu	   bdist_diru	   plat_nameu	   keep_tempu   no_target_compileu   no_target_optimizeu   target_versionu   dist_diru   bitmapu   titleu
   skip_buildu   install_scriptu   pre_install_scriptu   user_access_control(   u   self(    (    u<   /mit/python/lib/python3.0/distutils/command/bdist_wininst.pyu   initialize_options<   s    												c             C   s]  |  j  d  k od |  j o, |  j o" |  j j d  } |  j | _ n |  j d  j } t j	 j
 | d  |  _  n |  j p d |  _ n |  j oW |  j j   oG t   } |  j o' |  j | k o t d | f   n | |  _ n |  j d d d	  |  j oO xL |  j j D]' } |  j t j	 j |  k o PqqWt d |  j   n d  S(
   Nu   bdistu   wininstu    uM   target version can only be %s, or the '--skip_build' option must be specifiedu   dist_diru	   plat_nameu(   install_script '%s' not found in scripts(   u   dist_diru   dist_dir(   u	   plat_nameu	   plat_name(   u	   bdist_diru   Noneu
   skip_buildu	   plat_nameu   distributionu   get_command_obju   get_finalized_commandu
   bdist_baseu   osu   pathu   joinu   target_versionu   has_ext_modulesu   get_python_versionu   DistutilsOptionErroru   set_undefined_optionsu   install_scriptu   scriptsu   basename(   u   selfu   bdistu
   bdist_baseu   short_versionu   script(    (    u<   /mit/python/lib/python3.0/distutils/command/bdist_wininst.pyu   finalize_optionsL   s4    
		
 	c             C   sΩ  t  j d k o0 |  j j   p |  j j   o t d   n |  j p |  j d  n |  j d d d } |  j	 | _
 |  j | _ d | _ |  j | _ |  j d  } d | _ d | _ |  j j   o |  j } | p. |  j p t d	   t  j d d
  } n d |  j | f } |  j d  } t j j | j d |  | _ n xI d D]A } | j   } | d k o | d } n t | d | |  qXWt j d |  j	  | j   t  j j d t j j |  j	 d   | j   t  j d =d d l m  } |   }	 |  j j!   }
 |  j" |	 d d |  j	 } |  j# | |
 |  j$  |  j j   o t%   } n d } |  j j& j' d | |  j( |
  f  t j) d |  t j* |  |  j+ p t, |  j	 d |  j- n d  S(   Nu   win32u^   distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformu   buildu   installu   reinit_subcommandsi   i    u   install_libu    Should have already checked thisi   u   .%s-%su   libu   purelibu   platlibu   headersu   scriptsu   datau   /Include/$dist_nameu   install_u   installing to %su   PURELIB(   u   mktempu   zipu   root_diru   anyu   bdist_wininstu   removing temporary file '%s'u   dry_run(   u   purelibu   platlibu   headersu   scriptsu   data(.   u   sysu   platformu   distributionu   has_ext_modulesu   has_c_librariesu   DistutilsPlatformErroru
   skip_buildu   run_commandu   reinitialize_commandu	   bdist_diru   rootu   warn_diru	   plat_nameu   compileu   optimizeu   target_versionu   AssertionErroru   versionu   get_finalized_commandu   osu   pathu   joinu
   build_baseu	   build_libu   upperu   setattru   logu   infou   ensure_finalizedu   insertu   runu   tempfileu   mktempu   get_fullnameu   make_archiveu
   create_exeu   bitmapu   get_python_versionu
   dist_filesu   appendu   get_installer_filenameu   debugu   removeu	   keep_tempu   remove_treeu   dry_run(   u   selfu   installu   install_libu   target_versionu   plat_specifieru   buildu   keyu   valueu   mktempu   archive_basenameu   fullnameu   arcnameu	   pyversion(    (    u<   /mit/python/lib/python3.0/distutils/command/bdist_wininst.pyu   runn   sh    
				 
%

	
c             C   sϋ  g  } |  j  j } | j d  | j p d d } d   } x d d d d d	 d
 d d g D]` } t | | d  } | oA | d | j   | |  f } | j d | | |  f  q[ q[ W| j d  |  j o | j d |  j  n | j d | |   | j d |  j  | j d |  j  |  j	 o | j d |  j	  n |  j
 o | j d |  j
  n |  j p |  j  j   } | j d | |   d d  l } d d  l }	 d | j | j    |	 j f }
 | j d |
  d j |  S(   Nu
   [metadata]u    u   
c             S   s   |  j  d d  S(   Nu   
u   \n(   u   replace(   u   s(    (    u<   /mit/python/lib/python3.0/distutils/command/bdist_wininst.pyu   escapeΜ   s    u   authoru   author_emailu   descriptionu
   maintaineru   maintainer_emailu   nameu   urlu   versionu   
    %s: %su   %s=%su   
[Setup]u   install_script=%su   info=%su   target_compile=%du   target_optimize=%du   target_version=%su   user_access_control=%su   title=%si    u   Built %s with distutils-%su   build_info=%s(   u   distributionu   metadatau   appendu   long_descriptionu   getattru
   capitalizeu   install_scriptu   no_target_compileu   no_target_optimizeu   target_versionu   user_access_controlu   titleu   get_fullnameu   timeu	   distutilsu   ctimeu   __version__u   join(   u   selfu   linesu   metadatau   infou   escapeu   nameu   datau   titleu   timeu	   distutilsu
   build_info(    (    u<   /mit/python/lib/python3.0/distutils/command/bdist_wininst.pyu   get_inidataΏ   s>    	 %


c             C   s±  d d  l  } |  j |  j  |  j   } |  j |  } |  j d |  | o% t | d  j   } t |  } n d } t | d  }	 |	 j	 |  j
    | o |	 j	 |  n t | t  o | j d  } n | d } |  j od t |  j d d d	 j }
 j   } z" | ~ } | j   j d	  } Wd  |
 ~
 QX| | d
 } n | d } |	 j	 |  | j d d t |  |  } |	 j	 |  |	 j	 t | d  j    d  S(   Ni    u   creating %su   rbu   wbu   mbcss    u   ru   encodingu   latin1s   
 u   <iiii{V4(   u   structu   mkpathu   dist_diru   get_inidatau   get_installer_filenameu   announceu   openu   readu   lenu   writeu   get_exe_bytesu
   isinstanceu   stru   encodeu   pre_install_scriptu   __exit__u	   __enter__u   pack(   u   selfu   arcnameu   fullnameu   bitmapu   structu   cfgdatau   installer_nameu
   bitmapdatau	   bitmaplenu   fileu   _[2]u   _[1]u   scriptu   script_datau   header(    (    u<   /mit/python/lib/python3.0/distutils/command/bdist_wininst.pyu
   create_exeν   s:    

"!
			c             C   sb   |  j  o/ t j j |  j d | |  j |  j  f  } n& t j j |  j d | |  j f  } | S(   Nu   %s.%s-py%s.exeu	   %s.%s.exe(   u   target_versionu   osu   pathu   joinu   dist_diru	   plat_name(   u   selfu   fullnameu   installer_name(    (    u<   /mit/python/lib/python3.0/distutils/command/bdist_wininst.pyu   get_installer_filename"  s    
c             C   sξ   d d l  m } t   } |  j oQ |  j | k oA |  j | k o |   } q} |  j d k  o
 d } q} d } n
 |   } t j j t  } |  j d k o
 d } n |  j d d   } t j j	 | d	 | | f  } t
 | d
  j   S(   Ni    (   u   get_build_versionu   2.4g      @gffffff@u   win32u    i   u   wininst-%.1f%s.exeu   rb(   u   distutils.msvccompileru   get_build_versionu   get_python_versionu   target_versionu   osu   pathu   dirnameu   __file__u	   plat_nameu   joinu   openu   read(   u   selfu   get_build_versionu   cur_versionu   bvu	   directoryu   sfixu   filename(    (    u<   /mit/python/lib/python3.0/distutils/command/bdist_wininst.pyu   get_exe_bytes/  s    		

	
N(   u
   bdist-dir=Nu1   temporary directory for creating the distribution(   u   no-target-compileu   cu/   do not compile .py to .pyc on the target system(   u   no-target-optimizeu   ou:   do not compile .py to .pyo (optimized)on the target system(   u	   dist-dir=u   du-   directory to put final built distributions in(   u   bitmap=u   bu>   bitmap to use for the installer instead of python-powered logo(   u   title=u   tu?   title to display on the installer background instead of default(   u
   skip-buildNu2   skip rebuilding everything (for testing/debugging)(   u   install-script=NuT   basename of installation script to be run afterinstallation or before deinstallation(   u   pre-install-script=Nu{   Fully qualified filename of a script to be run before any files are installed.  This script need not be in the distribution(   u   user-access-control=Nu   specify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UAC(   u   __name__u
   __module__u   descriptionu   Noneu   get_platformu   user_optionsu   boolean_optionsu   initialize_optionsu   finalize_optionsu   runu   get_inidatau
   create_exeu   get_installer_filenameu   get_exe_bytes(   u
   __locals__(    (    u<   /mit/python/lib/python3.0/distutils/command/bdist_wininst.pyu   bdist_wininst   sN   
 
         					"	Q	.5	u   bdist_wininst(   u   __doc__u   __revision__u   sysu   osu   distutils.coreu   Commandu   distutils.utilu   get_platformu   distutils.dir_utilu   create_treeu   remove_treeu   distutils.errorsu   distutils.sysconfigu   get_python_versionu	   distutilsu   logu   bdist_wininst(    (    (    u<   /mit/python/lib/python3.0/distutils/command/bdist_wininst.pyu   <module>   s   
