
    qh4X                     x   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 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      K/var/www/html/engine/venv/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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   r5   z_OptLevel.__new__Q   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.r1   )r6   selfs    r   
is_opt_maxz_OptLevel.is_opt_max[   s     %''r   c                 |    t        | j                  t              rd| j                   d}n| j                  }d| dS )N'z
_OptLevel())
isinstancer6   str)r@   args     r   __repr__z_OptLevel.__repr__a   s;    doos+doo&a(C//CC5""r   )	__name__
__module____qualname____doc__r5   propertyrA   rH   __classcell__)r=   s   @r   r/   r/   I   s&    = ( (
#r   r/   c                 B    | dvrd|  d}t        |      t        |       S )N)0123r1   zAEnvironment variable `NUMBA_OPT` is set to an unsupported value 'z-', supported values are 0, 1, 2, 3, and 'max')r   r/   )	opt_levelmsgs     r   _process_opt_levelrV   i   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)resetr?   s    r   __init__z_EnvReloader.__init__v   s    

r   c                 6    i | _         | j                  d       y )NT)force)old_environupdater?   s    r   r[   z_EnvReloader.resety   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_YAMLwarningswarnr#   yaml	safe_loaditemsupperenvironr!   r_   process_environdictvalidate)
r@   r^   new_environrU   r(   y_confkvnamer:   s
             r   r`   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ImportErrorrU   rj   rk   CUDA_PER_THREAD_DEFAULT_STREAM)r@   r|   ierU   s       r   rs   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         d      }9 |dFt        d       }: |dGt        dH      }; |dIt         t        t        dJk(              }< |dKt         d      }= |dLt        d       }> |dMt         d      }? |dNt         dO      }@ |dPt        dQ      }A |dRt         d      }B |dSt        d       }C |dTt         dU      }D |dVt         d      }E |dWt         d      }F |dXt         d      }Gt        rEt        j                  j                  dY      }H|Hr!t        j                  j                  HdZ      }In4d[}In1t        j                  j                  t        j                  d\d]d^dZ      }I |d_t        I      }Jd` }K |K       }L |dat         |L      }Mdat!               v r?t!               da   Mk7  r/ddblm}N |Nj&                  rt)        dcMddt!               da   de      M}O~M |dft         d      }Pdgt        j                  v }Q |dht         t        |Q            }R |dit         |R      }S |djt         d      }T |dkt         d      }Udl }V |dm|Vdn      }W |dot        dD      }X |dpt         d      }Y |dqt        |Yrdrnd       }Z |dst         d       }[ |dtt         d      }\ |dut         d      }]t+               j-                         j/                         D ]#  \  }^}_|^j1                         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	Exceptionrj   rk   	traceback
format_excRuntimeWarning)rx   ctordefaultr:   rp   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 rZ   )rF   )xs    r   optional_strz2_EnvReloader.process_environ.<locals>.optional_str   s    ]3q644r   NUMBA_USE_LEGACY_TYPE_SYSTEMr	   NUMBA_DEVELOPER_MODEr   "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_WARNINGS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_OPTr2   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 rZ   )rd   re   abspath)re   s    r   fmt_html_pathz3_EnvReloader.process_environ.<locals>.fmt_html_pathi  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_defaults  sA    #% $=r';';'=!= (+}44r   NUMBA_ENABLE_AVXNUMBA_DISABLE_INTEL_SVMLNUMBA_DISABLE_JITNUMBA_THREADING_LAYER_PRIORITYc                 "    | j                         S rZ   )r'   )strings    r   <lambda>z._EnvReloader.process_environ.<locals>.<lambda>  s    6<<> r   )tbbomp	workqueueNUMBA_THREADING_LAYERr    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   )rd   sched_getaffinityr1   r3   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 rD   NUMBA_ENABLE_SYS_MONITORINGVS_PROFILERNUMBA_ENABLE_PROFILINGNUMBA_DEBUGINFONUMBA_CUDA_DEBUGINFONUMBA_EXTEND_VARIABLE_LIFETIMESc                 8    t        j                  |       }||S | S rZ   )shutilwhich)path_or_bingdbs     r   	which_gdbz/_EnvReloader.process_environ.<locals>.which_gdb  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NUMBA_JIT_COVERAGE)r   rF   lowerrV   r/   	IS_32BITSr   MACHINE_BITSfloatIS_WIN32rd   rp   r   re   joinsepglobalsnumba.np.ufuncr   _is_initializedRuntimeErrorlocalscopyrn   isupper)ar@   rp   r   r   USE_LEGACY_TYPE_SYSTEM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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   ENABLE_SYS_MONITORING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_TIMINGSJIT_COVERAGErx   r:   r   sa    `                                                                                              @r   rq   z_EnvReloader.process_environ   s*   		5 "**C"

 ""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 &..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 / !))F),a!1 "/"**!< $$c3/E+FH %%6=MN!)*@#q!I$,-N-0!%5!	; 0)UC
 ''BC'02 &&Q
 '''ER
 '//d'
# %%sA
   #q

 "8==?002 	(KD%||~"'	$	(r   N)F)rI   rJ   rK   r\   r[   r`   rs   rq    r   r   rX   rX   t   s     B**S(r   rX   c                  ,    t         j                          y)zL
    Reload the configuration from environment variables, if necessary.
    N)_env_reloaderr`   ro  r   r   reload_configrr  L  s     r   ) r    r   rd   r
   r  rj   r   rl   ri   r}   llvmlite.bindingbindingr   r!   r  IS_OSXtuple__itemsize__r  r  version_info	PYVERSIONrg   r   r-   r   r/   rV   objectrX   rq  rr  ro  r   r   <module>r{     s     
 	 	   J
  <<""7+		 	 	*!!A%B	Ra 	 %( 4# #@$R(6 R(j   Js   B/ /B98B9