
    xKgZ                        d dl 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	 d dlZdZd dl
mZ ej                   j                  d      Zej                   j                  d      Zej"                  dz  Zedk(  Zej(                  dd Zd	Zd
 Zd ZdZd Z G d de      Zd Z G d de      Z e       Z d Z!y# e	$ r dZY w xY w)    NTFwin32darwin          z.numba_config.yamlc                     | syt        j                  d|       }|st        d      |j                         }t	        |d         t	        |d         fS )z7
    Parse CUDA compute capability version string.
    Nz(\d+)\.(\d+)zdCompute capability must be specified as a string of "major.minor" where major and minor are decimalsr      )rematch
ValueErrorgroupsint)textmgrps      U/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/core/config.py	_parse_ccr      sW     HH_d+ 6 7 7 hhj3q6{CAK''    c                  p   t         j                  j                  d      rt        j                         dvry	 t	        dd      } | 5  | D ]G  }|j                  d      \  }}}|j                         dk(  s,d|j                         v s? d	d	d	       y 	 d	d	d	       y
# t
        $ r Y yw xY w# 1 sw Y   y	xY w)z
    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.
    linux)i386i586i686x86_64Tz/proc/cpuinfor:flagsavxNF)	sysplatform
startswithmachineopenOSError	partitionstripsplit)flinehead_bodys        r   _os_supports_avxr-   /   s     LL##G,!)KK#& 
D NN3/MD!Tzz|w&5DJJL+@	 

  
   
s/   B .B,5B,B,B,	B)(B),B5zNUMBA_CAPTURED_ERRORS=old_style is deprecated. It will be removed in the next release. See details at https://numba.readthedocs.io/en/latest/reference/deprecation.html#deprecation-of-old-style-numba-captured-errorsc                     ddl m} t        |       }|dvrd| }t        |      |dk(  rd}|S |dk(  rt	        j
                  t        |       |S )Nr   )NumbaDeprecationWarning)	new_style	old_styledefaultz(Invalid style in NUMBA_CAPTURED_ERRORS: r2   r0   r1   )numba.core.errorsr/   strr   warningswarn_old_style_deprecation_msg)	style_strr/   rendered_stylemsgs       r   _validate_captured_errors_styler;   Q   sh    9^NBB9 !#oY&(N  {*MM413r   c                   8     e Zd ZdZ fdZed        Zd Z xZS )	_OptLevela  This class holds the "optimisation level" set in `NUMBA_OPT`. As this env
    var can be an int or a string, but is almost always interpreted as an int,
    this class subclasses int so as to get the common behaviour but stores the
    actual value as a `_raw_value` member. The value "max" is a special case
    and the property `is_opt_max` can be queried to find if the optimisation
    level (supplied value at construction time) is "max".c                     t        |      dk(  sJ |\  }|dk(  rdn
t        |      }t        |   | |fi |}|dk(  r	||_        |S ||_        |S )Nr	   max   )lenr   super__new__
_raw_value)clsargskwargsvalue
_int_valuenew	__class__s         r   rC   z_OptLevel.__new__k   sa    4yA~~5.Qc%j
goc:88"'5.
 7A
r   c                      | j                   dk(  S )zLReturns True if the the optimisation level is "max" False
        otherwise.r?   )rD   selfs    r   
is_opt_maxz_OptLevel.is_opt_maxu   s     %''r   c                 |    t        | j                  t              rd| j                   d}n| j                  }d| dS )N'z
_OptLevel())
isinstancerD   r4   )rN   args     r   __repr__z_OptLevel.__repr__{   s;    doos+doo&a(C//CC5""r   )	__name__
__module____qualname____doc__rC   propertyrO   rU   __classcell__)rK   s   @r   r=   r=   c   s&    = ( (
#r   r=   c                 B    | dvrd|  d}t        |      t        |       S )N)0123r?   zAEnvironment variable `NUMBA_OPT` is set to an unsupported value 'z-', supported values are 0, 1, 2, 3, and 'max')r   r=   )	opt_levelr:   s     r   _process_opt_levelrb      s8    33" $ o##r   c                   ,    e Zd Zd Zd ZddZd Zd Zy)_EnvReloaderc                 $    | j                          y N)resetrM   s    r   __init__z_EnvReloader.__init__   s    

r   c                 6    i | _         | j                  d       y )NT)force)old_environupdaterM   s    r   rg   z_EnvReloader.reset   s    $r   c                    i }t         j                  j                  t              rt         j                  j	                  t              r|t
        sd}t        j                  |       n^t        t        d      5 }t        j                  |      }d d d        .|j                         D ]  \  }}||d|j                         z   <    t         j                  j                         D ]  \  }}	|j                  d      s|	||<    |s| j                  |k7  r!| j!                  |       t#        |      | _        | j%                          y # 1 sw Y   xY w)NzA 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`.rtNUMBA_)ospathexists_config_fnameisfile
_HAVE_YAMLr5   r6   r#   yaml	safe_loaditemsupperenvironr!   rk   process_environdictvalidate)
rN   rj   new_environr:   r(   y_confkvnamerH   s
             r   rl   z_EnvReloader.update   s     77>>-(RWW^^M-J1 c"-.!!^^A.F /% &1<=Hqwwy$89 !/ ::++-KD%x($)D! . D$$3  -#K0D' /.s   7EEc                     t         r"	 dd l}t        rt	        j
                  d       y y y # t        $ r1}d|j                   d}t	        j
                  |       da Y d }~Sd }~ww xY w)Nr   z}CUDA Python bindings requested (the environment variable NUMBA_CUDA_USE_NVIDIA_BINDING is set), but they are not importable: .FzPTDS support is handled by CUDA Python when using the NVIDIA binding. Please set the environment variable CUDA_PYTHON_CUDA_PER_THREAD_DEFAULT_STREAM to 1 instead.)CUDA_USE_NVIDIA_BINDINGcudaImportErrorr:   r5   r6   CUDA_PER_THREAD_DEFAULT_STREAM)rN   r   ier:   s       r   r}   z_EnvReloader.validate   sm     #0 . ) * . #  0779vvhaA c"*/'0s   * 	A$'AA$c                   _ fd}d } |dt         d      } |dt         d      } |dt         d      } |dt         |      } |dt         d      } |d	t        d
      }	 |dt         d       }
 |dt         d      } |dt         d      } |dt         d      } |dt         d      } |dt        d      } |dt        d      } |dt        d      } |dt         d      } |dt         d      } |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#t         d      } |d$|d       _ |d%|t        _      j                         d&k(  rd nd       } |d't        t	        d(            } |d)t         |      }  |d*t         |      }! |d+t         |      }" |d,t         |xs |      }# |d-t         d      }$ |d.t         d      }% |d/t         d      }& |d0t         d      }' |d1t         d      }( |d2t         |      }) |d3t         |      }* |d4t         |      }+ |d5t         d      }, |d6t         d      }- |d7t         |      }. |d8t         d      }/ |d9t         d      }0d: }1 |d;|1d       }2_fd<}3 |d=t         |3      }4 |d>t         t
              }5 |d?t         d      }6 |d@dA g dB      }7 |dCt        dD      }8 |dEt        dF      }9 |dGt         d      }: |dHt        d       }; |dIt        dJ      }< |dKt         t        t        dLk(              }= |dMt         d      }> |dNt        d       }? |dOt         d      }@ |dPt         dQ      }A |dRt        dS      }B |dTt         d      }C |dUt        d       }D |dVt         dW      }E |dXt         d      }F |dYt         d      }G |dZt         d      }Ht        rEt        j                  j                  d[      }I|Ir!t        j                  j                  Id\      }Jn4d]}Jn1t        j                  j                  t        j                   d^d_d`d\      }J |dat        J      }Kdb }L |L       }M |dct         |M      }Ndct#               v r?t#               dc   Nk7  r/dddlm}O |Oj(                  rt+        deNdft#               dc   dg      N}P~Ndht        j                  v }Q |dit         t        |Q            }R |djt         |R      }S |dkt         d      }T |dlt         d      }Udm }V |dn|Vdo      }W |dpt        dD      }X |dqt         d      }Y |drt        |Yrdsnd       }Z |dtt         d       }[ |dut         d      }\t-               j/                         j1                         D ]#  \  }]}^|]j3                         s^t#               ]<   % y )vNc           
          j                  |       }|t        |      r |       S |S 	  ||      S # t        $ r: t        j                  d|  d| dt        j                          t               |cY S w xY w)NzEnvironment variable 'z'' is defined but its associated value 'z8' could not be parsed.
The parse failed with exception:
)getcallable	Exceptionr5   r6   	traceback
format_excRuntimeWarning)r   ctorr2   rH   rz   s       r   _readenvz._EnvReloader.process_environ.<locals>._readenv   s    KK%E}$,W$5wyB7BE{"  6tf =77<g >L!*!5!5!7 8: -	.
 s   2 A A54A5c                      | t        |       S d S rf   )r4   )xs    r   optional_strz2_EnvReloader.process_environ.<locals>.optional_str   s    ]3q644r   NUMBA_USE_RVSDG_FRONTENDr   NUMBA_DEVELOPER_MODE"NUMBA_DISABLE_PERFORMANCE_WARNINGSNUMBA_FULL_TRACEBACKSNUMBA_SHOW_HELPNUMBA_COLOR_SCHEMEno_colorNUMBA_BOUNDSCHECKNUMBA_ALWAYS_WARN_UNINIT_VAR!NUMBA_CUDA_LOW_OCCUPANCY_WARNINGSr	   NUMBA_CUDA_USE_NVIDIA_BINDINGNUMBA_DEBUGNUMBA_DEBUG_PRINT_AFTERnoneNUMBA_DEBUG_PRINT_BEFORENUMBA_DEBUG_PRINT_WRAPNUMBA_HIGHLIGHT_DUMPSNUMBA_DEBUG_JITNUMBA_DEBUG_FRONTENDNUMBA_DEBUG_NRTNUMBA_NRT_STATSNUMBA_FUNCTION_CACHE_SIZE   NUMBA_PARFOR_MAX_TUPLE_SIZEd   NUMBA_DEBUG_CACHENUMBA_CACHE_DIR NUMBA_TRACENUMBA_CHROME_TRACENUMBA_DEBUG_TYPEINFERNUMBA_CPU_NAMENUMBA_CPU_FEATURESgeneric	NUMBA_OPTr@   NUMBA_DUMP_BYTECODENUMBA_DUMP_CFGNUMBA_DUMP_IRNUMBA_DUMP_SSANUMBA_DEBUG_ARRAY_OPTNUMBA_DEBUG_ARRAY_OPT_RUNTIMENUMBA_DEBUG_ARRAY_OPT_STATSNUMBA_PARALLEL_DIAGNOSTICSNUMBA_DEBUG_INLINE_CLOSURENUMBA_DUMP_LLVMNUMBA_DUMP_FUNC_OPTNUMBA_DUMP_OPTIMIZEDNUMBA_LOOP_VECTORIZENUMBA_SLP_VECTORIZENUMBA_DUMP_ASSEMBLYNUMBA_DUMP_ANNOTATIONNUMBA_DIFF_IRc                 H    | | S t         j                  j                  |       S rf   )rp   rq   abspath)rq   s    r   fmt_html_pathz3_EnvReloader.process_environ.<locals>.fmt_html_path  s    |wwt,,r   NUMBA_DUMP_HTMLc                  f    t               syxs t        j                         } h d}|dhz  }| |vS )NF>   
core-avx-i
corei7-avx	ivybridgesandybridgenocona)r-   llget_host_cpu_name)cpu_namedisabled_cpusCPU_NAMEs     r   avx_defaultz1_EnvReloader.process_environ.<locals>.avx_default  sA    #% $=r';';'=!= (+}44r   NUMBA_ENABLE_AVXNUMBA_DISABLE_INTEL_SVMLNUMBA_DISABLE_JITNUMBA_THREADING_LAYER_PRIORITYc                 "    | j                         S rf   )r'   )strings    r   <lambda>z._EnvReloader.process_environ.<locals>.<lambda>  s
    6<<>r   )tbbomp	workqueueNUMBA_THREADING_LAYERr2   NUMBA_CAPTURED_ERRORSr0    NUMBA_CUDA_WARN_ON_IMPLICIT_COPYNUMBA_FORCE_CUDA_CCNUMBA_CUDA_DEFAULT_PTX_CC)   r   NUMBA_DISABLE_CUDAr   NUMBA_ENABLE_CUDASIMNUMBA_CUDA_LOG_LEVELNUMBA_CUDA_LOG_API_ARGS%NUMBA_CUDA_MAX_PENDING_DEALLOCS_COUNT
   %NUMBA_CUDA_MAX_PENDING_DEALLOCS_RATIOg?NUMBA_CUDA_ARRAY_INTERFACE_SYNCNUMBA_CUDA_DRIVERNUMBA_CUDA_LOG_SIZEi   NUMBA_CUDA_VERBOSE_JIT_LOG$NUMBA_CUDA_PER_THREAD_DEFAULT_STREAM-NUMBA_CUDA_ENABLE_MINOR_VERSION_COMPATIBILITY	CUDA_PATHincludecuda_include_not_foundusrlocalr   NUMBA_CUDA_INCLUDE_PATHc                      	 t         j                  } t        dt         | d                  S # t        $ r Y nw xY wt        j
                         }|t        d|      S y)Nr	   r   )rp   sched_getaffinityr?   rA   AttributeError	cpu_count)r   r  s     r   num_threads_defaultz9_EnvReloader.process_environ.<locals>.num_threads_default  sd    9$&$8$8! 1c"3A"6788 " 
 I$1i((s   - 	99NUMBA_NUM_THREADS)parallelzfCannot set NUMBA_NUM_THREADS to a different value once the threads have been launched (currently have z, trying to set rR   VS_PROFILERNUMBA_ENABLE_PROFILINGNUMBA_DEBUGINFONUMBA_CUDA_DEBUGINFONUMBA_EXTEND_VARIABLE_LIFETIMESc                 8    t        j                  |       }||S | S rf   )shutilwhich)path_or_bingdbs     r   	which_gdbz/_EnvReloader.process_environ.<locals>.which_gdb4  s    ,,{+C/3:{:r   NUMBA_GDB_BINARYr  NUMBA_CUDA_MEMORY_MANAGERNUMBA_LLVM_REFPRUNE_PASSNUMBA_LLVM_REFPRUNE_FLAGSall!NUMBA_USE_LLVMLITE_MEMORY_MANAGERNUMBA_LLVM_PASS_TIMINGS)r   r4   lowerrb   r=   	IS_32BITSr;   r   MACHINE_BITSfloatIS_WIN32rp   rz   r   rq   joinsepglobalsnumba.np.ufuncr  _is_initializedRuntimeErrorlocalscopyrx   isupper)`rN   rz   r   r   USE_RVSDG_FRONTENDDEVELOPER_MODEDISABLE_PERFORMANCE_WARNINGSFULL_TRACEBACKS	SHOW_HELPCOLOR_SCHEMEBOUNDSCHECKALWAYS_WARN_UNINIT_VARCUDA_LOW_OCCUPANCY_WARNINGSr   DEBUGDEBUG_PRINT_AFTERDEBUG_PRINT_BEFOREDEBUG_PRINT_WRAPHIGHLIGHT_DUMPS	DEBUG_JITDEBUG_FRONTEND	DEBUG_NRT	NRT_STATSFUNCTION_CACHE_SIZEPARFOR_MAX_TUPLE_SIZEDEBUG_CACHE	CACHE_DIRTRACECHROME_TRACEDEBUG_TYPEINFERCPU_FEATURESOPTDUMP_BYTECODEDUMP_CFGDUMP_IRDUMP_SSADEBUG_ARRAY_OPTDEBUG_ARRAY_OPT_RUNTIMEDEBUG_ARRAY_OPT_STATSPARALLEL_DIAGNOSTICSDEBUG_INLINE_CLOSURE	DUMP_LLVMDUMP_FUNC_OPTDUMP_OPTIMIZEDLOOP_VECTORIZESLP_VECTORIZEDUMP_ASSEMBLYANNOTATEDIFF_IRr   HTMLr   
ENABLE_AVXDISABLE_INTEL_SVMLDISABLE_JITTHREADING_LAYER_PRIORITYTHREADING_LAYERCAPTURED_ERRORSCUDA_WARN_ON_IMPLICIT_COPYFORCE_CUDA_CCCUDA_DEFAULT_PTX_CCDISABLE_CUDAENABLE_CUDASIMCUDA_LOG_LEVELCUDA_LOG_API_ARGSCUDA_DEALLOCS_COUNTCUDA_DEALLOCS_RATIOCUDA_ARRAY_INTERFACE_SYNCCUDA_DRIVERCUDA_LOG_SIZECUDA_VERBOSE_JIT_LOGr   'CUDA_ENABLE_MINOR_VERSION_COMPATIBILITY	cuda_pathdefault_cuda_include_pathCUDA_INCLUDE_PATHr  NUMBA_DEFAULT_NUM_THREADS_NUMBA_NUM_THREADSr  r  RUNNING_UNDER_PROFILERENABLE_PROFILINGDEBUGINFO_DEFAULTCUDA_DEBUGINFO_DEFAULTEXTEND_VARIABLE_LIFETIMESr  
GDB_BINARYCUDA_MEMORY_MANAGERLLVM_REFPRUNE_PASSLLVM_REFPRUNE_FLAGSUSE_LLVMLITE_MEMORY_MANAGERLLVM_PASS_TIMINGSr   rH   r   s`    `                                                                                             @r   r{   z_EnvReloader.process_environ   s   		5 &&@#qI ""8#qA (00#q(:$ ##S.: .Q7	   4c:F
 2C>
 "**C"
 '//a'9# #++S!#5 Q/ %%>VL &&@#vN $$<c6J ##:CC .Q7	 ""8#qA .Q7	 .Q7	 ''BCM !))F),c!3 2C? .R8	 Q/   4c2> ##:CC
 ,lDA 4l'*8}':':'<	'I&*- {$6	!E !!6^L ,c>B ?C)+ ,c*=o? ##:CC #++S!#5 !))FQ O  ((Dc1M  ((Dc1M .U;	 !!6UC ""8#uE ""8#qA !!6Q? !!6UC 3S!< ?C3	- )=$?	5$ 0#{C
 &&Y8 2C; $,,)'$
 
 ##:CK"#:#B#.0 &..Q&8" !!6	4H ''BI'-/   4 #S);%<> ""8#qA ""8#rB %%>QG ''N'*B0 ''N',c3 %--N-0!%5! 2C< !!6TB  ((Dc1M *22C*<& 3;;S!3E/ 

{3I,.GGLLI,N),D)(*RVVUG5;Y)H%$%>%>@	 %8$9! &&93&?A79,I126HH/''" %7$+I.A$B$D E E /
 "/"**!< $$c3/E+FH %%6=MN!)*@#q!I$,-N-0!%5!	; 0)UC
 ''BC'02 &&Q
 '''ER
 '//d'
# %%sA

 "8==?002KD%||~"'	$ 3r   N)F)rV   rW   rX   rh   rg   rl   r}   r{    r   r   rd   rd      s     B**I(r   rd   c                  ,    t         j                          y)zL
    Reload the configuration from environment variables, if necessary.
    N)_env_reloaderrl   rv  r   r   reload_configry  \  s     r   )"r    r   rp   r
   r  r5   r   rv   ru   r   llvmlite.bindingbindingr   r!   r  IS_OSXtuple__itemsize__r  r  version_info	PYVERSIONrs   r   r-   r7   r;   r   r=   rb   objectrd   rx  ry  rv  r   r   <module>r     s     
 	 	   J
  <<""7+		 	 	*!!A%B	Ra 	 %( 6w $# #@$H(6 H(V _  Js   B4 4B>=B>