o
    gHdX                     @   s&  d 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 g dZ	ej
ZejjZejZi Zg ZdZdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Z d$d% Z!d&d' Z"d(d) Z#d*d+ Z$d,d- Z%d.d/ Z&d0d1 Z'd2d3 Z(d4d5 Z)d6d7 Z*d8d9 Z+d:d; Z,d<d= Z-d>d? Z.d@dA Z/dBdC Z0dDdE Z1dFdG Z2dHdI Z3dJdK Z4dLdM Z5dNdO Z6dPdQ Z7dRdS Z8dTdU Z9dVdW Z:dXdY Z;dZd[ Z<d\d] Z=d^d_ Z>d`da Z?dbdc Z@ddde ZAdfdg ZBdhdi ZCdjdk ZDdldm ZEdndo ZFdpdq ZGdrds ZHdtdu ZIdvdw ZJdxdy ZKdzd{ ZLd|d} ZMd~d ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^ePdeQdeRdeSdeVdeUdeMdeZde\de]de^diZ_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd Zjdd ZkG ddĄ delZmG ddƄ dƃZnddȄ Zoddʄ Zpdd̄ Zqdd΄ ZrddЄ Zsddd҄ZtddԄ Zui fddքZvdd؄ Zwddڄ Zxdd܄ Zyddބ Zzdd Z{dd Z|dd Z}dd Z~dd ZdddZdd Zi fddZdS )aW  

Auxiliary functions for f2py2e.

Copyright 1999,2000 Pearu Peterson all rights reserved,
Pearu Peterson <pearu@ioc.ee>
Permission to use, modify, and distribute this software is given under the
terms of the NumPy (BSD style) LICENSE.


NO WARRANTY IS EXPRESSED OR IMPLIED.  USE AT YOUR OWN RISK.
$Date: 2005/07/24 19:01:55 $
Pearu Peterson

    N)reduce   )__version__)cfuncs)X
applyrules	debugcapi
dictappenderrmessgentitlegetargs2getcallprotoargumentgetcallstatementgetfortrannamegetpymethoddef
getrestdocgetusercodegetusercode1hasbodyhascallstatement	hascommonhasexternalshasinitvaluehasnotehasresultnoteisallocatableisarrayisarrayofstringsischaracterischaracterarrayischaracter_or_characterarray	iscomplexiscomplexarrayiscomplexfunctioniscomplexfunction_warnisdoubleisdummyroutine
isexternal
isfunctionisfunction_wrapisint1isint1array	isintegerisintent_aux
isintent_cisintent_callbackisintent_copyisintent_dictisintent_hideisintent_inisintent_inoutisintent_inplaceisintent_nothideisintent_outisintent_overwrite	islogicalislogicalfunctionislong_complexislong_doubleislong_doublefunctionislong_longislong_longfunctionismoduleismoduleroutine
isoptional	isprivate
isrequired	isroutineisscalarissigned_long_longarrayisstringisstringarrayisstring_or_stringarrayisstringfunctionissubroutineissubroutine_wrapisthreadsafe
isunsignedisunsigned_charisunsigned_chararrayisunsigned_long_longisunsigned_long_longarrayisunsigned_shortisunsigned_shortarrayl_andl_notl_oroutmessreplaceshow
stripcommathrow_errorisattr_valuec                 C   s    t ddrtj|  d S d S )Nverboser   )optionsgetsysstdoutwrite)t re   Z/var/www/html/facialservice/flask-venv/lib/python3.10/site-packages/numpy/f2py/auxfuncs.pyrX   A   s   rX   c                 C   s   dt v S )Ncapi)debugoptionsvarre   re   rf   r   F      r   c                 C      d| v o| d dkot |  S Ntypespec	characterr&   ri   re   re   rf   _ischaracterJ      rq   c                 C   rl   rm   rp   ri   re   re   rf   	_isstringO   rr   rs   c                 C   s   t | od| vS Ncharselectorrq   ri   re   re   rf   r   T      r   c                 C      t | ot|  S Nr   r   ri   re   re   rf   r   X      r   c                 C      t | ot| S ry   rz   ri   re   re   rf   r   \   rw   r   c                 C   s   t | od| v S rt   rv   ri   re   re   rf   rI   `   rw   rI   c                 C   rx   ry   rI   r   ri   re   re   rf   rG   d   r{   rG   c                 C   r|   ry   r}   ri   re   re   rf   rH   h   rw   rH   c                 C   s   t | o| d d dkS )N	dimensionz(*))rH   ri   re   re   rf   r   l   s   r   c                 C   s   d| v ot |  S Nr~   rp   ri   re   re   rf   r   r   r{   r   c                 C   s   t | pt| pt|  S ry   )r   rG   r&   ri   re   re   rf   rE   v   s   rE   c                 C      t | o
| ddv S Nrn   )complexzdouble complexrE   r`   ri   re   re   rf   r    z      r    c                 C      t | o
| ddkS )Nrn   logicalr   ri   re   re   rf   r8         r8   c                 C   r   )Nrn   integerr   ri   re   re   rf   r+      r   r+   c                 C   r   )Nrn   realr   ri   re   re   rf   isreal   r   r   c                 C   sH   z| d d W S  t y#   z	| d d W  Y S  t y"   Y Y d S w w )Nkindselector*kindKeyErrorri   re   re   rf   get_kind   s   r   c                 C   s$   |  ddkot| dkot|  S Nrn   r   1)r`   r   r   ri   re   re   rf   r)      s
   
r)   c                 C   s*   t | sdS | ddvrdS t| dkS )Nr   rn   r   r   8rE   r`   r   ri   re   re   rf   r=      
   r=   c                 C   *   t | sdS | ddkrdS t| dkS )Nr   rn   r   -1r   ri   re   re   rf   rO      r   rO   c                 C   r   )Nr   rn   r   -2r   ri   re   re   rf   rS      r   rS   c                 C   r   )Nr   rn   r   -4r   ri   re   re   rf   rN      r   rN   c                 C   r   )Nr   rn   r   -8r   ri   re   re   rf   rQ      r   rQ   c                 C   *   t | sdS | ddksdS t| dkS )Nr   rn   r   r   r   ri   re   re   rf   r$      r   r$   c                 C   r   )Nr   rn   r   16r   ri   re   re   rf   r;      r   r;   c                 C   s   t | sdS t| dkS )Nr   32)r    r   ri   re   re   rf   r:      s   r:   c                 C   r   r   )r   r`   ri   re   re   rf   r!      r   r!   c                 C   s"   t | o| ddkot| dkS r   r   r`   r   ri   re   re   rf   r*         
r*   c                 C   "   t | o| ddv ot| dkS )Nrn   r   r   r   ri   re   re   rf   rP      r   rP   c                 C   r   )Nrn   r   r   r   ri   re   re   rf   rT      r   rT   c                 C   r   )Nrn   r   r   r   ri   re   re   rf   isunsignedarray   r   r   c                 C   r   )Nrn   r   r   r   ri   re   re   rf   rR      r   rR   c                 C   r   )Nrn   r   r   r   ri   re   re   rf   issigned_chararray   r   r   c                 C   r   )Nrn   r   2r   ri   re   re   rf   issigned_shortarray   r   r   c                 C   r   )Nrn   r   4r   ri   re   re   rf   issigned_array   r   r   c                 C   r   )Nrn   r   r   r   ri   re   re   rf   rF     r   rF   c                 C      d| v o	d| d v S )Nattrspecallocatablere   ri   re   re   rf   r   
     r   c                 C   s   d| vpt |  S r   )rG   ri   re   re   rf   	ismutable  r{   r   c                 C      d| v S )N
modulenamere   routre   re   rf   r@     rk   r@   c                 C      d| v o	d| d kS )Nblockmodulere   r   re   re   rf   r?     r   r?   c                 C   r   )Nr   functionre   r   re   re   rf   r'     r   r'   c                 C   s"   t | rdS tot| ot|  S Nr   )r-   	wrapfuncsr'   r&   r   re   re   rf   r(     s   r(   c                 C   r   )Nr   
subroutinere   r   re   re   rf   rK   $  r   rK   c                 C   s   t | rdS t| ot| S r   )r-   rK   hasassumedshaper   re   re   rf   rL   (     rL   c                 C      d|  dg v S )Nvaluer   r`   ri   re   re   rf   r]   -  rw   r]   c                 C   sV   |  drdS | d D ]}| d  |i  dg D ]}|dkr'd| d<   dS qqdS )Nr   Targsvarsr~   :Fr   )r   adre   re   rf   r   1  s   
r   c                 C      t | pt| S ry   )r@   r   r   re   re   rf   requiresf90wrapper<  rw   r   c                 C   r   ry   )r'   rK   r   re   re   rf   rD   @  rw   rD   c                 C   F   t | sdS d| v r| d }n| d }|| d v r!t| d | S dS Nr   resultnamer   )r'   r8   r   r   re   re   rf   r9   D     
r9   c                 C   r   r   )r'   r=   r   re   re   rf   r>   P  r   r>   c                 C   r   r   )r'   r;   r   re   re   rf   r<   \  r   r<   c                 C   r   r   )r'   r    r   re   re   rf   r"   h  r   r"   c                 C   s   t | r
td dS dS )Na      **************************************************************
        Warning: code with a function returning complex value
        may not work correctly with your Fortran compiler.
        When using GNU gcc/g77 compilers, codes should work
        correctly for callbacks with:
        f2py -c -DF2PY_CB_RETURNCOMPLEX
    **************************************************************
r   r   )r"   rX   r   re   re   rf   r#   t  s   r#   c                 C   r   r   )r'   rG   r   re   re   rf   rJ     r   rJ   c                 C      d| v o| d S )N	externalsre   r   re   re   rf   r     rw   r   c                 C   r   )Nf2pyenhancements
threadsafere   r   re   re   rf   rM     s   
rM   c                 C   r   )Nr   re   r   re   re   rf   hasvariables  rw   r   c                 C   s(   d| v od| d v od| d vot | S )Nr   optionalrequired)r5   ri   re   re   rf   rA     s
   
rA   c                 C   r   )Nr   externalre   ri   re   re   rf   r&     r   r&   c                 C   s   t |  ot| S ry   )rA   r5   ri   re   re   rf   rC     r{   rC   c                 C   sp   d| vrdS d| d v rdS d| d v rdS d| d v rdS d| d v r&dS d| d v r.dS d	| d v r6dS dS )
Nintentr   hider   inplaceinoutinoutoutinre   ri   re   re   rf   r2     s   r2   c                 C   sD   d| v o!d| d v sd| d v o!d| d vo!d| d vo!d| d vS )Nr   r   r   r   r   r   re   ri   re   re   rf   r3     s   



r3   c                 C   r   )Nr   r   r   ri   re   re   rf   r6     rw   r6   c                 C   s<   d| v od| d v pd| d v od| d vot tt|  S )Nr   r   r   r   )rW   r3   r4   ri   re   re   rf   r1     s   r1   c                 C   s
   t |  S ry   )r1   ri   re   re   rf   r5        
r5   c                 C   r   )Ncr   r   ri   re   re   rf   r-     rw   r-   c                 C   r   )Ncacher   r   ri   re   re   rf   isintent_cache  rw   r   c                 C   r   )Ncopyr   r   ri   re   re   rf   r/     rw   r/   c                 C   r   )N	overwriter   r   ri   re   re   rf   r7     rw   r7   c                 C   r   )Ncallbackr   r   ri   re   re   rf   r.     rw   r.   c                 C   r   )Nr   r   r   ri   re   re   rf   r4     rw   r4   c                 C   r   )Nauxr   r   ri   re   re   rf   r,     rw   r,   c                 C   r   )Naligned4r   r   ri   re   re   rf   isintent_aligned4  rw   r   c                 C   r   )Naligned8r   r   ri   re   re   rf   isintent_aligned8  rw   r   c                 C   r   )N	aligned16r   r   ri   re   re   rf   isintent_aligned16  rw   r   	INTENT_ININTENT_INOUT
INTENT_OUTINTENT_HIDEINTENT_CACHEINTENT_COPTIONALINTENT_INPLACEINTENT_ALIGNED4INTENT_ALIGNED8INTENT_ALIGNED16c                 C   r   )Nr   privatere   ri   re   re   rf   rB     r   rB   c                 C   r   )N=re   ri   re   re   rf   r     rk   r   c                 C   s   t | sdS | d d dv S )Nr   r   )"')r   ri   re   re   rf   hasinitvalueasstring	  r   r   c                 C   r   )Nnotere   ri   re   re   rf   r     rk   r   c                 C   r   r   )r'   r   r   re   re   rf   r     r   r   c                 C   r   )Ncommonre   r   re   re   rf   r     rk   r   c                 C   s4   t | rdS t| r| d D ]	}t|r dS qdS )Nr   bodyr   )r   r   containscommon)r   bre   re   rf   r   #  s   r   c                 C   s8   t | rdS t| sdS | d D ]	}t|r dS qdS )Nr   r   r   )r?   r   containsmodule)r   r   re   re   rf   r   -  s   r   c                 C   r   )Nr   re   r   re   re   rf   r   8  rk   r   c                 C   s   t | d uS ry   )r   r   re   re   rf   r   <  s   r   c                 C      dS )Nr   re   ri   re   re   rf   istrue@     r   c                 C   r   r   re   ri   re   re   rf   isfalseD  r   r  c                   @   s   e Zd ZdS )	F2PYErrorN)__name__
__module____qualname__re   re   re   rf   r  H  s    r  c                   @   s   e Zd Zdd Zdd ZdS )r\   c                 C   s
   || _ d S ry   )mess)selfr  re   re   rf   __init__N  r   zthrow_error.__init__c                 C   s   d|| j f }t|)Nz

  var = %s
  Message: %s
)r  r  )r  rj   r  re   re   rf   __call__Q  s   zthrow_error.__call__N)r  r  r  r  r	  re   re   re   rf   r\   L  s    r\   c                  G   N   dg }}t t| D ]}d|||f }|d|  qtd|d|f S )Nlambda v%s,f%d=f[%d]f%d(v)%s:%sz and rangelenappendevaljoinfl1l2ire   re   rf   rU   V  
   
rU   c                  G   r
  )Nr  r  r  r  z or r  r  re   re   rf   rW   ^  r  rW   c                 C   s   t dS )Nzlambda v,f=f:not f(v))r  )r  re   re   rf   rV   f  rk   rV   c                 C   s(   z	| d d dkW S  t y   Y dS w )Nr   fortranname r   r   r   re   re   rf   r%   j  s
   r%   c                 C   sT   z| d d }|dkrt |std| d   t W |S  t y)   | d }Y |S w )Nr   r  r  z"Failed to use fortranname from %s
r   )r   r	   )r   r   re   re   rf   r   q  s   
r   c                 C   s
  z	| d  |}W n
 ty   Y d S w |sd S |dkr#t|tr#d S t|tr4|t|kr0d S || }|d d dkr|rQd| d t| d |dd   }n|dd  }|dd  dkry|rq|d d d	 t| d
 }|S |d d }|S td|t|f  |S )Nr   r      z'''z
	/* start z multiline (z) */
z
	/* end multiline (z)*/z-%s multiline block should end with `'''`: %s
)r`   r   
isinstancestrlistr  reprr	   )r   	blocknamecommentcounterrre   re   rf   getmultilineblock  sF   


r'  c                 C   
   t | dS )Ncallstatementr'  r   re   re   rf   r     r   r   c           
      C   s  t | ddd}|r|S t| rtd d S ddlm} g g }}tttt| r0|	ddg | d	 D ]J}| d
 | }t
|rAq4||v rL|| d }n-||}ttttt|r[nt|r`nt|sh|d }t|stt|stt|ry|d || q4d|| }	|	sd}	|	S )Ncallprotoargumentr   )r$  z<warning: callstatement is defined without callprotoargument
r   )getctypezchar*size_tr   r   _typedefr   ,void)r'  r   rX   	capi_mapsr,  rU   rJ   rV   r(   extendr.   r-   rW   rE   r    rG   r]   r   rH   r  r  )
r   cb_mapr&  r,  	arg_types
arg_types2nrj   ctype
proto_argsre   re   rf   r     sH   

r   c                 C   r(  )Nusercoder*  r   re   re   rf   r     r   r   c                 C   s   t | dddS )Nr9  r   )r%  r*  r   re   re   rf   r     s   r   c                 C   r(  )Npymethoddefr*  r   re   re   rf   r     r   r   c                 C   sv   g g }}d| v r7| d }d| v r3| d D ]}||v r | | q|D ]}||vr.| | q#||fS | d }||fS )Nr   sortvars)r  )r   sortargsr   r   re   re   rf   getargs  s   


r=  c                    s   g  dg }  fddd  D }|   dv rAd D ]}| v r.|| q# D ]}||vr<|| q1 |fS |d  } |fS )Nr   c                    s(   g | ]}t d  | r| vr|qS )r   )r,   ).0r   r   r   re   rf   
<listcomp>  s    
zgetargs2.<locals>.<listcomp>r   r;  )r`   keysr  )r   r<  auxvarsr   re   r?  rf   r     s   

r   c                 C   s<   d| vrd S d }| d dkr| d | d f}| d  |d S )Nf2pymultilinesr   zpython moduler   r   )r   kre   re   rf   r     s   r   c                 C   s*   dt |  d d }d|d | |d f S )NP         z/*%s %s %s*/r   )r  )r   lnre   re   rf   r
     s   r
   c                 C   s$   t | trttfdd| g S | gS )Nc                 S   s   | || S ry   re   )xyr  re   re   rf   <lambda>  s    zflatlist.<locals>.<lambda>)r  r!  r   flatlist)lstre   re   rf   rL    s   
rL  c                 C   s    | r| d dkr| d d S | S )Nr   r/  re   )sre   re   rf   r[   	  s   r[   r  c              	      s   t  trfdd D S t tr fddD S dt   D ];}|dkr-q&d v r>| d v r> d | }n}t  | trWd| |t | q&d|  | q&S )Nc                    s   g | ]}t | qS re   rY   r>  _m)
defaultsepr   re   rf   r@        zreplace.<locals>.<listcomp>c                    s   g | ]}t | qS re   rO  rP  )r   rR  re   rf   r@    rS  rG  separatorsforz#%s#)r  r!  rA  rY   r  rL  )r   r   rR  rD  sepre   )r   rR  r   rf   rY     s   

 rY   c                 C   s(  t |tr|D ]}t| |} q| S | D ]|}|d dkrq|| v rt | | tr0| | g| |< t | | trSt || trI| | ||  | |< q| | ||  qt | | trt || tr|dkr||  D ]}|| | vr}|| | | | |< qkqt| | || | |< q|| | |< q| S )Nr   _rT  )r  r!  r   rA  r   r  dict)rdarr   rD  k1re   re   rf   r   "  s4   
r   c                 C   s  i }t | tr | D ]}t|||}t||}d|v r |S q	|S d| v r,| d |s,|S d| v rEtd| d i||}d|v rEt|d  |  D ]}|dkrV| | ||< qIt | | trgt| | |||< nt | | trg ||< | | D ]}t||i||}	||	v r|| 	|	|  qvn|d dkrqIt | | t
rg ||< | |  D ]l}
t |
tjr|
|rt | | |
 tr| | |
 D ]$}t |t
rtd|i||}d|v r|d }nd	}|| 	t|| qq| | |
 }t |t
r
td|i|}d|v r|d }nd	}|| 	t|| qn
td
t| |   t || trCt|| dkr9|| d ||< || g krC||= qI|S )N_break_checkneedneedsrT  r   rV  	supertextr  zapplyrules: ignoring rule %s.
r   )r  r!  r   r   r   append_needsrA  r   rY   r  rW  typesFunctionTyper	   r"  r  )rulesr   rj   retr&  rrresrD  r  rY  rZ  re   re   rf   r   ?  s|   



	

r   )r   r   )r  )__doc__pprintra   ra  	functoolsr   r  r   r   __all__versionf2py_versionstderrrc   r	   rZ   r_   rh   r   rX   r   rq   rs   r   r   r   rI   rG   rH   r   r   rE   r    r8   r+   r   r   r)   r=   rO   rS   rN   rQ   r$   r;   r:   r!   r*   rP   rT   r   rR   r   r   r   rF   r   r   r@   r?   r'   r(   rK   rL   r]   r   r   rD   r9   r>   r<   r"   r#   rJ   r   rM   r   rA   r&   rC   r2   r3   r6   r1   r5   r-   r   r/   r7   r.   r4   r,   r   r   r   r0   rB   r   r   r   r   r   r   r   r   r   r   r  	Exceptionr  r\   rU   rW   rV   r%   r   r'  r   r   r   r   r   r=  r   r   r
   rL  r[   rY   r   r   re   re   re   rf   <module>   s
  



'	
