;
Ñâ"Ic               @   sÀ  d  Z  d d l m 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 d d l m Z d d	 l m Z d d
 l m Z m Z m Z d d l m Z d d l m Z d d l m Z d d l m Z e j d k  o- i d d 6d d 6d d 6d d 6d d 6Z n* i d d 6d d 6d d 6d d 6d d 6Z i	 i d d 6d d 6d d 6d d 6d d 6d 6i d d 6d d 6d d 6d d 6d d 6d  6i d! d 6d! d 6d" d 6d# d 6d$ d 6d% 6e d& 6i d! d 6d! d 6d' d 6d( d 6d$ d 6d) 6i d d 6d d 6d d 6d d 6d d 6d* 6i d! d 6d! d 6d+ d 6d# d 6d$ d 6d, 6i d d 6d d 6d d 6d d 6d d 6d- 6i d! d 6d! d 6d" d 6d# d 6d$ d 6d. 6Z d1 Z Gd/ „  d0 e ƒ Z d S(2   uF   distutils.command.install

Implements the Distutils 'install' command.i    (   u   logu=   $Id: install.py 62801 2008-05-06 23:45:46Z christian.heimes $N(   u   Command(   u   DEBUG(   u   get_config_vars(   u   DistutilsPlatformError(   u
   write_file(   u   convert_pathu
   subst_varsu   change_root(   u   get_platform(   u   DistutilsOptionError(   u	   USER_BASE(   u	   USER_SITEu   2.2u   $baseu   purelibu   platlibu   $base/Include/$dist_nameu   headersu   $base/Scriptsu   scriptsu   datau   $base/Lib/site-packagesu/   $base/lib/python$py_version_short/site-packagesu3   $platbase/lib/python$py_version_short/site-packagesu0   $base/include/python$py_version_short/$dist_nameu	   $base/binu   unix_prefixu   $base/lib/pythonu   $base/include/python/$dist_nameu	   unix_homeu	   $usersiteu4   $userbase/include/python$py_version_short/$dist_nameu   $userbase/binu	   $userbaseu	   unix_useru   ntu4   $userbase/Python$py_version_nodot/Include/$dist_nameu   $userbase/Scriptsu   nt_useru   macu.   $userbase/$py_version_short/include/$dist_nameu   mac_useru   os2u   os2_homec             B   sŒ  |  Ee  Z d  Z dH dI dJ d dG d e f dK d dG d d f dL dM dN d dG d d f dO dP dQ dR dS dT dU dV dW g Z d d% d( d g Z i d d  6Z d, „  Z d- „  Z	 d. „  Z
 d/ „  Z d0 „  Z d1 „  Z d2 „  Z d3 „  Z d4 „  Z d5 „  Z d6 „  Z d7 „  Z d8 „  Z d9 „  Z d: „  Z d; „  Z d< „  Z d= „  Z d> „  Z d? „  Z d@ „  Z dA e f dB e f dC e f dD e f dE dF „  f g Z dG S(X   u'   install everything from build directoryu   prefix=u   installation prefixu   exec-prefix=u.   (Unix only) prefix for platform-specific filesu   home=u+   (Unix only) home directory to install underu   useru!   install in user site-package '%s'u   install-base=u;   base installation directory (instead of --prefix or --home)u   install-platbase=u8   base installation directory for platform-specific files u$   (instead of --exec-prefix or --home)u   root=u<   install everything relative to this alternate root directoryu   install-purelib=u;   installation directory for pure Python module distributionsu   install-platlib=u8   installation directory for non-pure module distributionsu   install-lib=u4   installation directory for all module distributions u3   (overrides --install-purelib and --install-platlib)u   install-headers=u(   installation directory for C/C++ headersu   install-scripts=u)   installation directory for Python scriptsu   install-data=u%   installation directory for data filesu   compileu   cu   compile .py to .pyc [default]u
   no-compileu   don't compile .py filesu	   optimize=u   Oul   also compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]u   forceu   fu1   force installation (overwrite any existing files)u
   skip-buildu2   skip rebuilding everything (for testing/debugging)u   record=u3   filename in which to record list of installed filesc             C   så   d  |  _ d  |  _ d  |  _ d |  _ d  |  _ d  |  _ d  |  _ d  |  _ d  |  _	 d  |  _
 d  |  _ d  |  _ d  |  _ t |  _ t |  _ d  |  _ d  |  _ d  |  _ d |  _ d |  _ d |  _ d |  _ d  |  _ d  |  _ d  |  _ d  S(   Ni    i   (   u   Noneu   prefixu   exec_prefixu   homeu   useru   install_baseu   install_platbaseu   rootu   install_purelibu   install_platlibu   install_headersu   install_libu   install_scriptsu   install_datau	   USER_BASEu   install_userbaseu	   USER_SITEu   install_usersiteu   compileu   optimizeu
   extra_pathu   install_path_fileu   forceu
   skip_buildu   warn_diru
   build_baseu	   build_libu   record(   u   self(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   initialize_options®   s2    																	
							c          
   C   sx  |  j  p |  j p
 |  j o( |  j p
 |  j o t d d ƒ ‚ n |  j o$ |  j  p
 |  j o t d ƒ ‚ n |  j oB |  j  p( |  j p |  j p |  j p
 |  j o t d ƒ ‚ n t j d k o( |  j o |  j	 d ƒ d  |  _ qø n |  j d ƒ t j d k o |  j ƒ  n |  j ƒ  |  j d ƒ t j j ƒ  d	 } t d
 d ƒ \ } } i |  j j ƒ  d 6|  j j ƒ  d 6|  j j ƒ  d 6| d 6| d	 d … d 6| d	 | d d 6| d 6| d
 6| d 6| d 6|  j d 6|  j d 6|  _ |  j ƒ  |  j d ƒ |  j |  j d <|  j |  j d <t o+ d	 d l m } t d ƒ | |  j ƒ n |  j ƒ  |  j d ƒ |  j o |  j ƒ  n |  j d  k o- |  j j  o |  j! |  _ qË|  j" |  _ n |  j# d d d  d! d" d# d d ƒ |  j$ ƒ  |  j |  _% t j& j' |  j |  j( ƒ |  _ |  j) d  k	 o# |  j* d$ d d d  d! d" d# ƒ n |  j d% ƒ |  j+ d& d) d* ƒ d  S(+   Nu.   must supply either prefix/exec-prefix/home or u)   install-base/install-platbase -- not bothu9   must supply either home or prefix/exec-prefix -- not bothuJ   can't combine user with with prefix/exec_prefix/home or install_(plat)baseu   posixu+   exec-prefix option ignored on this platformu   pre-finalize_{unix,other}u   post-finalize_{unix,other}()i    u   prefixu   exec_prefixu	   dist_nameu   dist_versionu   dist_fullnameu
   py_versioni   u   py_version_shorti   u   py_version_nodotu
   sys_prefixu   sys_exec_prefixu   userbaseu   usersiteu   post-expand_basedirs()u   baseu   platbase(   u   pprintu   config vars:u   post-expand_dirs()u   libu   purelibu   platlibu   scriptsu   datau   headersu   libbaseu   after prepending rootu   buildu
   build_baseu	   build_lib(   u
   build_baseu
   build_base(   u	   build_libu	   build_lib(,   u   prefixu   exec_prefixu   homeu   install_baseu   install_platbaseu   DistutilsOptionErroru   useru   osu   nameu   warnu   Noneu	   dump_dirsu   finalize_unixu   finalize_otheru   sysu   versionu   splitu   get_config_varsu   distributionu   get_nameu   get_versionu   get_fullnameu   install_userbaseu   install_usersiteu   config_varsu   expand_basedirsu   DEBUGu   pprintu   printu   expand_dirsu   create_home_pathu   install_libu   ext_modulesu   install_platlibu   install_purelibu   convert_pathsu   handle_extra_pathu   install_libbaseu   pathu   joinu
   extra_dirsu   rootu   change_rootsu   set_undefined_options(   u   selfu
   py_versionu   prefixu   exec_prefixu   pprint(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   finalize_optionsû   s~    (







	

	c             C   sÖ   t  oË d d l m } t | d ƒ xª |  j D]› } | d } | d d k o | d d … } n | |  j k o' | |  j | ƒ } t |  | ƒ } n | | ƒ } t |  | ƒ } t d | | f ƒ q/ Wn d  S(   Ni    (   u   longopt_xlateu   :iÿÿÿÿu   =u     %s: %s(   u   DEBUGu   distutils.fancy_getoptu   longopt_xlateu   printu   user_optionsu   negative_optu   getattr(   u   selfu   msgu   longopt_xlateu   optu   opt_nameu   val(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu	   dump_dirs‡  s    
 
c             C   sÄ  |  j  d  k	 p |  j d  k	 ou |  j d  k o  |  j d  k o |  j d  k p0 |  j d  k p  |  j d  k p |  j d  k o t	 d ƒ ‚ n d  S|  j
 oD |  j d  k o t d ƒ ‚ n |  j |  _  |  _ |  j d ƒ nÞ |  j d  k	 o$ |  j |  _  |  _ |  j d ƒ nª |  j d  k oT |  j d  k	 o t	 d ƒ ‚ n t j j t j ƒ |  _ t j j t j ƒ |  _ n! |  j d  k o |  j |  _ n |  j |  _  |  j |  _ |  j d ƒ d  S(   NuP   install-base or install-platbase supplied, but installation scheme is incompleteu$   User base directory is not specifiedu	   unix_useru	   unix_homeu*   must not supply exec-prefix without prefixu   unix_prefix(   u   install_baseu   Noneu   install_platbaseu   install_libu   install_purelibu   install_platlibu   install_headersu   install_scriptsu   install_datau   DistutilsOptionErroru   useru   install_userbaseu   DistutilsPlatformErroru   select_schemeu   homeu   prefixu   exec_prefixu   osu   pathu   normpathu   sys(   u   self(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   finalize_unix˜  s<     
c             C   s
  |  j  oK |  j d  k o t d ƒ ‚ n |  j |  _ |  _ |  j t j d ƒ n² |  j	 d  k	 o$ |  j	 |  _ |  _ |  j d ƒ n~ |  j
 d  k o t j j t j
 ƒ |  _
 n |  j
 |  _ |  _ y |  j t j ƒ Wn' t k
 o t d t j ƒ ‚ Yn Xd  S(   Nu$   User base directory is not specifiedu   _useru	   unix_homeu)   I don't know how to install stuff on '%s'(   u   useru   install_userbaseu   Noneu   DistutilsPlatformErroru   install_baseu   install_platbaseu   select_schemeu   osu   nameu   homeu   prefixu   pathu   normpathu   sysu   KeyError(   u   self(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   finalize_otherÀ  s"    
c             C   sW   t  | } xF t D]> } d | } t |  | ƒ d  k o t |  | | | ƒ q q Wd  S(   Nu   install_(   u   INSTALL_SCHEMESu   SCHEME_KEYSu   getattru   Noneu   setattr(   u   selfu   nameu   schemeu   keyu   attrname(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   select_schemeÖ  s    
 
c             C   s   x† | D]~ } t  |  | ƒ } | d  k	 o\ t j d k p t j d k o t j j | ƒ } n t | |  j ƒ } t |  | | ƒ q q Wd  S(   Nu   posixu   nt(	   u   getattru   Noneu   osu   nameu   pathu
   expanduseru
   subst_varsu   config_varsu   setattr(   u   selfu   attrsu   attru   val(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   _expand_attrsß  s      c             C   s   |  j  d d d g ƒ d  S(   Nu   install_baseu   install_platbaseu   root(   u   _expand_attrs(   u   self(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   expand_basedirsé  s    	c             C   s#   |  j  d d d d d d g ƒ d  S(   Nu   install_purelibu   install_platlibu   install_libu   install_headersu   install_scriptsu   install_data(   u   _expand_attrs(   u   self(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   expand_dirsî  s    	c             G   s>   x7 | D]/ } d | } t  |  | t t |  | ƒ ƒ ƒ q Wd  S(   Nu   install_(   u   setattru   convert_pathu   getattr(   u   selfu   namesu   nameu   attr(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   convert_paths÷  s     
c             C   sñ   |  j  d  k o |  j j  |  _  n |  j  d  k	 oœ t |  j  t ƒ o |  j  j d ƒ |  _  n t |  j  ƒ d k o |  j  d } } n6 t |  j  ƒ d k o |  j  \ } } n t d ƒ ‚ t | ƒ } n d  } d } | |  _	 | |  _
 d  S(   Nu   ,i   i    i   uY   'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsu    (   u
   extra_pathu   Noneu   distributionu
   isinstanceu   stru   splitu   lenu   DistutilsOptionErroru   convert_pathu	   path_fileu
   extra_dirs(   u   selfu	   path_fileu
   extra_dirs(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   handle_extra_pathü  s     		c          	   G   sD   x= | D]5 } d | } t  |  | t |  j t |  | ƒ ƒ ƒ q Wd  S(   Nu   install_(   u   setattru   change_rootu   rootu   getattr(   u   selfu   namesu   nameu   attr(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   change_roots  s     
c             C   s”   |  j  p d St t j j d ƒ ƒ } xf |  j j ƒ  D]U \ } } | j | ƒ o9 t j j | ƒ o% |  j	 d | ƒ t j
 | d ƒ q7 q7 Wd S(   u#   Create directories under ~
        Nu   ~u   os.makedirs('%s', 0o700)iÀ  (   u   useru   convert_pathu   osu   pathu
   expanduseru   config_varsu	   iteritemsu
   startswithu   isdiru   debug_printu   makedirs(   u   selfu   homeu   nameu   path(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   create_home_path  s    
 $c          	   C   sº  |  j  pP |  j d ƒ |  j j d ƒ j } |  j o  | t ƒ  k o t d ƒ ‚ qZ n x! |  j ƒ  D] } |  j | ƒ qg W|  j	 o |  j
 ƒ  n |  j o… |  j ƒ  } |  j oH t |  j ƒ } x6 t t | ƒ ƒ D] } | | | d  … | | <qØ Wn |  j t |  j | f d |  j ƒ n t t j j t j ƒ } t t j j | ƒ } t j j t j j |  j ƒ ƒ } |  j o9 |  j	 o |  j o$ | | k o t j d |  j ƒ n d  S(   Nu   buildu"   Can't install when cross-compilingu'   writing list of installed files to '%s'uƒ   modules installed to '%s', which is not in Python's module search path (sys.path) -- you'll have to change the search path yourself(   u
   skip_buildu   run_commandu   distributionu   get_command_obju	   plat_nameu   warn_diru   get_platformu   DistutilsPlatformErroru   get_sub_commandsu	   path_fileu   create_path_fileu   recordu   get_outputsu   rootu   lenu   rangeu   executeu
   write_fileu   mapu   osu   pathu   normpathu   sysu   normcaseu   install_libu   install_path_fileu   logu   debug(   u   selfu
   build_platu   cmd_nameu   outputsu   root_lenu   counteru   sys_pathu   install_lib(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   run,  s:    
 


  	!
	c             C   se   t  j j |  j |  j d ƒ } |  j o' |  j t | |  j g f d | ƒ n |  j	 d | ƒ d  S(   Nu   .pthu   creating %su   path file '%s' not created(
   u   osu   pathu   joinu   install_libbaseu	   path_fileu   install_path_fileu   executeu
   write_fileu
   extra_dirsu   warn(   u   selfu   filename(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   create_path_fileW  s    
	c             C   s£   g  } xX |  j  ƒ  D]J } |  j | ƒ } x2 | j ƒ  D]$ } | | k o | j | ƒ q5 q5 Wq W|  j o4 |  j o* | j t j j |  j	 |  j d ƒ ƒ n | S(   Nu   .pth(
   u   get_sub_commandsu   get_finalized_commandu   get_outputsu   appendu	   path_fileu   install_path_fileu   osu   pathu   joinu   install_libbase(   u   selfu   outputsu   cmd_nameu   cmdu   filename(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   get_outputsd  s      c             C   sC   g  } x6 |  j  ƒ  D]( } |  j | ƒ } | j | j ƒ  ƒ q W| S(   N(   u   get_sub_commandsu   get_finalized_commandu   extendu
   get_inputs(   u   selfu   inputsu   cmd_nameu   cmd(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu
   get_inputsu  s     c             C   s   |  j  j ƒ  p |  j  j ƒ  S(   uR   Return true if the current distribution has any Python
        modules to install.(   u   distributionu   has_pure_modulesu   has_ext_modules(   u   self(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   has_lib  s    c             C   s   |  j  j ƒ  S(   N(   u   distributionu   has_headers(   u   self(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   has_headers‡  s    c             C   s   |  j  j ƒ  S(   N(   u   distributionu   has_scripts(   u   self(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   has_scriptsŠ  s    c             C   s   |  j  j ƒ  S(   N(   u   distributionu   has_data_files(   u   self(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   has_data  s    u   install_libu   install_headersu   install_scriptsu   install_datau   install_egg_infoc             C   s   d  S(   T(   u   True(   u   self(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   <lambda>—  s    N(   u   prefix=Nu   installation prefix(   u   exec-prefix=Nu.   (Unix only) prefix for platform-specific files(   u   home=Nu+   (Unix only) home directory to install under(   u   install-base=Nu;   base installation directory (instead of --prefix or --home)(   u   root=Nu<   install everything relative to this alternate root directory(   u   install-purelib=Nu;   installation directory for pure Python module distributions(   u   install-platlib=Nu8   installation directory for non-pure module distributions(   u   install-headers=Nu(   installation directory for C/C++ headers(   u   install-scripts=Nu)   installation directory for Python scripts(   u   install-data=Nu%   installation directory for data files(   u   compileu   cu   compile .py to .pyc [default](   u
   no-compileNu   don't compile .py files(   u	   optimize=u   Oul   also compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](   u   forceu   fu1   force installation (overwrite any existing files)(   u
   skip-buildNu2   skip rebuilding everything (for testing/debugging)(   u   record=Nu3   filename in which to record list of installed files(   u   __name__u
   __module__u   descriptionu   Noneu	   USER_SITEu   user_optionsu   boolean_optionsu   negative_optu   initialize_optionsu   finalize_optionsu	   dump_dirsu   finalize_unixu   finalize_otheru   select_schemeu   _expand_attrsu   expand_basedirsu   expand_dirsu   convert_pathsu   handle_extra_pathu   change_rootsu   create_home_pathu   runu   create_path_fileu   get_outputsu
   get_inputsu   has_libu   has_headersu   has_scriptsu   has_datau   sub_commands(   u
   __locals__(    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   installi   s†   
   
           		M	Œ		(				
								+											u   install(   u   purelibu   platlibu   headersu   scriptsu   data(   u   __doc__u	   distutilsu   logu   __revision__u   sysu   osu   distutils.coreu   Commandu   distutils.debugu   DEBUGu   distutils.sysconfigu   get_config_varsu   distutils.errorsu   DistutilsPlatformErroru   distutils.file_utilu
   write_fileu   distutils.utilu   convert_pathu
   subst_varsu   change_rootu   get_platformu   DistutilsOptionErroru   siteu	   USER_BASEu	   USER_SITEu   versionu   WINDOWS_SCHEMEu   INSTALL_SCHEMESu   SCHEME_KEYSu   install(    (    (    u6   /mit/python/lib/python3.0/distutils/command/install.pyu   <module>   sœ   
