Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib64/python3.7/site-packages/numpy/f2py/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/numpy/f2py/__pycache__/auxfuncs.cpython-37.pyc

B

��Fd$U�R@s�dZddlmZmZmZddlZddlZddlZddlm	Z	ddl
mZddl
mZdd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYgRZ
ejZejjZejZiZgZdZdZdU�Zd[d	�Zd\d]�Zd^dE�Zd_d`�ZdadF�Zdbd�Zdcd�ZdddC�Zded�Z dfd6�Z!dgd)�Z"dhdi�Z#djdk�Z$dld;�Z%dmdL�Z&dndP�Z'dodK�Z(dpdN�Z)dqd#�Z*drd9�Z+dsd8�Z,dtd �Z-dud(�Z.dvdM�Z/dwdQ�Z0dxdy�Z1dzdO�Z2d{d|�Z3d}d~�Z4dd��Z5d�dD�Z6d�d�Z7d�d��Z8d�d>�Z9d�d=�Z:d�d&�Z;d�d'�Z<d�dH�Z=d�dI�Z>d�d��Z?d�dB�Z@d�d7�ZAd�d<�ZBd�d:�ZCd�d!�ZDd�d"�ZEd�dG�ZFd�d�ZGd�dJ�ZHd�d��ZId�d?�ZJd�d%�ZKd�dA�ZLd�d0�ZMd�d1�ZNd�d4�ZOd�d/�ZPd�d3�ZQd�d+�ZRd�d��ZSd�d-�ZTd�d5�ZUd�d,�ZVd�d2�ZWd�d*�ZXd�d��ZYd�d��ZZd�d��Z[eMd�eNd�eOd�ePd�eSd�eRd�eJd�eWd�eYd�eZd�e[d�iZ\d�d@�Z]d�d�Z^d�d��Z_d�d�Z`d�d�Zad�d�Zbd�d��Zcd�dÄZdd�d�Zed�d�Zfd�dDŽZgd�dɄZhGd�d˄d�ei�ZjGd�dY�dY�Zkd�dR�Zld�dT�Zmd�dS�Znd�d$�Zod�d�Zpd�d�dӄZqd�d�Zrifd�d�Zsd�d�Ztd�d�Zud�d�Zvd�dڄZwd�d
�Zxd�d�Zyd�d�Zzd�d߄Z{d�dX�Z|d�d�dV�Z}d�d
�Z~ifd�d�ZdS)�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

�)�division�absolute_import�print_functionN)�reduce�)�__version__)�cfuncs�
applyrules�	debugcapi�
dictappend�errmess�gentitle�getargs2�getcallprotoargument�getcallstatement�getfortranname�getpymethoddef�
getrestdoc�getusercode�getusercode1�hasbody�hascallstatement�	hascommon�hasexternals�hasinitvalue�hasnote�
hasresultnote�
isallocatable�isarray�isarrayofstrings�	iscomplex�iscomplexarray�iscomplexfunction�iscomplexfunction_warn�isdouble�isdummyroutine�
isexternal�
isfunction�isfunction_wrap�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�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_errorcCst�dd�rtj�|�dS)N�verboser)�options�get�sys�stdout�write)�t�rb�F/opt/alt/python37/lib64/python3.7/site-packages/numpy/f2py/auxfuncs.pyrV?scCsdtkS)NZcapi)�debugoptions)�varrbrbrcr
DscCsd|ko|ddkot|�S)N�typespec�	character)r&)rerbrbrc�	_isstringHsrhcCst|�ot|�S)N)rhr)rerbrbrcrFMscCst|�od|kS)NZcharselector)rF)rerbrbrc�ischaracterQsricCst|�ot|�S)N)rrh)rerbrbrcrGUscCst|�o|dddkS)N�	dimension���z(*))rG)rerbrbrcrYscCsd|kot|�S)Nrj)r&)rerbrbrcr_scCst|�pt|�pt|�S)N)rrFr&)rerbrbrcrDcscCst|�o|�d�dkS)Nrf)�complexzdouble complex)rDr])rerbrbrcr gscCst|�o|�d�dkS)Nrf�logical)rDr])rerbrbrcr7lscCst|�o|�d�dkS)Nrf�integer)rDr])rerbrbrcr*pscCst|�o|�d�dkS)Nrf�real)rDr])rerbrbrc�isrealtsrpcCsHy|ddStk
rBy|ddStk
r<YnXYnXdS)NZkindselector�*�kind)�KeyError)rerbrbrc�get_kindxsrtcCs*t|�sdS|�d�dkrdSt|�dkS)Nrrf)rnrm�8)rDr]rt)rerbrbrcr<�s
cCs*t|�sdS|�d�dkrdSt|�dkS)Nrrfrnz-1)rDr]rt)rerbrbrcrM�s
cCs*t|�sdS|�d�dkrdSt|�dkS)Nrrfrnz-2)rDr]rt)rerbrbrcrQ�s
cCs*t|�sdS|�d�dkrdSt|�dkS)Nrrfrnz-4)rDr]rt)rerbrbrcrL�s
cCs*t|�sdS|�d�dkrdSt|�dkS)Nrrfrnz-8)rDr]rt)rerbrbrcrO�s
cCs*t|�sdS|�d�dksdSt|�dkS)Nrrfroru)rDr]rt)rerbrbrcr$�s
cCs*t|�sdS|�d�dksdSt|�dkS)NrrfroZ16)rDr]rt)rerbrbrcr:�s
cCst|�sdSt|�dkS)Nr�32)r rt)rerbrbrcr9�scCst|�o|�d�dkS)Nrf)rlzdouble complex)rr])rerbrbrcr!�scCs"t|�o |�d�dko t|�dkS)Nrfrn�1)rr]rt)rerbrbrcr)�scCs"t|�o |�d�dko t|�dkS)Nrf)rnrmz-1)rr]rt)rerbrbrcrN�scCs"t|�o |�d�dko t|�dkS)Nrf)rnrmz-2)rr]rt)rerbrbrcrR�scCs"t|�o |�d�dko t|�dkS)Nrf)rnrmz-4)rr]rt)rerbrbrc�isunsignedarray�srxcCs"t|�o |�d�dko t|�dkS)Nrf)rnrmz-8)rr]rt)rerbrbrcrP�scCs"t|�o |�d�dko t|�dkS)Nrf)rnrmrw)rr]rt)rerbrbrc�issigned_chararray�srycCs"t|�o |�d�dko t|�dkS)Nrf)rnrm�2)rr]rt)rerbrbrc�issigned_shortarray�sr{cCs"t|�o |�d�dko t|�dkS)Nrf)rnrm�4)rr]rt)rerbrbrc�issigned_array�sr}cCs"t|�o |�d�dko t|�dkS)Nrf)rnrmru)rr]rt)rerbrbrcrE�scCsd|kod|dkS)N�attrspecZallocatablerb)rerbrbrcr�scCsd|kpt|�S)Nrj)rF)rerbrbrc�	ismutable�srcCsd|kS)N�
modulenamerb)�routrbrbrcr?�scCsd|kod|dkS)N�block�modulerb)r�rbrbrcr>�scCsd|kod|dkS)Nr��functionrb)r�rbrbrcr'scCs"t|�rdSto t|�o t|�S)Nr)r,�	wrapfuncsr'r&)r�rbrbrcr(scCsd|kod|dkS)Nr�Z
subroutinerb)r�rbrbrcrIscCst|�rdSt|�ot|�S)Nr)r,rI�hasassumedshape)r�rbrbrcrJscCsZ|�d�rdSxF|dD]:}x4|d�|i��dg�D]}|dkr6d|d<dSq6WqWdS)Nr�T�args�varsrj�:F)r])r��a�drbrbrcr�s
r�cCst|�pt|�S)N)r'rI)r�rbrbrcrC scCsFt|�sdSd|kr|d}n|d}||dkrBt|d|�SdS)Nr�result�namer�)r'r7)r�r�rbrbrcr8$s
cCsFt|�sdSd|kr|d}n|d}||dkrBt|d|�SdS)Nrr�r�r�)r'r<)r�r�rbrbrcr=0s
cCsFt|�sdSd|kr|d}n|d}||dkrBt|d|�SdS)Nrr�r�r�)r'r:)r�r�rbrbrcr;<s
cCsFt|�sdSd|kr|d}n|d}||dkrBt|d|�SdS)Nrr�r�r�)r'r )r�r�rbrbrcr"Hs
cCst|�rtd�dSdS)Na�    **************************************************************
        Warning: code with a function returning complex value
        may not work correctly with your Fortran compiler.
        Run the following test before using it in your applications:
        $(f2py install dir)/test-site/{b/runme_scalar,e/runme}
        When using GNU gcc/g77 compilers, codes should work correctly.
    **************************************************************
rr)r"rV)r�rbrbrcr#Ts
cCsFt|�sdSd|kr|d}n|d}||dkrBt|d|�SdS)Nrr�r�r�)r'rF)r�r�rbrbrcrHbs
cCsd|ko|dS)NZ	externalsrb)r�rbrbrcrnscCsd|kod|dkS)N�f2pyenhancementsZ
threadsaferb)r�rbrbrcrKrscCsd|ko|dS)Nr�rb)r�rbrbrc�hasvariableswsr�cCs(d|ko&d|dko&d|dko&t|�S)Nr~�optional�required)r4)rerbrbrcr@{scCsd|kod|dkS)Nr~Zexternalrb)rerbrbrcr&�scCst|�ot|�S)N)r@r4)rerbrbrcrB�scCspd|krdSd|dkrdSd|dkr,dSd|dkr<dSd|dkrLdSd|dkr\dSd	|dkrldSdS)
N�intentr�hider�inplace�in�out�inout�outinrb)rerbrbrcr1�scCsDd|koBd|dks d|dkoBd|dkoBd|dkoBd|dkS)Nr�r�r�r�r�r�rb)rerbrbrcr2�scCsd|�dg�kS)Nr�r�)r])rerbrbrcr5�scCs<d|ko:d|dkp:d|dko:d|dko:ttt�|�S)Nr�r�r�r�)rUr2r3)rerbrbrcr0�scCs
t|�S)N)r0)rerbrbrcr4�scCsd|�dg�kS)N�cr�)r])rerbrbrcr,�scCsd|�dg�kS)N�cacher�)r])rerbrbrc�isintent_cache�sr�cCsd|�dg�kS)N�copyr�)r])rerbrbrcr.�scCsd|�dg�kS)NZ	overwriter�)r])rerbrbrcr6�scCsd|�dg�kS)N�callbackr�)r])rerbrbrcr-�scCsd|�dg�kS)Nr�r�)r])rerbrbrcr3�scCsd|�dg�kS)NZauxr�)r])rerbrbrcr+�scCsd|�dg�kS)NZaligned4r�)r])rerbrbrc�isintent_aligned4�sr�cCsd|�dg�kS)NZaligned8r�)r])rerbrbrc�isintent_aligned8�sr�cCsd|�dg�kS)NZ	aligned16r�)r])rerbrbrc�isintent_aligned16�sr�Z	INTENT_INZINTENT_INOUTZ
INTENT_OUTZINTENT_HIDEZINTENT_CACHEZINTENT_CZOPTIONALZINTENT_INPLACEZINTENT_ALIGNED4ZINTENT_ALIGNED8ZINTENT_ALIGNED16cCsd|kod|dkS)Nr~�privaterb)rerbrbrcrA�scCsd|kS)N�=rb)rerbrbrcr�scCst|�sdS|dddkS)Nrr�)�"�')r)rerbrbrc�hasinitvalueasstring�sr�cCsd|kS)NZnoterb)rerbrbrcr�scCsFt|�sdSd|kr|d}n|d}||dkrBt|d|�SdS)Nrr�r�r�)r'r)r�r�rbrbrcr�s
cCsd|kS)N�commonrb)r�rbrbrcr�scCs6t|�rdSt|�r2x|dD]}t|�rdSqWdS)Nr�bodyr)rr�containscommon)r��brbrbrcr�sr�cCs:t|�rdSt|�sdSx|dD]}t|�r"dSq"WdS)Nrrr�)r>r�containsmodule)r�r�rbrbrcr�sr�cCsd|kS)Nr�rb)r�rbrbrcrscCst|�dk	S)N)r)r�rbrbrcrscCsdS)Nrrb)rerbrbrc�istruesr�cCsdS)Nrrb)rerbrbrc�isfalse"sr�c@seZdZdS)�	F2PYErrorN)�__name__�
__module__�__qualname__rbrbrbrcr�&sr�c@seZdZdd�Zdd�ZdS)rZcCs
||_dS)N)�mess)�selfr�rbrbrc�__init__,szthrow_error.__init__cCsd||jf}t|��dS)Nz

  var = %s
  Message: %s
)r�r�)r�rer�rbrbrc�__call__/szthrow_error.__call__N)r�r�r�r�r�rbrbrbrcrZ*scGsRdg}}x0tt|��D] }d|||f}|�d|�qWtd|d�|�f�S)Nzlambda vz%s,f%d=f[%d]zf%d(v)z%s:%sz and )�range�len�append�eval�join)�f�l�l2�irbrbrcrS4s

cGsRdg}}x0tt|��D] }d|||f}|�d|�qWtd|d�|�f�S)Nzlambda vz%s,f%d=f[%d]zf%d(v)z%s:%sz or )r�r�r�r�r�)r�r�r�r�rbrbrcrU<s

cCstd�S)Nzlambda v,f=f:not f(v))r�)r�rbrbrcrTDscCs*y|dddkStk
r$dSXdS)Nr��fortranname�r)rs)r�rbrbrcr%HscCsVy4|dd}|dkrt�|s2td|d�t�Wntk
rP|d}YnX|S)Nr�r�r�z"Failed to use fortranname from %s
r�)rsr)r�r�rbrbrcrOscCsy|d�|�}Wntk
r&dSX|s0dS|dkrFt|t�rFdSt|t�rh|t|�kr`dS||}|dd�dk�r|r�d|dt|�d|dd�}n|dd�}|dd�dkr�|r�|dd�d	t|�d
}n|dd�}ntd|t|�f�|S)Nr�r�z'''z
	/* start z multiline (z) */
���z
	/* end multiline (z)*/z-%s multiline block should end with `'''`: %s
)r]rs�
isinstance�str�listr��reprr)r�Z	blockname�comment�counter�rrbrbrc�getmultilineblock]s.
&r�cCs
t|d�S)NZ
callstatement)r�)r�rbrbrcr{sc
Cst|ddd�}|r|St|�r*td�dSddlm}gg}}tttt��|�r`|�	ddg�x�|d	D]�}|d
|}t
|�r�qj||kr�||d}nJ||�}tttt
t��|�r�nt|�r�n|d}t|�s�t|�r�|�d�|�|�qjWd
�||�}	|	�s
d}	|	S)NZcallprotoargumentr)r�z<warning: callstatement is defined without callprotoargument
r)�getctypezchar*Zsize_tr�r�Z_typedefrq�,�void)r�rrVZ	capi_mapsr�rSrHrTr(�extendr-r,rUrDr rFrr�r�)
r�Zcb_mapr�r�Z	arg_typesZ
arg_types2�nre�ctypeZ
proto_argsrbrbrcrs<

cCs
t|d�S)N�usercode)r�)r�rbrbrcr�scCst|ddd�S)Nr�r)r�)r�)r�rbrbrcr�scCs
t|d�S)NZpymethoddef)r�)r�rbrbrcr�scCsxgg}}d|krp|d}d|krhx"|dD]}||kr,|�|�q,Wx(|D]}||krL|�|�qLWn|d}||fS)Nr��sortvars)r�)r��sortargsr�r�rbrbrc�getargs�s

r�cs�g��dg�}���fdd��d��D�}|��d�kr�x"�dD]}|�krH|�|�qHWx,�D]}||krh|�|�qhWn|�d}�|fS)Nr�cs(g|] }t�d|�r|�kr|�qS)r�)r+)�.0r�)r�r�rbrc�
<listcomp>�szgetargs2.<locals>.<listcomp>r�r�)r]�keysr�)r�r�Zauxvarsr�rb)r�r�rcr�s
cCs<d|krdSd}|ddkr,|d|df}|d�|d�S)NZf2pymultilinesr�z
python moduler�)r])r��krbrbrcr�scCs*dt|�dd}d|d||dfS)N�P��z/*%s %s %s*/rq)r�)r�r�rbrbrcr
�scCs$t|t�rttfdd�|g�S|gS)NcSs|||�S)Nrb)�x�yr�rbrbrc�<lambda>��zflatlist.<locals>.<lambda>)r�r�r�flatlist)r�rbrbrcr��s
r�cCs |r|ddkr|dd�S|S)Nrkr�rb)�srbrbrcrY�sr�c	s�t�t�r��fdd��D�St�t�r<��fdd��D�Sx�dt����D]v}|dkr\qNd�kr~|�dkr~�d|}n�}t�|t�r���d||�t�|����qN��d|�|��qNW�S)Ncsg|]}t�|���qSrb)rW)r��_m)�
defaultsepr�rbrcr��szreplace.<locals>.<listcomp>csg|]}t|����qSrb)rW)r�r�)r�r�rbrcr��sr��
separatorsforz#%s#)r�r�r�rWr�r�)r�r�r�r��seprb)r�r�r�rcrW�s

 cCs@t|t�r&x|D]}t||�}qW|S�x|��D�]}|ddkrFq2||k�r,t||t�rl||g||<t||t�r�t||t�r�||||||<n||�||�nxt||t��r8t||t��r8|dk�rxL||��D]$}|||kr�||||||<q�Wnt||||�||<q2||||<q2W|S)Nr�_r�)r�r�rr�r�r��dict)Zrd�arr�r��k1rbrbrcr�s.



cCs�i}t|t�r@x,|D]$}t|||�}t||�}d|krPqW|Sd|krX|d|�sX|Sd|kr�td|di||�}d|kr�t�|d��x |��D�]}|dkr�||||<q�t||t�r�t|||�||<�n�t||t��r.g||<x:||D].}t||i||�}	||	kr�||�	|	|�q�W�n:|ddk�rBq��n&t||t
��rTg||<x�||��D]�}
t|
tj��rh|
|��rht|||
t��r�x�|||
D]N}t|t
��r�td|i||�}d|k�r�|d}nd	}||�	t||���q�WnR|||
}t|t
��r8td|i|�}d|k�r4|d}nd	}||�	t||���qhWnt
d
t||��t||t�r�t||�dk�r�||d||<||gkr�||=q�W|S)N�_break�_checkZneedZneedsr�rr�Z	supertextr�zapplyrules: ignoring rule %s.
r)r�r�r	rrZappend_needsr�r�rWr�r��types�FunctionTyperr�r�)�rulesr�re�retr�Zrr�resr�r�r�r�rbrbrcr	sl







)rr)r�)��__doc__�
__future__rrr�pprintr^r��	functoolsrr�rr�__all__�versionZf2py_version�stderrr`rrXr\rdr�rVr
rhrFrirGrrrDr r7r*rprtr<rMrQrLrOr$r:r9r!r)rNrRrxrPryr{r}rErrr?r>r'r(rIrJr�rCr8r=r;r"r#rHrrKr�r@r&rBr1r2r5r0r4r,r�r.r6r-r3r+r�r�r�r/rArr�rrrr�r�rrr�r��	Exceptionr�rZrSrUrTr%rr�rrrrrr�rrr
r�rYrWrr	rbrbrbrc�<module>s$






$