
7]c           @   s  d  Z  d d l Z d d l Z d d l m Z m Z i i d d 6d d 6d d	 6d
 d 6d d 6d d 6d d 6d d 6d 6i d d 6d d 6d d	 6d d 6d d 6d d 6d d 6d d 6d 6i d d 6d d 6d d	 6d d 6d d 6d d 6d d 6d d 6d 6i d d 6d d 6d d	 6d d 6d d 6d d 6d d 6d d 6d 6i d d 6d d 6d d	 6d d 6d  d 6d! d 6d" d 6d# 6i d$ d 6d$ d 6d% d	 6d% d 6d& d 6d' d 6d" d 6d( 6i d d 6d d 6d d	 6d d 6d  d 6d! d 6d" d 6d) 6i d* d 6d* d 6d+ d	 6d+ d 6d, d 6d! d 6d" d 6d- 6Z dM Z e j j	   d. Z
 e j d/  Z e
 d. e
 d0 Z e j j e j  Z e j j e j  Z d a d Z e j re j j e e j   Z n e e j    Z e j d k r d1 e d2 j   k r e e j j e e   Z n  e j d k rFd3 e d4 j   k rFe e j j e e e   Z n  e j d k rd5 e d6 j   k re e j j e e e   Z n  d7   Z e   Z e rx- dN D]" Z d8 e e d <d9 e e d <qWn  d:   Z  d;   Z! d<   Z" d=   Z# d>   Z$ d d?  Z% d@   Z& dA   Z' dB   Z( d dC  Z) dD   Z* dE   Z+ dF   Z, e#   d e- dG  Z. e#   d e- dH  Z/ dI   Z0 dJ   Z1 dK   Z2 dL   Z3 d S(O   s7   Provide access to Python's configuration information.

iN(   t   pardirt   realpaths#   {base}/lib/python{py_version_short}t   stdlibs'   {platbase}/lib/python{py_version_short}t
   platstdlibs1   {base}/lib/python{py_version_short}/site-packagest   purelibs5   {platbase}/lib/python{py_version_short}/site-packagest   platlibs'   {base}/include/python{py_version_short}t   includes+   {platbase}/include/python{py_version_short}t   platincludes
   {base}/bint   scriptss   {base}t   datat   posix_prefixs   {base}/lib/pythons   {base}/include/pythont
   posix_homes
   {base}/Libs   {base}/Lib/site-packagess   {base}/Includes   {base}/Scriptst   ntt   os2s'   {userbase}/lib/python{py_version_short}s5   {userbase}/lib/python{py_version_short}/site-packagess+   {userbase}/include/python{py_version_short}s   {userbase}/bins
   {userbase}t   os2_homes#   {userbase}/Python{py_version_nodot}s1   {userbase}/Python{py_version_nodot}/site-packagess+   {userbase}/Python{py_version_nodot}/Includes   {userbase}/Scriptst   nt_usert
   posix_users   {userbase}/lib/pythons#   {userbase}/lib/python/site-packagess   {userbase}/includet   osx_framework_useri    i   i   t   pcbuildis   \pc\vis   \pcbuild\amd64ic          C   s=   x6 d D]. }  t  j j t  j j t d |    r t Sq Wt S(   Ns
   Setup.dists   Setup.localt   Modules(   s
   Setup.dists   Setup.local(   t   ost   patht   isfilet   joint   _PROJECT_BASEt   Truet   False(   t   fn(    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   is_python_buildp   s    $s   {projectbase}/Includes   {srcdir}c         C   sc   y |  j  |   SWnK t k
 r^ y |  j  t j   SWq_ t k
 rZ } t d |   q_ Xn Xd  S(   Ns   {%s}(   t   formatt   KeyErrorR   t   environt   AttributeError(   t   st
   local_varst   var(    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   _subst_vars}   s    c         C   sI   |  j    } x6 | j   D]( \ } } | | k r7 q n  | |  | <q Wd  S(   N(   t   keyst   items(   t   target_dictt
   other_dictt   target_keyst   keyt   value(    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   _extend_dict   s
    c         C   s   i  } | d  k r i  } n  t | t    xa t |  j   D]O \ } } t j d k rl t j j |  } n  t j j	 t
 | |   | | <q< W| S(   Nt   posixR   (   s   posixR   (   t   NoneR,   t   get_config_varst   _INSTALL_SCHEMESR&   R   t   nameR   t
   expandusert   normpathR$   (   t   schemet   varst   resR*   R+   (    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   _expand_vars   s    	#c           C   s   t  j d k r d St  j S(   NR-   R
   (   R   R1   (    (    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   _get_default_scheme   s    c          C   s   t  j j d d   }  d   } t  j d k r\ t  j j d  pB d } |  rO |  S| | d  St j d k r t d  } | r | d d	 | d
 t j d   Sn  |  r |  S| d d  S(   Nt   PYTHONUSERBASEc          W   s   t  j j t  j j |     S(   N(   R   R   R2   R   (   t   args(    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   joinuser   s    R   t   APPDATAt   ~t   Pythont   darwint   PYTHONFRAMEWORKt   Librarys   %d.%di   s   .local(	   R   R   t   getR.   R1   t   syst   platformt   get_config_vart   version_info(   t   env_baseR;   t   baset	   framework(    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   _getuserbase   s    	c         C   s  d d l  } | j d  } | j d  } | j d  } | d k rN i  } n  i  } i  } t |    } | j   }	 Wd QXx |	 D] }
 |
 j d  s |
 j   d k r q n  | j |
  } | r | j d d	  \ } } | j   } | j	 d
 d  } d | k r| | | <qZy t
 |  } Wn' t k
 rL| j	 d
 d  | | <qZX| | | <q q Wx^| rxQ| j   D]C} | | } | j |  p| j |  } | r| j d  } t } | | k rt | |  } nB | | k rt } n- | t j k rt j | } n d | | <} | r| | j   } | | j    | | } d | k re| | | <qy t
 |  } Wn! t k
 r| j   | | <n X| | | <| | =qqt| | =qtWqaW| j |  | S(   s   Parse a Makefile-style file.

    A dictionary containing name/value pairs is returned.  If an
    optional dictionary is passed in as the second argument, it is
    used instead of a new dictionary.
    iNs"   ([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)s   \$\(([A-Za-z][A-Za-z0-9_]*)\)s   \${([A-Za-z][A-Za-z0-9_]*)}t   #t    i   i   s   $$t   $(   t   ret   compileR.   t   opent	   readlinest
   startswitht   stript   matcht   groupt   replacet   intt
   ValueErrorR%   t   searchR   t   strR   R   R   t   endt   startt   update(   t   filenameR5   RN   t   _variable_rxt   _findvar1_rxt   _findvar2_rxt   donet   notdonet   ft   linest   linet   mt   nt   vt   tmpvR1   R+   t   foundt   itemt   after(    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   _parse_makefile   sj    	!	
	 
c           C   s5   t  r t j j t d  St j j t d  d d  S(   Nt   MakefileR   t   config(   t   _PYTHON_BUILDR   R   R   R   t   get_path(    (    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   _get_makefile_filename  s    c         C   s  t    } y t | |   WnL t k
 rh } d | } t | d  rY | d | j } n  t |   n Xt   } y t t |  |   WnL t k
 r } d | } t | d  r | d | j } n  t |   n Xt j	 d k rd |  k r|  d } t
 j d d  } | d k r4| } t
 j d |  qt t | j d   t t | j d   k rd | | f } t |   qn  t r|  d	 |  d
 <n  d S(   s7   Initialize the module as appropriate for POSIX systems.s.   invalid Python installation: unable to open %st   strerrors    (%s)R?   t   MACOSX_DEPLOYMENT_TARGETRL   t   .sF   $MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configuret	   BLDSHAREDt   LDSHAREDN(   Rs   Rn   t   IOErrort   hasattrRt   t   get_config_h_filenamet   parse_config_hRP   RC   RD   R   t   getenvt   putenvt   mapRW   t   splitRq   (   R5   t   makefilet   et   msgt   config_ht
   cfg_targett
   cur_target(    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   _init_posix	  s8    	
	

0c         C   sq   t  d  |  d <t  d  |  d <t  d  |  d <d |  d <d	 |  d
 <t |  d <t j j t t j   |  d <d S(   s+   Initialize the module as appropriate for NTR   t   LIBDESTR   t
   BINLIBDESTR   t	   INCLUDEPYs   .pydt   SOs   .exet   EXEt   VERSIONt   BINDIRN(   Rr   t   _PY_VERSION_SHORT_NO_DOTR   R   t   dirnameR   RC   t
   executable(   R5   (    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   _init_non_posix4  s    


c   	      C   s   d d l  } | d k r! i  } n  | j d  } | j d  } x t r |  j   } | s^ Pn  | j |  } | r | j d d  \ } } y t |  } Wn t k
 r n X| | | <qB | j |  } | rB d | | j d  <qB qB W| S(   s   Parse a config.h-style file.

    A dictionary containing name/value pairs is returned.  If an
    optional dictionary is passed in as the second argument, it is
    used instead of a new dictionary.
    iNs"   #define ([A-Z][A-Za-z0-9_]+) (.*)
s&   /[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/
i   i   i    (	   RN   R.   RO   R   t   readlineRT   RU   RW   RX   (	   t   fpR5   RN   t	   define_rxt   undef_rxRf   Rg   Rh   Ri   (    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyR|   D  s*    		  c          C   sU   t  r6 t j d k r- t j j t d  }  qB t }  n t d  }  t j j |  d  S(   s   Returns the path of pyconfig.h.R   t   PCR   s
   pyconfig.h(   Rq   R   R1   R   R   R   Rr   (   t   inc_dir(    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyR{   a  s    	c          C   s    t  j   }  |  j   t |   S(   s-   Returns a tuple containing the schemes names.(   R0   R%   t   sortt   tuple(   t   schemes(    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   get_scheme_namesl  s    
c           C   s   t  S(   s+   Returns a tuple containing the paths names.(   t   _SCHEME_KEYS(    (    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   get_path_namesr  s    c         C   s   | r t  |  |  St |  Sd S(   s   Returns a mapping containing an install scheme.

    ``scheme`` is the install scheme name. If not provided, it will
    return the default scheme for the current platform.
    N(   R7   R0   (   R4   R5   t   expand(    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt	   get_pathsv  s    c         C   s   t  | | |  |  S(   s\   Returns a path corresponding to the scheme.

    ``scheme`` is the install scheme name.
    (   R   (   R1   R4   R5   R   (    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyRr     s    c          G   s$  d d l  } t d k ri  a t t d <t t d <t t d <t t d <t d t d t d	 <t t d
 <t t d <t t d <t j	 d" k r t
 t  n  t j	 d k r t t  n  t   t d <d t k r t t d <n  t rQt j	 d k rQt } t j j t d  rQ| t j   k rQt j j | t d  } t j j |  t d <qQn  t j d k rt j   d } t | j d  d  } | d k  rxGd# D]D } t | } | j d d |  } | j d d |  } | t | <qWqd t j k rNt j d } xH d$ D]= } t | } | j d d |  } | d | } | t | <q
Wn  t j d d  }	 | j d |	  }
 |
 d k	 r|
 j d   } t j j |  sx: d% D]/ } t | } | j d! d |  } | t | <qWqqqn  |  rg  } x$ |  D] } | j t j |   qW| St Sd S(&   sy  With no arguments, return a dictionary of all configuration
    variables relevant for the current platform.

    On Unix, this means every variable defined in Python's installed Makefile;
    On Windows and Mac OS it's a much smaller set.

    With arguments, return a list of values that result from looking up
    each argument in the configuration variable dictionary.
    iNt   prefixt   exec_prefixt
   py_versiont   py_version_shorti    i   t   py_version_nodotRH   t   platbaset   projectbaseR   R   R-   t   userbaset   srcdirR?   Rv   i   t   LDFLAGSt
   BASECFLAGSt   CFLAGSt	   PY_CFLAGSRw   s   -arch\s+\w+\st    s   -isysroot [^ 	]*t	   ARCHFLAGSRL   s   -isysroot\s+(\S+)i   s   -isysroot\s+\S+(\s|$)(   s   ntR   (   R   R   s   CFLAGSR   s	   BLDSHARED(   R   R   s   CFLAGSR   s	   BLDSHARED(   R   R   s   CFLAGSR   s	   BLDSHARED(   RN   t   _CONFIG_VARSR.   t   _PREFIXt   _EXEC_PREFIXt   _PY_VERSIONt   _PY_VERSION_SHORTR   R   R1   R   R   RJ   Rq   R   t   isabst   getcwdR   R3   RC   RD   t   unameRW   R   t   subR   RB   RY   RU   t   existst   append(   R:   RN   RH   R   t   kernel_versiont   major_versionR*   t   flagst   archR   Rg   t   sdkt   valsR1   (    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyR/     st    













c         C   s   t    j |   S(   s   Return the value of a single variable using the dictionary returned by
    'get_config_vars()'.

    Equivalent to get_config_vars().get(name)
    (   R/   RB   (   R1   (    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyRE      s    c          C   sx  d d l  }  t j d k r d } t j j |  } | d k rF t j St j j d |  } t j | t |  | !j   } | d k r d S| d k r d	 St j St j d
 k s t	 t d  r t j St j
   \ } } } } }	 | j   j d d  } |	 j d d  }	 |	 j d d  }	 | d  d k r=d | |	 f S| d  d k r| d d k rgd } d t | d  d | d f } qgn| d  d k rd | | f S| d  d k rd | | | f S| d  d  k rd  } |  j d!  }
 |
 j |  } | rg| j   } qgnQ| d  d" k rgt   } t j j d#  } | sY| j d#  } n  | } y t d$  } Wn t k
 rn[ X|  j d% d& | j    } | j   | d k	 rd' j | j d(  j d'  d   } n  | s| } n  | rg| } d) } | d' d* k rd+ t   j d, d  j   k rd- }	 t   j d,  } |  j d. |  } | j   t |  } t |  d( k r| d }	 qa| d< k rd- }	 qa| d= k rd2 }	 qa| d> k rd3 }	 qa| d? k rd5 }	 qa| d@ k rd6 }	 qat d7 | f   qd|	 d/ k r4t j  dA k rad1 }	 qaqd|	 dB k rdt j  dC k rXd4 }	 qad0 }	 qdqgn  d; | | |	 f S(D   s  Return a string that identifies the current platform.

    This is used mainly to distinguish platform-specific build directories and
    platform-specific built distributions.  Typically includes the OS name
    and version and the architecture (as supplied by 'os.uname()'),
    although the exact information included depends on the OS; eg. for IRIX
    the architecture isn't particularly important (IRIX only runs on SGI
    hardware), but for Linux the kernel version isn't particularly
    important.

    Examples of returned values:
       linux-i586
       linux-alpha (?)
       solaris-2.6-sun4u
       irix-5.3
       irix64-6.2

    Windows will return one of:
       win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc)
       win-ia64 (64bit Windows on Itanium)
       win32 (all others - specifically, sys.platform is returned)

    For other non-POSIX platforms, currently just returns 'sys.platform'.
    iNR   s    bit (t   )t   amd64s	   win-amd64t   itaniums   win-ia64R-   R   t   /RL   R   t   _t   -i   t   linuxs   %s-%st   sunosi    t   5t   solariss   %d.%si   i   i   t   irixt   aixs   %s-%s.%si   t   cygwins   [\d.]+R?   Ru   s0   /System/Library/CoreServices/SystemVersion.plists'   <key>ProductUserVisibleVersion</key>\s*s   <string>(.*?)</string>Rv   i   t   macosxs   10.4.s   -archR   t   fats   -arch\s+(\S+)t   i386t   ppct   x86_64t   intelt   fat3t   ppc64t   fat64t	   universals%   Don't know machine value for archs=%ri    t   PowerPCt   Power_Macintoshs   %s-%s-%s(   R   R   (   R   R   (   R   R   R   (   R   R   (   R   R   R   R   I       (   R   R   I       (!   RN   R   R1   RC   t   versiont   findRD   t   lent   lowerRz   R   RV   RW   RO   RT   RU   R/   R   RB   RP   Ry   RY   t   readt   closeR.   R   R   RS   t   findallR   R   RX   t   maxint(   RN   R   t   it   jt   lookt   osnamet   hostt   releaseR   t   machinet   rel_reRg   t   cfgvarst   macvert
   macreleaseRd   t   cflagst   archs(    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   get_platform  s     (	
(	!
						c           C   s   t  S(   N(   R   (    (    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   get_python_version  s    (   s   stdlibs
   platstdlibs   purelibR   s   includeR   s   data(   s   posix_prefixR   (4   t   __doc__RC   R   t   os.pathR    R   R0   R   R   R   R   R   R   R   R3   R   R   R   R   R.   R   t
   _USER_BASER   R   R   R   R1   R   R   R   Rq   R4   R$   R,   R7   R8   RJ   Rn   Rs   R   R   R|   R{   R   R   R   R   Rr   R/   RE   R   R   (    (    (    sK   /home/wilkie/singularity/occam/occam/init/python/lib/python2.7/sysconfig.pyt   <module>   s    	%%!%!								Q		+					x		