
    J/PhV                        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 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 dlmZ d dlmZ d dlmZ d dlZd dlmZ d dlmZ d dlmZ d dlm Z m!Z!m"Z" d d	l#m$Z$ d d
l#mZ d dl%m&Z&m'Z'm(Z(m)Z) d Z*ej+        fdZ,i dej-        dej.        dej/        dej0        dej1        dej2        dej3        dej4        dej5        dej6        dej7        dej8        dej9        dej:        dej;        dej<        dej=        ej>        ej?        ej@        ejA        ejB        dZCejD        ejE        ejF        ejG        ejH        ejI        ejJ        ejK        ejL        ejM        ejN        ejO        ejP        d ZQi eCeQZRejS        ejT        ejU        ejV        ejW        d!ZXi ej-        dejD        d"ej.        dejE        d#ej/        dejF        d$ej0        dejG        d%ej1        dejH        d&ej2        dejI        d'ej3        dejJ        d(ej4        dejK        d)ej5        di ejL        d*ej6        dejM        d+ej7        dejN        d,ej8        dejO        d-ej9        dej:        dej;        dej<        dej=        dej>        d.ej?        d/ej@        d0ejA        d1ejS        dejT        dejU        d2ejV        d3ejW        d4iZYd5aZd6 Z[e\fd7Z] e
j^        d8 d9             e j_        e[            G d: d;          Z` G d< d=ea          Zbded?Zc ejd        d@          Ze G dA dBe(ee                   Zf G dC dDe(ee         ejg        ee                   Zh ejd        dE          Zi ejd        dF          Zj G dG dHe&eiejf         ejg        eiejf                   Zk G dI dJe)eiejf         ejg        eiejf                   Zl G dK dLem          ZndM ZodN ZpdO Zq G dP dQea          ZrdR ZsdfdTZtdUZu eeu          Zveev_w        dV ZxdW ZydX ZzdgdZZ{ G d[ d\e          Z|d] Z} G d^ d_ej~                  Zd` Z G da dbea          Z G dc ddej                  ZdS )h    N)pformat)
ModuleType)import_module)	signature)	Signature)	Parameter)	PYVERSIONMACHINE_BITSDEVELOPER_MODE)config)types)MappingSequence
MutableSetMutableMappingc                 l    | j         t          j        | j                    |                     d          S )zS
    Erase the traceback and hanging locals from the given exception instance.
    N)__traceback__	tracebackclear_frameswith_traceback)	exc_values    P/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/core/utils.pyerase_tracebackr   #   s5     *y6777##D)))    c                     d } ||           } ||          }||k    rt           j                            |           S t           j                            | |          S )z
    Produces a "safe" relative path, on windows relpath doesn't work across
    drives as technically they don't share the same root.
    See: https://bugs.python.org/issue7195 for details.
    c                     t           j                            t           j                            |                     d         S )Nr   )ospath
splitdriveabspath)xs    r   <lambda>zsafe_relpath.<locals>.<lambda>4   s)    RW//0B0BCCAF r   )start)r   r   r    relpath)r   r#   drive_letter
drive_pathdrive_starts        r   safe_relpathr(   ,   sb     GFLd##J,u%%K[  wt$$$wt5111r   +-*z///%z**&|^z<<z>>z==z!=<z<=>)>=isis notin@)+=-=*=//=/=%=**=&=|=^=<<=>>=z@=)r)   r*   ~notis_truer8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   r3   r4   r5   r6   rD   rE   rF   Fc                  
    da d S NT)_shutting_down r   r   _at_shutdownrK      s    NNNr   c                 L     |                                  d          }|du p|du S )a  
    Whether the interpreter is currently shutting down.
    For use in finalizers, __del__ methods, and similar; it is advised
    to early bind this function rather than look it up when calling it,
    since at shutdown module globals may be cleared.
    rI   TN)get)globalsvs     r   shutting_downrP      s/     			&''A9!T	!r   c                      d S NrJ   rJ   r   r   r"   r"      s     r   c                      d S rR   rJ   rJ   r   r   r"   r"      s    t r   c                        e Zd ZU dZ ej                    Zeed<   i Z	 fdZ
d Zd Zd Zd Zd Zej        d	             Z xZS )
ThreadLocalStackz`A TLS stack container.

    Uses the BORG pattern and stores states in threadlocal storage.
    
stack_namec                     t                      j        di | || j        vsJ d| d            || _        | | j        |<   d S )Nzstack_name: 'z' already in userJ   )super__init_subclass___registeredrV   )clsrV   kwargs	__class__s      r   rY   z"ThreadLocalStack.__init_subclass__   sb    !!++F+++0008J888 100#&)
###r   c                     t          |           t          usJ | j        }d| j         }	 t	          ||          }n/# t
          $ r" t                      }t          |||           Y nw xY w|| _        d S )Nstack_)	typerU   _tlsrV   getattrAttributeErrorlistsetattr_stack)selftlsattr	tls_stacks       r   __init__zThreadLocalStack.__init__   s    Dzz!11111i)))	*T**II 	* 	* 	*ICy)))))	*  s   < )A('A(c                 :    | j                             |           dS )zPush to the stack
        N)rf   appendrg   states     r   pushzThreadLocalStack.push   s      	5!!!!!r   c                 4    | j                                         S )zPop from the stack
        )rf   poprg   s    r   rr   zThreadLocalStack.pop   s     {   r   c                     | j         d         S )zGet the top item on the stack.

        Raises IndexError if the stack is empty. Users should check the size
        of the stack beforehand.
        )rf   rs   s    r   topzThreadLocalStack.top   s     {2r   c                 *    t          | j                  S rR   )lenrf   rs   s    r   __len__zThreadLocalStack.__len__   s    4;r   c              #      K   |                      |           	 dV  |                                  dS # |                                  w xY w)zXA contextmanager that pushes ``state`` for the duration of the
        context.
        N)rp   rr   rn   s     r   enterzThreadLocalStack.enter   sK      
 			%	EEEHHJJJJJDHHJJJJs	   3 A	)__name__
__module____qualname____doc__	threadinglocalra   str__annotations__rZ   rY   rk   rp   rr   rv   ry   
contextlibcontextmanagerr{   __classcell__r]   s   @r   rU   rU      s           9?DOOOK* * * * *     " " "
! ! !
              r   rU   c                   `     e Zd Zi Zd ZddZd Zd Zd Z fdZ	d Z
d	 Zd
 Zd Zd Z xZS )ConfigOptionsc                 B    | j                                         | _        d S rR   )OPTIONScopy_valuesrs   s    r   rk   zConfigOptions.__init__  s    |((**r   Tc                 P    || j         vrt          d|z            || j        |<   d S NzInvalid flag: %s)r   	NameErrorr   )rg   namevalues      r   setzConfigOptions.set  s5    t|##.5666"Tr   c                 2    |                      |d           d S )NF)r   rg   r   s     r   unsetzConfigOptions.unset  s    ur   c                 <    || j         vrt          d|z            d S r   )r   rc   r   s     r   _check_attrzConfigOptions._check_attr  s+    t|## !3d!:;;; $#r   c                 F    |                      |           | j        |         S rR   )r   r   r   s     r   __getattr__zConfigOptions.__getattr__  s#    |D!!r   c                     |                     d          r+t          t          |                               ||           d S |                     |           || j        |<   d S )N_)
startswithrX   r   __setattr__r   r   )rg   r   r   r]   s      r   r   zConfigOptions.__setattr__  sc    ??3 	'-&&224?????T"""!&DLr   c                 t    dd                     d | j                                        D                       z  S )Nz	Flags(%s)z, c              3   2   K   | ]\  }}|d u	|d|V  dS )F=NrJ   .0krO   s      r   	<genexpr>z)ConfigOptions.__repr__.<locals>.<genexpr>  sC       ': ':+/1a*+5.. 34!!QQ'7*8...': ':r   )joinr   itemsrs   s    r   __repr__zConfigOptions.__repr__  sI    TYY ': ':37<3E3E3G3G': ': ': : : : 	:r   c                 p     t          |                       }| j                                        |_        |S rR   )r`   r   r   )rg   r   s     r   r   zConfigOptions.copy"  s-    tDzz|||((**r   c                 L    t          |t                    o|j        | j        k    S rR   )
isinstancer   r   rg   others     r   __eq__zConfigOptions.__eq__'  s%    5-00 .-	/r   c                     | |k     S rR   rJ   r   s     r   __ne__zConfigOptions.__ne__+  s    5=  r   c                     t          t          t          | j                                                                      S rR   )hashtuplesortedr   r   rs   s    r   __hash__zConfigOptions.__hash__.  s.    E&!3!3!5!56677888r   T)r|   r}   r~   r   rk   r   r   r   r   r   r   r   r   r   r   r   r   s   @r   r   r      s        G+ + +# # # #
  < < <" " "' ' ' ' ': : :
  
/ / /! ! !9 9 9 9 9 9 9r   r    c                     |g k    rg S ddl m} d}g }t          |          D ]c\  }}t          |di           }|                    d|          }	|	5||	         }
                     |
          r|                    ||
|f           d fd}d t          ||	          D             }|sd
| d  d}ddlm	}  ||          |S )zThis orders the given templates from most to least specific against the
    current "target". "fnkey" is an indicative typing key for use in the
    exception message in the case that there's no usable templates for the
    current "target".
    r   )target_registrygenericmetadatatargetNc                 D    j                             | d                   S N   )__mro__index)r!   r   s    r   keyz(order_by_target_specificity.<locals>.keyL  s    ~##AaD)))r   c                     g | ]
}|d          S )r   rJ   )r   r!   s     r   
<listcomp>z/order_by_target_specificity.<locals>.<listcomp>N  s    333aQqT333r   )r   z:Function resolution cannot find any matches for function 'z' for the current target: 'z'.)UnsupportedError)
numba.core.target_extensionr   	enumeraterb   rM   inherits_fromrm   r   numba.core.errorsr   )r   	templatesfnkeyr   DEFAULT_TARGETusableixtemp_clsmdhwhw_clazzr   ordermsgr   s   `              r   order_by_target_specificityr   2  sD    B	;;;;;; NF!),, 8 8HXz2..VVHn-->&r*H##H-- 8x26777* * * * *336&c222333E $@@ @5;@ @ @666666s###Lr   Tc                   P    e Zd Zd
dej        e         fdZd Zd Zd Z	d Z
d Zd	S )
OrderedSetrJ   iterablec                 F    t                               |d           | _        d S rR   )dictfromkeys_data)rg   r   s     r   rk   zOrderedSet.__init__^  s    ]]8T22


r   c                     || j         v S rR   r   )rg   r   s     r   __contains__zOrderedSet.__contains__b  s    dj  r   c                 *    t          | j                  S rR   )iterr   rs   s    r   __iter__zOrderedSet.__iter__e  s    DJr   c                 *    t          | j                  S rR   )rx   r   rs   s    r   ry   zOrderedSet.__len__h  s    4:r   c                     d | j         |<   d S rR   r   rg   items     r   addzOrderedSet.addk  s    
4r   c                 <    | j                             |d            d S rR   )r   rr   r   s     r   discardzOrderedSet.discardn  s    
tT"""""r   NrJ   )r|   r}   r~   _tpIterabler   rk   r   r   ry   r   r   rJ   r   r   r   r   \  s        3 3a 3 3 3 3! ! !            # # # # #r   r   c                   p    e Zd ZdZddej        e         fdZd Zd Z	dede
fd	Zdefd
ZdefdZd ZdS )MutableSortedSetzMutable Sorted Set
    rJ   valuesc                 .    t          |          | _        d S rR   )r   r   rg   r   s     r   rk   zMutableSortedSet.__init__v  s    6{{r   c                 *    t          | j                  S rR   rx   r   rs   s    r   ry   zMutableSortedSet.__len__y      4<   r   c                 X    t          d t          | j                  D                       S )Nc              3      K   | ]}|V  d S rR   rJ   r   r   s     r   r   z,MutableSortedSet.__iter__.<locals>.<genexpr>}  s"      44!A444444r   )r   r   r   rs   s    r   r   zMutableSortedSet.__iter__|  s)    44vdl33444444r   r!   returnc                 6    | j                             |          S rR   )r   r   rg   r!   s     r   r   zMutableSortedSet.__contains__  s    |((+++r   c                 6    | j                             |          S rR   )r   r   r   s     r   r   zMutableSortedSet.add  s    |"""r   r   c                 :    | j                             |           d S rR   )r   r   )rg   r   s     r   r   zMutableSortedSet.discard  s    U#####r   c                 :    | j                             |           d S rR   )r   updater   s     r   r   zMutableSortedSet.update  s    F#####r   Nr   )r|   r}   r~   r   r   r   r   rk   ry   r   boolr   r   r   r   rJ   r   r   r   r   r  s         # #s|A # # # #! ! !5 5 5,a ,D , , , ,#Q # # # #$Q $ $ $ $$ $ $ $ $r   r   TkTvc                   *    e Zd ZdZd Zd Zd Zd ZdS )	SortedMapzImmutable
    c                     g | _         i | _        t          t          |                    D ].\  }\  }}|| j        |<   | j                             ||f           /d S rR   )r   _indexr   r   rm   )rg   seqir   rO   s        r   rk   zSortedMap.__init__  sg    "6#;;// 	( 	(IAv1DKNLA''''	( 	(r   c                 B    | j         |         }| j        |         d         S r   )r  r   )rg   r   r  s      r   __getitem__zSortedMap.__getitem__  s    KN|Aq!!r   c                 *    t          | j                  S rR   r   rs   s    r   ry   zSortedMap.__len__  r   r   c                 >    t          d | j        D                       S )Nc              3       K   | ]	\  }}|V  
d S rR   rJ   r   s      r   r   z%SortedMap.__iter__.<locals>.<genexpr>  s&      //$!QA//////r   )r   r   rs   s    r   r   zSortedMap.__iter__  s!    //$,//////r   N)r|   r}   r~   r   rk   r
  ry   r   rJ   r   r   r  r    sZ         ( ( (" " "! ! !0 0 0 0 0r   r  c                   Z    e Zd ZddZdedefdZdedefdZdefdZde	fd	Z
de	fd
ZdS )MutableSortedMapNc                     |i }|| _         d S rR   _dct)rg   dcts     r   rk   zMutableSortedMap.__init__  s    ;C"%			r   r   r   c                     | j         |         S rR   r  rg   r   s     r   r
  zMutableSortedMap.__getitem__  s    y|r   rO   c                     || j         |<   d S rR   r  )rg   r   rO   s      r   __setitem__zMutableSortedMap.__setitem__  s    	!r   c                     | j         |= d S rR   r  r  s     r   __delitem__zMutableSortedMap.__delitem__  s    IaLLLr   c                 *    t          | j                  S rR   )rx   r  rs   s    r   ry   zMutableSortedMap.__len__  s    49~~r   c                 X    t          d t          | j                  D                       S )Nc              3      K   | ]}|V  d S rR   rJ   r   s     r   r   z,MutableSortedMap.__iter__.<locals>.<genexpr>  s"      11!A111111r   )r   r   r  rs   s    r   r   zMutableSortedMap.__iter__  s)    11vdi00111111r   rR   )r|   r}   r~   rk   r  r  r
  r  r  intry   r   rJ   r   r   r  r    s        & & & &
R B    R B    R        2# 2 2 2 2 2 2r   r  c                        e Zd Z fdZ xZS )
UniqueDictc                     || v rt          d|          t          t          |                               ||           d S )Nzkey already in dictionary: )AssertionErrorrX   r  r  )rg   r   r   r]   s      r   r  zUniqueDict.__setitem__  sG    $;; .CC!IJJJj$++C77777r   )r|   r}   r~   r  r   r   s   @r   r  r    s8        8 8 8 8 8 8 8 8 8r   r  c                 X     t          j                    fd            d_        S )Nc                  P    j         s             } | _        d_         j        S rH   )_ran_result)resfninners    r   r(  zrunonce.<locals>.inner  s.    z 	"$$CEMEJ}r   F)	functoolswrapsr$  )r'  r(  s   `@r   runoncer+    sE    _R      EJLr   c                     t          | t                    sJ | dk    rt          t          |                     dz
  S t          t          |  dz
                      dz
  S )zL
    Return the number of bits necessary to represent integer `intval`.
    r      r   )r   r  rx   bin)intvals    r   
bit_lengthr0    s]     fc"""""{{3v;;!##3w{##$$q((r   c              #   X    K    fd}d}	 t                     } |||          V  |} )a  
    Given a list, return an infinite iterator of iterators.
    Each iterator iterates over the list from the last seen point up to
    the current end-of-list.

    In effect, each iterator will give the newly appended elements from the
    previous iterator instantiation time.
    c                 2    t          | |                   S rR   )r   )r#   stoplsts     r   sublist_iteratorz%stream_list.<locals>.sublist_iterator  s    Cd
O$$$r   r   )rx   )r4  r5  r#   r3  s   `   r   stream_listr6    sZ      % % % % % E3xxud+++++r   c                       e Zd Zd Zd ZdS )BenchmarkResultc                     || _         || _        t          j        |          |z  | _        t          j        | j                  | _        d S rR   )funcloopnparrayrecordsminbest)rg   r:  r>  r;  s       r   rk   zBenchmarkResult.__init__  s=    		x((4/F4<((			r   c                     t          | j        d| j                  }|| j        | j        j        t          | j                  f}d|z  S )Nr|   z)%20s: %10d loops, best of %d: %s per loop)rb   r:  r;  r>  sizeformat_timer@  )rg   r   argss      r   r   zBenchmarkResult.__repr__  sA    ty*di88di!2K	4J4JK:TAAr   N)r|   r}   r~   rk   r   rJ   r   r   r8  r8    s7        ) ) )B B B B Br   r8  c                     d                                 }d}|d d         D ]}| |k    r n|dz  }|d         }d| |z  |fz  S )Nzs ms us ns psr   ru   i  z%.1f%s)split)tmunitsbaseunits       r   rC  rC    se    !!##EDcrc
  ::ERyrDy$'''r   r   c                 0   t          j        |           }d}|                    d|          }t          |          |z  dk    r1|dz  }|                    d|          }t          |          |z  dk    1t          |          |z  }||k    rt	          | ||          S |dz  |z  }t          ||z  dz  d          }t          dt          j        t          j	        |                    z            }|                    d|          }t	          | ||          S )Nr   r   
      )
timeitTimerrepeatr?  r8  maxr  mathceillog10)r:  maxsectimernumberresultr@  max_per_run_timer>  s           r   	benchmarkrZ    s   LEF\\!V$$F
f++
!
#
#"a(( f++
!
#
# v;;Dv~~tVV444zF*!D(1,a00FtyF!3!344455Fll1f%%G4&111r   z	<dynamic>c                 "    t           r|| _        | S )z{Set the __cause__ attribute on *new_exc* for explicit exception
    chaining.  Returns the inplace modified *new_exc*.
    )r   	__cause__)new_excold_excs     r   chain_exceptionr_  !  s      $#Nr   c                     t          |           }d}d}|j                                        D ]!}|dz  }|j        t          j        k    r|dz  }"||fS )zWReturn the minimal and maximal number of Python function
    positional arguments.
    r   r   )pysignature
parametersr   defaultinspect_empty)pyfuncsig	min_nargs	max_nargsps        r   get_nargs_rangerk  *  se     f

CII^""$$  Q	9&&NIir   c                 N    t          |           }|| S |ft          |           z  S )a  Return a normalized tuple of Numba function types so that

        Tuple(numba_types)

    becomes

        UniTuple(dtype=<unified function type>, count=len(numba_types))

    If the above transformation would be incorrect, return the
    original input as given. For instance, if the input tuple contains
    types that are not function or dispatcher type, the transformation
    is considered incorrect.
    )unified_function_typerx   )numba_typesdtypes     r   unify_function_typesrp  8  s1     "+..E}8c+&&&&r   Tc                    ddl m} t          | t                    r?t	          |           dk    r,t          | d         t
          j        t
          j        f          sdS t          j	        d|           d\  }}t                      }d}d}| D ]}t          |t
          j                  rft          |j        j                  \  }	}
||	|
}}n||f|	|
fk    s dS |                    |j                   |j                                        }|t          |t
          j                  rp|
|j        x}}n||cxk    r|j        k    sn  dS t          |t
          j                  r#||}n dS |                    |j                   ||}||k    sJ  dS |r||dS |||j        |j        k    sJ |}n4||j                            |           |}nt          j        ||          }|S )a  Returns a unified Numba function type if possible.

    Parameters
    ----------
    numba_types : Sequence of numba Type instances.
    require_precise : bool
      If True, the returned Numba function type must be precise.

    Returns
    -------
    typ : {numba.core.types.Type, None}
      A unified Numba function type. Or ``None`` when the Numba types
      cannot be unified, e.g. when the ``numba_types`` contains at
      least two different Numba function type instances.

    If ``numba_types`` contains a Numba dispatcher type, the unified
    Numba function type will be an imprecise ``UndefinedFunctionType``
    instance, or None when ``require_precise=True`` is specified.

    Specifying ``require_precise=False`` enables unifying imprecise
    Numba dispatcher instances when used in tuples or if-then branches
    when the precise Numba function cannot be determined on the first
    occurrence that is not a call expression.
    r   )NumbaExperimentalFeatureWarningNz1First-class function type feature is experimental)category)NN)r   rr  r   r   rx   r   
DispatcherFunctionTypewarningswarnr   rk  
dispatcherpy_funcr   get_function_typenargsUndefinedFunctionTyper   dispatchers)rn  require_preciserr  mnargsmxargsr}  functionundefined_functiontmnargs1mxargs1s              r   rm  rm  L  sr   2 BAAAAA{H-- q  {1~(%*<=? ? ! 	ME:< < < <  NFF%%KH  a)** 		.q|/CDDGW~!('f%'7);;;OOAL)))..00Aya+,, 	~"#')1111!'1111!U899 )%-)*&& FF""1=1111# HH#q=====FF H,0B0N)>%7%=====)H		'&--k:::%.v{CCOr   c                   (     e Zd ZdZ fdZd Z xZS )_RedirectSubpackagea!  Redirect a subpackage to a subpackage.

    This allows all references like:

    >>> from numba.old_subpackage import module
    >>> module.item

    >>> import numba.old_subpackage.module
    >>> numba.old_subpackage.module.item

    >>> from numba.old_subpackage.module import item
    c                 :   |d         }t                                          |           i | _        || _        t	          |          }|j                                        D ]T\  }}t          | ||           t          |t                    r)t          j        |j                 t          j        | d| <   U|                                D ]P\  }}|                    d          r6|                    d          r!|dk    rt          | ||           || j        |<   Qd S )Nr|   .____builtins__)rX   rk   &_RedirectSubpackage__old_module_states_RedirectSubpackage__new_moduler   __dict__r   re   r   r   sysmodulesr|   r   endswith)
rg   old_module_locals
new_module
old_modulenew_mod_objr   rO   ri   r   r]   s
            r   rk   z_RedirectSubpackage.__init__  s2   &z2
$$$#% &#J//  (..00 	K 	KDAq D!Q!Z(( K 47;qz3Jz//A//0 -2244 	; 	;KD%t$$ ;t)<)< ;>))D$...5:D,T2		; 	;r   c                 0    | j         | j        f}t          |fS rR   )r  r  r  )rg   rD  s     r   
__reduce__z_RedirectSubpackage.__reduce__  s    ($*;<"D((r   )r|   r}   r~   r   rk   r  r   r   s   @r   r  r    sQ         ; ; ; ; ;4) ) ) ) ) ) )r   r  c                 d    	 t          |            | S # t          $ r t          |           cY S w xY w)z
        Given a value, returns a key that can be used
        as a hash. If the value is hashable, we return
        the value, otherwise we return id(value).

        See discussion in gh #6957
    )r   	TypeErrorid)r   s    r   get_hashable_keyr    sH    U     %yys    //c                   (     e Zd Z fdZ fdZ xZS )threadsafe_cached_propertyc                 j     t                      j        |i | t          j                    | _        d S rR   )rX   rk   r   RLock_lockrg   rD  r\   r]   s      r   rk   z#threadsafe_cached_property.__init__  s2    $)&)))_&&


r   c                 x    | j         5   t                      j        |i |cd d d            S # 1 swxY w Y   d S rR   )r  rX   __get__r  s      r   r  z"threadsafe_cached_property.__get__  s    Z 	4 	4"577?D3F33	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   /33)r|   r}   r~   rk   r  r   r   s   @r   r  r    sQ        ' ' ' ' '4 4 4 4 4 4 4 4 4r   r  c           
         t          d| z                      dd                     t          j        r	 ddlm} ddlm} ddlm	} ddl
m} t           ||                                 |             | |            	                               n.# t          $ r d
}t          |          w xY wt          |           t          d           d S )NzLLVM DUMP %sP   r*   r   )	highlight)	LlvmLexer)Terminal256Formatter)by_colorscheme)stylez0Please install pygments to see highlighted dumpszP================================================================================)printcenterr   HIGHLIGHT_DUMPSpygmentsr  pygments.lexersr  pygments.formattersr  numba.misc.dump_styler  r   ImportError
ValueError)fndescmoduler  lexerr  r  r   s          r   	dump_llvmr    s   	>F"
*
*2s
3
3444 		"******::::::@@@@@@<<<<<<))FOO--uuww008H8HIIIK K L L L L 	" 	" 	"DCS//!	" 	f	(OOOOOs   AB B/c                       e Zd Zd Zd ZdS )_lazy_pformatc                 "    || _         || _        d S rR   )rD  r\   )rg   rD  r\   s      r   rk   z_lazy_pformat.__init__  s    	r   c                 .    t          | j        i | j        S rR   )r   rD  r\   rs   s    r   __str__z_lazy_pformat.__str__  s    	1T[111r   N)r|   r}   r~   rk   r  rJ   r   r   r  r    s2          2 2 2 2 2r   r  c                        e Zd Z fdZ xZS )_LazyJSONEncoderc                     t          |t                    rt          |          S t                                          |          S rR   )r   r  r   rX   rc  )rg   objr]   s     r   rc  z_LazyJSONEncoder.default  s6    c=)) 	s88Owws###r   )r|   r}   r~   rc  r   r   s   @r   r  r    s8        $ $ $ $ $ $ $ $ $r   r  )r   )r   r   )atexitbuiltinsr)  rd  r   operatorrN  rR  r  r   weakrefrv  r   r   jsontypingr   pprintr   r   r   	importlibr   numpyr<  r   ra  r   pySignaturer   pyParameternumba.core.configr	   r
   r   
numba.corer   collections.abcr   r   r   r   r   curdirr(   r   submulfloordivtruedivmodpowand_or_xorlshiftrshifteqneltlegtgeis_is_notcontainsmatmulBINOPS_TO_OPERATORSiaddisubimul	ifloordivitruedivimodipowiandiorixorilshiftirshiftimatmulINPLACE_BINOPS_TO_OPERATORSALL_BINOPS_TO_OPERATORSposneginvertnot_truthUNARY_BUITINS_TO_OPERATORSOPERATORS_TO_BUILTINSrI   rK   rN   rP   finalizeregisterrU   objectr   r   TypeVarr   r   Genericr   r  r  r  r  r   r  r+  r0  r6  r8  rC  rZ  _dynamic_modname_dynamic_moduler  r_  rk  rp  rm  r  r  cached_propertyr  r  r  JSONEncoderr  rJ   r   r   <module>r     s^	          				    



                                # # # # # #     , , , , , , , , , , , , , , , , , ,/ / / / / / / / / /             I I I I I I I I I I I I* * *  Y 2 2 2 2(  	(
	
 	  	(,    	(/ 	(/ 	(+ 	(+   	(+!" #$ +
,o

	/   6 -
-
-


-=
-
,
-

  ":0 :8: 
 
		=~  )L#)M4) L#) M4	)
 L#) M4) t) ) c) t) L#) M4) L$) M5) M3)  M4!)" L##) )$ L$%)& L#')( M4))* OT+), e-). OT/)0 e1)2 K3)4 K5)6 K7)8 K9): K;)< K=)> L$?)@ OXA)D tE)H L#I) )J L#OSM5NIQ) ) X   
 " 	" 	" 	" 	"$  || , , ,    < < < < < < < <~/9 /9 /9 /9 /9F /9 /9 /9d$ $ $ $N CK# # # # #A # # #,$ $ $ $ $z!}ck!n $ $ $4 S[S[0 0 0 0 0BRV!4 0 0 0,2 2 2 2 2~b"f-s{2r6/B 2 2 2,8 8 8 8 8 8 8 8
 
 
) ) )  &
B 
B 
B 
B 
Bf 
B 
B 
B	( 	( 	(2 2 2 2*  *-..'        ' ' '(S S S Sl)) )) )) )) ))* )) )) ))X   4 4 4 4 4!: 4 4 4  $2 2 2 2 2F 2 2 2$ $ $ $ $t' $ $ $ $ $r   