
    J/Ph4X                        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n# e	$ r dZY nw xY wd dl
mZ ej                             d          Ze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dS )    NTFwin32darwin          z.numba_config.yamlc                     | sdS t          j        d|           }|st          d          |                                }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      Q/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/core/config.py	_parse_ccr      so      	(tH_d++ 	7 6 7 7 7 hhjj3q6{{CAKK''    c                     t           j                            d          rt          j                    dvrdS 	 t	          dd          } n# t
          $ r Y dS w xY w| 5  | D ]W}|                    d          \  }}}|                                dk    r$d|                                v r d	d	d	           dS X	 d	d	d	           d
S # 1 swxY w Y   d	S )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-   /   sV    L##G,, !!)KKKt#&&   tt 
   	 	D NN3//MD!Tzz||w&&5DJJLL+@+@	                         s*   A	 	
AAAC6CC	C	c                   >     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                      j        | |fi |}|dk    r|n||_        |S )Nr	   max   )lenr   super__new__
_raw_value)clsargskwargsvalue
_int_valuenew	__class__s         r   r5   z_OptLevel.__new__Q   sk    4yyA~~~~5..QQc%jj
eggoc:8888"'5..j
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                 h    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   sB    dos++ 	"(do(((CC/C"C""""r   )	__name__
__module____qualname____doc__r5   propertyrA   rH   __classcell__)r=   s   @r   r/   r/   I   sl        = =     ( ( X(
# # # # # # #r   r/   c                 R    | 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   sC    333"   oo###r   c                   .    e Zd Zd Zd ZddZd Zd ZdS )	_EnvReloaderc                 .    |                                   d S N)resetr?   s    r   __init__z_EnvReloader.__init__v   s    

r   c                 @    i | _         |                     d           d S )NT)force)old_environupdater?   s    r   r[   z_EnvReloader.resety   s$    $r   Fc                    i }t           j                            t                    rt           j                            t                    rt
          sd}t          j        |           nwt          t          d          5 }t          j
        |          }d d d            n# 1 swxY w Y   |4|                                D ]\  }}||d|                                z   <    t           j                                        D ]\  }}	|                    d          r|	||<    |s| j        |k    r)|                     |           t#          |          | _        |                                  d S )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    7>>-(( 	>RW^^M-J-J 	> >1 c""""-.. /!!^A..F/ / / / / / / / / / / / / / /% & > >1<=Hqwwyy$899 :++-- 	* 	*KD%x(( *$)D!
  	1D$33  ---#K00Ds   >BB#&B#c                     t           r[	 dd l}n8# t          $ r+}d|j         d}t	          j        |           da Y d }~nd }~ww xY wt          rt	          j        d           d S d S d S )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   s     # 	*0 0 0 0A79vA A A c"""*/''''''0 . * ) * * * * *	* 	** *s    
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          `                                          d&k    rd nd           } |d't          t	          d(                    } |d)t           |          }  |d*t           |          }! |d+t           |          }" |d,t           |p|          }# |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                            dY          }H|Hr!t          j                            |HdZ          }In0d[}In-t          j                            t          j        d\d]d^dZ          }I |d_t          |I          }Jd` }K |K            }L |dat           |L          }Mdat!                      v rMt!                      da         |Mk    r5d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+                                                                                      D ]*\  }^}_|^                                r|_t!                      |^<   +d S )vNc           
                              |           }|t          |          r
 |            n|S 	  ||          S # t          $ r9 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$5$5Bwwyyy7BtE{{"    :t : :7<: : "+!5!7!7: : -	. . .
 s   
A   A BBc                 (    | t          |           nd S rZ   )rF   )xs    r   optional_strz2_EnvReloader.process_environ.<locals>.optional_str   s    ]3q666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                            |           S rZ   )rd   re   abspath)re   s    r   fmt_html_pathz3_EnvReloader.process_environ.<locals>.fmt_html_pathi  s     |wt,,,r   NUMBA_DUMP_HTMLc                  j    t                      sdS p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  sU    #%% 5u $=r';'='=!= != != (+}44r   NUMBA_ENABLE_AVXNUMBA_DISABLE_INTEL_SVMLNUMBA_DISABLE_JITNUMBA_THREADING_LAYER_PRIORITYc                 *    |                                  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 dS )Nr	   r   )rd   sched_getaffinityr1   r3   AttributeError	cpu_count)r   r   s     r   num_threads_defaultz9_EnvReloader.process_environ.<locals>.num_threads_default  s    9$&$8! 1c"3"3A"6"677888 "   
 I$1i(((1s   4 
A A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                 6    t          j        |           }||n| S rZ   )shutilwhich)path_or_bingdbs     r   	which_gdbz/_EnvReloader.process_environ.<locals>.which_gdb  s    ,{++C/33{: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 	5 	5 "**C"
 "

 ""8#qAA (0x0#q(: (:$ #(#S.: : H.Q77	  x 4c:FF
 h2C>>
 "**C"
 "
 '/h/a'9 '9# #+(+S!#5 #5 Q// %H%>VLL &X&@#vNN $8$<c6JJ #(#:CCC H.Q77	 ""8#qAA H.Q77	 H.Q77	 'h'BCMM !))F),c!3 !3 h2C?? H.R88	 Q//  x 4c2>> #(#:CCC
 8,lDAAx 4l'*8}}':':'<'<	'I'I&*- - h{$6	!EE !!6^LL 8,c>BB (?C)+ + 8,c*=o? ? #(#:CCC #+(+S!#5 #5 !))FQ O O  (x(Dc1MM  (x(Dc1MM H.U;;	 !!6UCC ""8#uEE ""8#qAA !!6Q?? !!6UCC 83S!<< (?C33	- 	- 	- x)=$??	5 	5 	5 	5 	5$ X0#{CC
 &X&Y8 8 h2C;; $,8,))'''$
 $
 
 #(#:CKK &.X.Q&8 &8" !!6	4HH 'h'BI'-/ /  x 4 #S);%<%<> > ""8#qAA ""8#rBB %H%>QGG 'h'N'*B0 0 'h'N',c3 3 %-H-N-0!%5 %5! h2C<< !!6TBB  (x(Dc1MM *22C*< *<& 3;(;S!3E 3E/  	H
{33I E,.GLLI,N,N)),D))(*RVUG5;Y)H )H%$H%>%>@ @	 	 	 %8$7$9$9! &X&93&?A A799,,II126HHH//////' E"l %7$6$6$+II.A$B$B$B$D E E E / !))F),a!1 !1 "/"*!< $8$c3/E+F+FH H %H%6=MNN!)*@#q!I!I$,H-N-0!%5 %5!	; 	; 	; X0)UCC
 'h'BC'02 2 &X&Q
 
 'h''/EER
 
 '/h/d'
 '
# %H%sA
 
  x #q
 

 "88==??0022 	( 	(KD%||~~ ("'		$	( 	(r   N)F)rI   rJ   rK   r\   r[   r`   rs   rq    r   r   rX   rX   t   sj                  B* * **S( S( S( S( S(r   rX   c                  8    t                                            dS )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    



 				 				      KKKJJ   JJJ       <""7++		 	 	*	*!A%B	RaR 	 %( ( (   4# # # # # # # #@$ $ $R( R( R( R( R(6 R( R( R(j     s   % //