
    h                        S SK JrJrJr  SSKr SSKr\" \" \\R                  R                  S5      SS 5      5      S:  r\" \" \\R                  R                  S5      SS 5      5      S:  r\(       a  S
rOSrS r\R                   S 5       rS%S jr\R&                  S 5       rS rS r\R&                  S 5       rS rS rS rS rS r\c  S rOS rS rS r\R                   S&S j5       r \R&                  S 5       r!S r"\R                   S 5       r#S  r$\R                   S! 5       r%S" r&S# r'S$ r(g! \ a	    SrS	rS	r Nf = f)'   )CTypeCTypedefTypeCStructOrUnionType    N.   )r   	      )r   r	      T__builtin__builtinsc                 Z    U c  g[        U SS 5      nU=(       a    UR                  SS5      $ )NF
directives
np_pythran)getattrget)envr   s     Q/var/www/fran/franai/venv/lib/python3.13/site-packages/Cython/Compiler/Pythran.pyhas_np_pythranr      s.    
{lD1J>:>>,>?    c                 n    [        U [        5      (       a  [        U R                  5      $ U R                  $ N)
isinstancer   is_pythran_supported_typetypedef_base_type
is_numerictype_s    r   is_pythran_supported_dtyper      s,    %&&()@)@AAr   c           	      ^   U R                   (       a  U R                  U R                  p2[        U[        5      (       a  UR
                  nOV[        U[        5      (       a  UR                  5       nO0[        U[        5      (       a  UR                  nO[        SU-  5      e[        (       a  SXU4-  $ SU< SU< SSR                  SU-  5      < S3$ U R                  (       a  U R                  $ U R                  (       a  U R                  5       $ [        S	U < S
[!        U 5      < S35      e)Nzunsupported type %s!zpythonic::types::%s<%s,%d>pythonic::types::<z,pythonic::types::pshape<,)longz>>zunsupported pythran type z ())	is_bufferndimdtyper   r   cnamer   sign_and_namer   typedef_cname
ValueErrorpythran_is_pre_0_9joinis_pythran_exprpythran_typer   type)Typtyper'   r(   ctypes        r   r0   r0   #   s    	||WWbhhUe/00KKEu%%'')E|,,''E3e;<</52EEE  MRRWY\YaYabklpbpYqrr	 
}}!!
2tBxH
IIr   c                     SU -  $ )Nz(typename std::remove_reference<%s>::type )tys    r   type_remove_refr8   ;   s    5::r   c                     U S:X  a  S[        U5      < S[        U5      < S3$ S[        U5      < SU < S[        U5      < S3$ )	Nz**z8decltype(pythonic::numpy::functor::power{}(std::declval<z>(), std::declval<z>()))decltype(std::declval<z>() z std::declval<>())r0   )optAtBs      r   pythran_binop_typer@   @   sD    	Tzl2.0 	0 
 b,r"24 	4r   c                 *    SU < S[        U5      < S3$ )N	decltype(zstd::declval<r;   r<   )r=   r   s     r   pythran_unaryop_typerC   I   s    
L! !r   c                     SR                  U Vs/ s H
  o " U5      PM     sn5      n[        U5      S:X  a  SU-  $ SU-  $ s  snf )Nr#   r   z[%s]z(%s))r.   len)
index_codeindicesidxindexings       r   _index_accessrJ   N   sH    xxG<GSCG<=H'la'Fx??Vx?? =s   Ac                 b   U u  pUR                   (       aI  S[        UR                  R                  (       + 5      -   nS[        < SSR                  S/U-  5      < S3$ UR                  (       a  SUR                  5       -  $ UR                  (       a  SUR                  -  $ [        SU-  5      e)	Nr   z
pythonic::z::functor::slice{}(r#   0r%   std::declval<%s>()zunsupported indexing type %s!)is_sliceintstepis_nonepythran_builtinsr.   is_intr*   r/   r0   r,   )index_with_typerH   
index_typens       r   _index_type_coderW   T   s    %OC
||((())HHcU1W 	 
		#j&>&>&@@@		#	##j&=&===
4zA
BBr   c                    U R                   (       ai  U R                  U R                  U R                  4nU R                  R                  (       a  SnUS S nOSnSU< SSR                  S U 5       5      < S3$ U R                  R                  (       a  [        U 5      $ U R                  R                  (       a  U R                  5       $ [        S	U R                  -  5      e)
Ncontiguous_slicer   slicer!   (r#   c              3   @   #    U  H  oR                  5       v   M     g 7fr   )pythran_result).0vs     r   	<genexpr>_index_code.<locals>.<genexpr>k   s     >v!++--vs   r%   zunsupported indexing type %s)rN   startstoprP   rQ   r.   r1   rS   
to_pythranr/   r]   r,   )rH   valuesfuncs      r   _index_coderg   b   s    
||CHHchh.88%DBQZFD#((>v>>@ 	@	#		!	!!!##
3chh>
??r   c           	      X    [        S[        U 5      < S[        [        U5      < S35      $ )Nr:   z>()r%   )r8   r0   rJ   rW   )r   rG   s     r   pythran_indexing_typeri   s   s'    U&0  r   c                 "    [        [        U 5      $ r   )rJ   rg   )rG   s    r   pythran_indexing_coderk   z   s    g..r   c                 n    U R                   (       d  / $ [        U R                  5      U R                  /-   $ r   )is_numpy_attributenp_func_to_listobj	attributerf   s    r   rn   rn   }   s+    ""	488$'777r   c                     g)NFr6   )names    r   pythran_is_numpy_func_supportedrt      s    r   c                     [         R                  R                  S   n[        U 5      nU H  nUR	                  US 5      nUb  M    g   g)NnumpyFT)pythrantablesMODULESrn   r   )rf   CurFFLFs       r   rt   rt      sG    ~~%%g.T"A88At$D|  r   c                 b    [        U 5      n SR                  U S S S/-   5      nSU< SU S   < 3$ )Nz::functorzpythonic::numpy::rn   r.   )rf   
submoduless     r   pythran_functorr      s6    4 D49	{23J(2DH==r   c                 Z    SR                  S U 5       5      nS[        U 5      < SU< S3$ )Nr#   c              3   R   #    U  H  nS [        UR                  5      -  v   M     g7f)rM   N)r0   r1   )r^   as     r   r`   $pythran_func_type.<locals>.<genexpr>   s     NA(<+??s   %'rB   z{}(z)))r.   r   )rf   argss     r   pythran_func_typer      s&    88NNND#24#8$??r   c                 4   U R                   nUR                  (       a  UR                  U R                  5       5      $ [	        U5      (       aL  U R                  5       (       d  [        U SS 5      (       a%  SU R                  5        SU R                  5        S3$ [        U/ SQ5      (       a  U R                  5       $ U R                  (       a	  S[        -  $ Uc  [        U5      nU R                   R                  (       d   eSU< SU R                  5       < S	3$ )
NentryrB   z){})r/   r   is_float
is_complexzpythonic::%s::Nonezfrom_python<z>(r%   )r1   rS   	cast_coderesultr/   result_in_tempr   is_typerQ   rR   r0   is_pyobject	py_result)r=   r3   op_types      r   rd   rd      s    ggG~~  --wR%6%6%8%8GBQU<V<V 299;-s299;-r::wSTTyy{	zz#&666}W%77$)2<<>::r   c                 <    U H  n[        XS5      (       d  M    g   g)NFT)r   )r   typesattrs      r   r   r      s!    5&&  r   c                 R    U R                   =(       d    [        U R                  5      $ r   )rQ   r   r1   )nodes    r   !is_pythran_supported_node_or_noner      s    <<?4TYY??r   c                 @    Sn[        X5      =(       d    [        U 5      $ )N)r/   rS   r   r   rQ   r   r   r/   r   pythran_supporteds     r   r   r      s     X5,F0FFr   c                 @    Sn[        X5      =(       d    [        U 5      $ )N)r/   rS   r   r   r   r   r   s     r   #is_pythran_supported_operation_typer      s     M5+Eu/EEr   c                     U R                   $ r   )r/   r   s    r   r/   r/      s       r   c                     U R                   =(       aC    [        U R                  5      =(       a'    U R                  S;   =(       a    U R                  (       + $ )N)cstrided)is_numpy_bufferr   r(   modecastr   s    r   is_pythran_bufferr      sA    !! >&@&M >JJ**>38::~?r   c                 @    [        U 5      n SSR                  U 5      -  $ )Nzpythonic/numpy/%s.hpp/r   rq   s    r   pythran_get_func_include_filer      s    4 D"SXXd^33r   c                    U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S[        -  5        U R                  S5        S H+  nU R                  S	U-  5        U R                  S
U-  5        M-     S H  nU R                  SU-  5        M     g )Nzpythonic/core.hppzpythonic/python/core.hppzpythonic/types/bool.hppzpythonic/types/ndarray.hppzpythonic/numpy/power.hppzpythonic/%s/slice.hppz<new>)          @   zpythonic/types/uint%d.hppzpythonic/types/int%d.hpp)
floatfloat32float64setrZ   tuplerO   complex	complex64
complex128zpythonic/types/%s.hpp)add_include_filerR   )r   its      r   include_pythran_genericr      s    ,-3423563403CCD!81<=7!;< 44q894r   )ndarrayr   ))
PyrexTypesr   r   r   cythonrw   r   maprO   __version__splitr-   pythran_is_pre_0_9_6ImportErrorrR   r   ccallr   r0   cfuncr8   r@   rC   rJ   rW   rg   ri   rk   rn   rt   r   r   rd   r   r   r   r   r/   r   r   r   r6   r   r   <module>r      s   ? ?  s3(;(;(A(A#(Fq(KLMPVV S'*=*=*C*CC*H1*M!NOR[[ $!
@  J0 ; ;4!
 @ @
C@"/8
 ?>
@
 ; ;2  @ G GF ! !?4:a   G s   A D9 9EE