ó
\K]c           @` s1  d  d l  m Z m Z 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	 Z	 y d  d l
 Z
 e Z Wn e k
 r“ e Z n Xd  d l j Z e j j d ƒ Z e j j d ƒ Z e j d Z e d k Z e j d  Z d Z d	 „  Z d
 „  Z d e f d „  ƒ  YZ e ƒ  Z  d „  Z! d S(   i    (   t   print_functiont   divisiont   absolute_importNt   win32t   darwini   i    i   s   .numba_config.yamlc         C` s_   |  s
 d St j d |  ƒ } | s1 t d ƒ ‚ n  | j ƒ  } t | d ƒ t | d ƒ f Sd S(   s7   
    Parse CUDA compute capability version string.
    s   (\d+)\.(\d+)se   NUMBA_FORCE_CUDA_CC must be specified as a string of "major.minor" where major and minor are decimalsi    i   N(   t   Nonet   ret   matcht
   ValueErrort   groupst   int(   t   textt   mt   grp(    (    s+   lib/python2.7/site-packages/numba/config.pyt	   _parse_cc   s    c          C` s·   t  j j d ƒ s% t j ƒ  d k r) t Sy t d d ƒ }  Wn t k
 rP t SX|  Z xR |  D]F } | j d ƒ \ } } } | j ƒ  d	 k r_ d
 | j	 ƒ  k r_ t Sq_ Wt
 SWd QXd S(   s¹   
    Whether the current OS supports AVX, regardless of the CPU.

    This is necessary because the user may be running a very old Linux
    kernel (e.g. CentOS 5) on a recent CPU.
    t   linuxt   i386t   i586t   i686t   x86_64s   /proc/cpuinfot   rt   :t   flagst   avxN(   R   R   R   R   (   t   syst   platformt
   startswitht   machinet   Truet   opent   OSErrort	   partitiont   stript   splitt   False(   t   ft   linet   headt   _t   body(    (    s+   lib/python2.7/site-packages/numba/config.pyt   _os_supports_avx/   s    $t   _EnvReloaderc           B` s/   e  Z d  „  Z d „  Z e d „ Z d „  Z RS(   c         C` s   |  j  ƒ  d  S(   N(   t   reset(   t   self(    (    s+   lib/python2.7/site-packages/numba/config.pyt   __init__K   s    c         C` s   i  |  _  |  j d t ƒ d  S(   Nt   force(   t   old_environt   updateR   (   R+   (    (    s+   lib/python2.7/site-packages/numba/config.pyR*   N   s    	c   
      C` s$  i  } t  j j t ƒ r° t  j j t ƒ r° t sF d } t j | ƒ q° t t d ƒ  } t	 j
 | ƒ } Wd  QX| d  k	 r° x1 | j ƒ  D]  \ } } | | d | j ƒ  <q† Wq° n  x9 t  j j ƒ  D]( \ } }	 | j d ƒ rÀ |	 | | <qÀ qÀ W| s|  j | k r |  j | ƒ t | ƒ |  _ n  d  S(   Nsš   A Numba config file is found but YAML parsing capabilities appear to be missing. To use this feature please install `pyyaml`. e.g. `conda install pyyaml`.t   rtt   NUMBA_(   t   ost   patht   existst   _config_fnamet   isfilet
   _HAVE_YAMLt   warningst   warnR   t   yamlt	   safe_loadR   t   itemst   uppert   environR   R.   t   process_environt   dict(
   R+   R-   t   new_environt   msgR#   t   y_conft   kt   vt   namet   value(    (    s+   lib/python2.7/site-packages/numba/config.pyR/   R   s     $c   :      ` s2  ‡  f d †  } d „  } | d t  d ƒ } | d t  | ƒ } | d t  | ƒ } | d t d ƒ } | d	 t  d ƒ } | d
 t  d ƒ }	 | d t  d ƒ }
 | d t  d ƒ } | d t  | ƒ } | d t d ƒ } | d t  d ƒ } | d t  d ƒ } | d | d  ƒ } | d | t | ƒ j ƒ  d k r*d n d  ƒ } | d t  d ƒ } | d t  |
 ƒ } | d t  |
 ƒ } | d t  |
 p{| ƒ } | d t  d ƒ } | d t  d ƒ } | d t  d ƒ } | d t  d ƒ } | d t  d ƒ } | d  t  | ƒ } | d! t  | ƒ } | d" t  | ƒ } | d# t  t o#t ƒ } | d$ t  | ƒ } | d% t  d ƒ }  | d& t  d ƒ }! d' „  }" | d( |" d  ƒ }# | d) t  d ƒ }$ d* „  }% | d+ t  |% ƒ }& | d, t  t ƒ }' | d- t  d ƒ }( | d. t d/ ƒ }) | d0 t d  ƒ }* | d1 t  t  t d2 k ƒ ƒ }+ | d3 t  d ƒ }, | d4 t d ƒ }- | d5 t  d6 ƒ }. | d7 t d8 ƒ }/ | d9 t  d ƒ }0 t	 d: t
 j ƒ  ƒ }1 | d; t  |1 ƒ }2 d< t j k }3 | d= t  t  |3 ƒ ƒ }4 | d> t  |4 ƒ }5 | d? t  d ƒ }6 | d@ t dA ƒ }7 x? t ƒ  j ƒ  j ƒ  D]( \ }8 }9 |8 j ƒ  r|9 t ƒ  |8 <qqWd  S(B   Nc         ` ss   ˆ  j  |  ƒ } | d  k r2 t | ƒ r. | ƒ  S| Sy | | ƒ SWn, t k
 rn t j d |  | f t ƒ | SXd  S(   Ns+   environ %s defined but failed to parse '%s'(   t   getR   t   callablet	   ExceptionR8   R9   t   RuntimeWarning(   RF   t   ctort   defaultRG   (   R>   (    s+   lib/python2.7/site-packages/numba/config.pyt   _readenvr   s    	c         S` s   |  d  k	 r t |  ƒ Sd  S(   N(   R   t   str(   t   x(    (    s+   lib/python2.7/site-packages/numba/config.pyt   optional_str}   s    t   NUMBA_DEVELOPER_MODEi    t   NUMBA_FULL_TRACEBACKSt   NUMBA_SHOW_HELPt   NUMBA_COLOR_SCHEMEt   no_colort   NUMBA_DEBUGt   NUMBA_DEBUG_JITt   NUMBA_DEBUG_FRONTENDt   NUMBA_FUNCTION_CACHE_SIZEi€   t   NUMBA_DEBUG_CACHEt   NUMBA_CACHE_DIRt    t   NUMBA_TRACEt   NUMBA_DEBUG_TYPEINFERt   NUMBA_CPU_NAMEt   NUMBA_CPU_FEATURESt   generict	   NUMBA_OPTi   t   NUMBA_DUMP_BYTECODEt   NUMBA_DUMP_CFGt   NUMBA_DUMP_IRt   NUMBA_DEBUG_ARRAY_OPTt   NUMBA_DEBUG_ARRAY_OPT_RUNTIMEt   NUMBA_DEBUG_ARRAY_OPT_STATSt   NUMBA_PARALLEL_DIAGNOSTICSt   NUMBA_DEBUG_INLINE_CLOSUREt   NUMBA_DUMP_LLVMt   NUMBA_DUMP_FUNC_OPTt   NUMBA_DUMP_OPTIMIZEDt   NUMBA_LOOP_VECTORIZEt   NUMBA_DUMP_ASSEMBLYt   NUMBA_DUMP_ANNOTATIONt   NUMBA_DIFF_IRc         S` s$   |  d  k r |  St j j |  ƒ Sd  S(   N(   R   R2   R3   t   abspath(   R3   (    (    s+   lib/python2.7/site-packages/numba/config.pyt   fmt_html_pathä   s    t   NUMBA_DUMP_HTMLt   NUMBA_COMPATIBILITY_MODEc          S` s'   t  ƒ  s t St j ƒ  }  |  d k Sd  S(   Ns
   corei7-avxs
   core-avx-it   sandybridget	   ivybridge(   s
   corei7-avxs
   core-avx-iRw   Rx   (   R(   R"   t   llt   get_host_cpu_name(   t   cpu_name(    (    s+   lib/python2.7/site-packages/numba/config.pyt   avx_defaultó   s
    	t   NUMBA_ENABLE_AVXt   NUMBA_DISABLE_INTEL_SVMLt   NUMBA_DISABLE_JITt   NUMBA_THREADING_LAYERRM   t   NUMBA_FORCE_CUDA_CCt   NUMBA_DISABLE_CUDAi    t   NUMBA_ENABLE_CUDASIMt   NUMBA_CUDA_LOG_LEVELt%   NUMBA_CUDA_MAX_PENDING_DEALLOCS_COUNTi
   t%   NUMBA_CUDA_MAX_PENDING_DEALLOCS_RATIOgš™™™™™É?t   NUMBA_DISABLE_HSAi   t   NUMBA_NUM_THREADSt   VS_PROFILERt   NUMBA_ENABLE_PROFILINGt   NUMBA_DEBUGINFOt   NUMBA_CUDA_DEBUGINFOt   NUMBA_GDB_BINARYs   /usr/bin/gdb(   R
   RO   R   t   lowert   IS_WIN32t	   IS_32BITSR   t   MACHINE_BITSt   floatt   maxt   multiprocessingt	   cpu_countR2   R>   t   localst   copyR<   t   isuppert   globals(:   R+   R>   RN   RQ   t   DEVELOPER_MODEt   FULL_TRACEBACKSt	   SHOW_HELPt   COLOR_SCHEMEt   DEBUGt	   DEBUG_JITt   DEBUG_FRONTENDt   FUNCTION_CACHE_SIZEt   DEBUG_CACHEt	   CACHE_DIRt   TRACEt   DEBUG_TYPEINFERt   CPU_NAMEt   CPU_FEATURESt   OPTt   DUMP_BYTECODEt   DUMP_CFGt   DUMP_IRt   DEBUG_ARRAY_OPTt   DEBUG_ARRAY_OPT_RUNTIMEt   DEBUG_ARRAY_OPT_STATSt   PARALLEL_DIAGNOSTICSt   DEBUG_INLINE_CLOSUREt	   DUMP_LLVMt   DUMP_FUNC_OPTt   DUMP_OPTIMIZEDt   LOOP_VECTORIZEt   DUMP_ASSEMBLYt   ANNOTATEt   DIFF_IRRt   t   HTMLt   COMPATIBILITY_MODER|   t
   ENABLE_AVXt   DISABLE_INTEL_SVMLt   DISABLE_JITt   THREADING_LAYERt   FORCE_CUDA_CCt   DISABLE_CUDAt   ENABLE_CUDASIMt   CUDA_LOG_LEVELt   CUDA_DEALLOCS_COUNTt   CUDA_DEALLOCS_RATIOt   DISABLE_HSAt   NUMBA_DEFAULT_NUM_THREADSRˆ   t   RUNNING_UNDER_PROFILERt   ENABLE_PROFILINGt   DEBUGINFO_DEFAULTt   CUDA_DEBUGINFO_DEFAULTt
   GDB_BINARYRF   RG   (    (   R>   s+   lib/python2.7/site-packages/numba/config.pyR?   q   sŠ    									"(   t   __name__t
   __module__R,   R*   R"   R/   R?   (    (    (    s+   lib/python2.7/site-packages/numba/config.pyR)   I   s   		c           C` s   t  j ƒ  d S(   sL   
    Reload the configuration from environment variables, if necessary.
    N(   t   _env_reloaderR/   (    (    (    s+   lib/python2.7/site-packages/numba/config.pyt   reload_configN  s    ("   t
   __future__R    R   R   R   R   R2   R   R8   R”   R:   R   R7   t   ImportErrorR"   t   llvmlite.bindingt   bindingRy   R   R   t   IS_OSXt   tuplet   __itemsize__R‘   R   t   version_infot	   PYVERSIONR5   R   R(   t   objectR)   RÍ   RÎ   (    (    (    s+   lib/python2.7/site-packages/numba/config.pyt   <module>   s0   

		ÿ 	