
    wg\                         d dl Z d dlZd dlmZmZ d dlmZ g Zd Zd Z	d Z
d Z e j                  de j                        Zd	 Zy)
    N)typingsigutils)ExportEntryc                 j    t        j                  dt        d       t        |       \  fd}|S )Nz9export() is deprecated, use the numba.pycc.CC API instead   
stacklevelc                     t        j                        \  }}t        j                  |g| }t	        ||       }t
        j                  |       y )N)symbol	signaturefunction)r   normalize_signaturer   r   r   export_registryappend)func	fn_argtysfn_rettyr   entrysigsyms        Z/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/numba/pycc/decorators.pywrapppedzexport.<locals>.wrappped   sI    &::3?	8$$X:	:	3)dKu%    )warningswarnDeprecationWarningparse_prototype)	prototyper   r   r   s     @@r   exportr      s3    MMM$4 y)HC& Or   c                 J     t        j                  dt        d        fd}|S )Nz=exportmany() is deprecated, use the numba.pycc.CC API insteadr   r   c                 6    D ]  } t        |      |         y N)r   )r   proto
prototypess     r   wrappedzexportmany.<locals>.wrapped   s      	 EF5M$	 r   )r   r   r   )r$   r%   s   ` r   
exportmanyr&      s#    MMQ$4  Nr   c           	          | D ]:  }t        |      5 }t        t        |j                         |d             ddd       < y# 1 sw Y   GxY w)z_
    Read input source files for execution of legacy @export / @exportmany
    decorators.
    execN)openr(   compileread)inputsifilefins      r   process_input_filesr/   %   sM    
  5%[ 	5CUF34	5 	55	5 	5s   %AA
	c                      g t         d d  y r"   )r    r   r   clear_export_registryr2   /   s    OAr   z[_a-z][_a-z0-9]*c                     t         j                  |       }|st        d      |j                  d      }|j	                  d      }| || }| |dz   d }||fS )zSeparate the symbol and function-type in a a string with
    "symbol function-type" (e.g. "mult float(float, float)")

    Returns
    ---------
    (symbol_string, functype_string)
    z*Invalid function name for export prototyper      N)	re_symbolmatch
ValueErrorstartend)textmser   functypes         r   r   r   8   s`     	AEFF	
A	aA!AYFAEF|H8r   )rer   
numba.corer   r   numba.pycc.compilerr   r   r   r&   r/   r2   r*   Ir5   r   r1   r   r   <module>rC      sJ    	  ' + 5 BJJ*BDD1	r   