Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/site-packages/numpy/f2py/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/site-packages/numpy/f2py/__pycache__/auxfuncs.cpython-35.pyc



(��^$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�d��Zgd�d��ZhGd�d��d�ei�ZjGd�dY�dY�Zkd�dR�Zld�dT�Zmd�dS�Znd�d$�Zod�d�Zpddd�d��Zqd�d�Zrid�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~id�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_errorcCs&tjdd�r"tjj|�dS)N�verboser)�options�get�sys�stdout�write)�t�rb�F/opt/alt/python35/lib64/python3.5/site-packages/numpy/f2py/auxfuncs.pyrV?scCs
dtkS)NZcapi)�debugoptions)�varrbrbrcr
DscCs'd|ko&|ddko&t|�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�	dimensionrz(*)���)rG)rerbrbrcrYscCsd|kot|�S)Nrj)r&)rerbrbrcr_scCs#t|�p!t|�p!t|�S)N)rrFr&)rerbrbrcrDcscCst|�o|jd�dkS)Nrf�complex�double complex)rlrm)rDr])rerbrbrcr gscCst|�o|jd�dkS)Nrf�logical)rDr])rerbrbrcr7lscCst|�o|jd�dkS)Nrf�integer)rDr])rerbrbrcr*pscCst|�o|jd�dkS)Nrf�real)rDr])rerbrbrc�isrealtsrqcCsNy|ddSWn7tk
rIy|ddSWntk
rDYnXYnXdS)NZkindselector�*�kind)�KeyError)rerbrbrc�get_kindxs

rucCs9t|�sdS|jd�dkr)dSt|�dkS)Nrrfrorn�8)rorn)rDr]ru)rerbrbrcr<�s
cCs9t|�sdS|jd�dkr)dSt|�dkS)Nrrfroz-1)rDr]ru)rerbrbrcrM�s
cCs9t|�sdS|jd�dkr)dSt|�dkS)Nrrfroz-2)rDr]ru)rerbrbrcrQ�s
cCs9t|�sdS|jd�dkr)dSt|�dkS)Nrrfroz-4)rDr]ru)rerbrbrcrL�s
cCs9t|�sdS|jd�dkr)dSt|�dkS)Nrrfroz-8)rDr]ru)rerbrbrcrO�s
cCs9t|�sdS|jd�dks)dSt|�dkS)Nrrfrprv)rDr]ru)rerbrbrcr$�s
cCs9t|�sdS|jd�dks)dSt|�dkS)NrrfrpZ16)rDr]ru)rerbrbrcr:�s
cCs t|�sdSt|�dkS)Nr�32)r ru)rerbrbrcr9�scCst|�o|jd�dkS)Nrfrl�double complex)rlrx)rr])rerbrbrcr!�scCs1t|�o0|jd�dko0t|�dkS)Nrfro�1)rr]ru)rerbrbrcr)�s!cCs1t|�o0|jd�dko0t|�dkS)Nrfrornz-1)rorn)rr]ru)rerbrbrcrN�s!cCs1t|�o0|jd�dko0t|�dkS)Nrfrornz-2)rorn)rr]ru)rerbrbrcrR�s!cCs1t|�o0|jd�dko0t|�dkS)Nrfrornz-4)rorn)rr]ru)rerbrbrc�isunsignedarray�s!rzcCs1t|�o0|jd�dko0t|�dkS)Nrfrornz-8)rorn)rr]ru)rerbrbrcrP�s!cCs1t|�o0|jd�dko0t|�dkS)Nrfrornry)rorn)rr]ru)rerbrbrc�issigned_chararray�s!r{cCs1t|�o0|jd�dko0t|�dkS)Nrfrorn�2)rorn)rr]ru)rerbrbrc�issigned_shortarray�s!r}cCs1t|�o0|jd�dko0t|�dkS)Nrfrorn�4)rorn)rr]ru)rerbrbrc�issigned_array�s!rcCs1t|�o0|jd�dko0t|�dkS)Nrfrornrv)rorn)rr]ru)rerbrbrcrE�s!cCsd|kod|dkS)N�attrspecZallocatablerb)rerbrbrcr�scCsd|kpt|�S)Nrj)rF)rerbrbrc�	ismutable�sr�cCs
d|kS)N�
modulenamerb)�routrbrbrcr?�scCsd|kod|dkS)N�block�modulerb)r�rbrbrcr>�scCsd|kod|dkS)Nr��functionrb)r�rbrbrcr'scCs-t|�rdSto,t|�o,t|�S)Nr)r,�	wrapfuncsr'r&)r�rbrbrcr(scCsd|kod|dkS)Nr�Z
subroutinerb)r�rbrbrcrIscCs&t|�rdSt|�o%t|�S)Nr)r,rI�hasassumedshape)r�rbrbrcrJscCss|jd�rdSxY|dD]M}xD|dj|i�jdg�D] }|dkrGd|d<dSqGWqWdS)Nr�T�args�varsrj�:F)r])r��a�drbrbrcr�s)
r�cCst|�pt|�S)N)r'rI)r�rbrbrcrC scCsYt|�sdSd|kr)|d}n
|d}||dkrUt|d|�SdS)Nr�result�namer�)r'r7)r�r�rbrbrcr8$s

cCsYt|�sdSd|kr)|d}n
|d}||dkrUt|d|�SdS)Nrr�r�r�)r'r<)r�r�rbrbrcr=0s

cCsYt|�sdSd|kr)|d}n
|d}||dkrUt|d|�SdS)Nrr�r�r�)r'r:)r�r�rbrbrcr;<s

cCsYt|�sdSd|kr)|d}n
|d}||dkrUt|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
cCsYt|�sdSd|kr)|d}n
|d}||dkrUt|d|�SdS)Nrr�r�r�)r'rF)r�r�rbrbrcrHbs

cCsd|ko|dS)NZ	externalsrb)r�rbrbrcrnscCsd|kod|dkS)N�f2pyenhancementsZ
threadsaferb)r�rbrbrcrKrscCsd|ko|dS)Nr�rb)r�rbrbrc�hasvariableswsr�cCs6d|ko5d|dko5d|dko5t|�S)Nr��optional�required)r4)rerbrbrcr@{scCsd|kod|dkS)Nr�Zexternalrb)rerbrbrcr&�scCst|�ot|�S)N)r@r4)rerbrbrcrB�scCs�d|krdSd|dkr$dSd|dkr8dSd|dkrLdSd|dkr`dSd|dkrtdSd	|dkr�dSdS)
N�intentr�hider�inplace�in�out�inout�outinrb)rerbrbrcr1�scCsZd|koYd|dks,d|dkoYd|dkoYd|dkoYd|dkS)Nr�r�r�r�r�r�rb)rerbrbrcr2�s cCsd|jdg�kS)Nr�r�)r])rerbrbrcr5�scCsPd|koOd|dkpOd|dkoOd|dkoOttt�|�S)Nr�r�r�r�)rUr2r3)rerbrbrcr0�s cCst|�S)N)r0)rerbrbrcr4�scCsd|jdg�kS)N�cr�)r])rerbrbrcr,�scCsd|jdg�kS)N�cacher�)r])rerbrbrc�isintent_cache�sr�cCsd|jdg�kS)N�copyr�)r])rerbrbrcr.�scCsd|jdg�kS)NZ	overwriter�)r])rerbrbrcr6�scCsd|jdg�kS)N�callbackr�)r])rerbrbrcr-�scCsd|jdg�kS)Nr�r�)r])rerbrbrcr3�scCsd|jdg�kS)NZauxr�)r])rerbrbrcr+�scCsd|jdg�kS)NZaligned4r�)r])rerbrbrc�isintent_aligned4�sr�cCsd|jdg�kS)NZaligned8r�)r])rerbrbrc�isintent_aligned8�sr�cCsd|jdg�kS)NZ	aligned16r�)r])rerbrbrc�isintent_aligned16�sr�Z	INTENT_INZINTENT_INOUTZ
INTENT_OUTZINTENT_HIDEZINTENT_CACHEZINTENT_C�OPTIONALZINTENT_INPLACEZINTENT_ALIGNED4ZINTENT_ALIGNED8ZINTENT_ALIGNED16cCsd|kod|dkS)Nr��privaterb)rerbrbrcrA�scCs
d|kS)N�=rb)rerbrbrcr�scCs"t|�sdS|dddkS)Nrr��"�')r�r�)r)rerbrbrc�hasinitvalueasstring�sr�cCs
d|kS)NZnoterb)rerbrbrcr�scCsYt|�sdSd|kr)|d}n
|d}||dkrUt|d|�SdS)Nrr�r�r�)r'r)r�r�rbrbrcr�s

cCs
d|kS)N�commonrb)r�rbrbrcr�scCsEt|�rdSt|�rAx"|dD]}t|�r'dSq'WdS)Nr�bodyr)rr�containscommon)r��brbrbrcr�sr�cCsIt|�rdSt|�s dSx"|dD]}t|�r+dSq+WdS)Nrrr�)r>r�containsmodule)r�r�rbrbrcr�sr�cCs
d|kS)Nr�rb)r�rbrbrcrscCst|�dk	S)N)r)r�rbrbrcrscCsdS)Nrrb)rerbrbrc�istruesr�cCsdS)Nrrb)rerbrbrc�isfalse"sr�c@seZdZdS)�	F2PYErrorN)�__name__�
__module__�__qualname__rbrbrbrcr�&sr�c@s(eZdZdd�Zdd�ZdS)rZcCs
||_dS)N)�mess)�selfr�rbrbrc�__init__,szthrow_error.__init__cCs#d||jf}t|��dS)Nz

  var = %s
  Message: %s
)r�r�)r�rer�rbrbrc�__call__/szthrow_error.__call__N)r�r�r�r�r�rbrbrbrcrZ*scGskdg}}x>tt|��D]*}d|||f}|jd|�q Wtd|dj|�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

cGskdg}}x>tt|��D]*}d|||f}|jd|�q Wtd|dj|�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

cCs
td�S)Nzlambda v,f=f:not f(v))r�)r�rbrbrcrTDscCs3y|dddkSWntk
r.dSYnXdS)Nr��fortranname�r)rt)r�rbrbrcr%Hs
cCseyB|dd}|dkr#t�|sAtd|d�t�Wntk
r`|d}YnX|S)Nr�r�r�z"Failed to use fortranname from %s
r�)rtr)r�r�rbrbrcrOs

c
CsSy|dj|�}Wntk
r/dSYnX|s:dS|dkrYt|t�rYdSt|t�r�|t|�kr~dS||}|dd�dkrO|r�d|dt|�d|dd�}n|dd�}|dd�dkr5|r"|dd�dt|�d	}qO|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�r�)r]rt�
isinstance�str�listr��reprr)r�Z	blockname�comment�counter�rrbrbrc�getmultilineblock]s.
	
-%r�cCs
t|d�S)NZ
callstatement)r�)r�rbrbrcr{sc
Csnt|ddd�}|r|St|�r9td�dSddlm}gg}}tttt��|�r�|j	ddg�x�|d	D]�}|d
|}t
|�r�q�||kr�||d}nk||�}tttt
t��|�r�nt|�rn
|d}t|�s-t|�r:|jd�|j|�q�Wd
j||�}	|	sjd}	|	S)NZcallprotoargumentr�rz<warning: callstatement is defined without callprotoargument
r)�getctypezchar*Zsize_tr�r�Z_typedefrr�,�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�scCs�gg}}d|kr�|d}d|kr�x+|dD]}||kr:|j|�q:Wx4|D]}||krd|j|�qdWn
|d}||fS)Nr��sortvars)r�)r��sortargsr�r�rbrbrc�getargs�s



r�cs�g�jdg�}���fdd��dj�D�}|��d�kr�x+�dD]}|�kr`|j|�q`Wx8�D]}||kr�|j|�q�Wn|�d}�|fS)Nr�cs6g|],}t�d|�r|�kr|�qS)r�)r+)�.0r�)r�r�rbrc�
<listcomp>�s	zgetargs2.<locals>.<listcomp>r�r�)r]�keysr�)r�r�Zauxvarsr�rb)r�r�rcr�s&

cCsNd|krdSd}|ddkr:|d|df}|dj|d�S)NZf2pymultilinesr�z
python moduler�)r])r��krbrbrcr�scCs1dt|�dd}d|d||dfS)N�P��z/*%s %s %s*/rr)r�)r�r�rbrbrcr
�scCs/t|t�r(ttdd�|g�S|gS)NcSs|||�S)Nrb)�x�yr�rbrbrc�<lambda>�szflatlist.<locals>.<lambda>)r�r�r�flatlist)r�rbrbrcr��sr�cCs(|r$|ddkr$|dd�S|S)Nrr�rkrkrb)�srbrbrcrY�sr�cst�t�r)��fdd��D�St�t�rR��fdd��D�Sx�dt�j��D]�}|dkr~qid�kr�|�dkr��d|}n�}t�|t�r��jd||jt�|����qi�jd|�|��qiW�S)Ncs"g|]}t�|���qSrb)rW)r��_m)�
defaultsepr�rbrcr��s	zreplace.<locals>.<listcomp>cs"g|]}t|����qSrb)rW)r�r�)r�r�rbrcr��s	r��
separatorsforz#%s#)r�r�r�rWr�r�)r�r�r�r��seprb)r�r�r�rcrW�s,cCs�t|t�r3x|D]}t||�}qW|SxP|j�D]B}|ddkrYq@||krtt||t�r�||g||<t||t�r�t||t�r�||||||<qq||j||�q�t||t�r�t||t�r�|dkrVx\||j�D],}|||kr#||||||<q#Wq�t||||�||<q@||||<q@W|S)Nr�_r�)r�r�rr�r�r��dict)Zrd�arr�r��k1rbrbrcr�s.
cCshi}t|t�rXx<|D]4}t|||�}t||�}d|krPqW|Sd|kry|d|�ry|Sd|kr�td|di||�}d|kr�tj|d�x�|j�D]�}|dkr�||||<q�t||t�rt|||�||<n�t||t�r�g||<x�||D]?}t||i||�}	||	krC||j	|	|�qCWn�|ddkr�q�not||t
�r�g||<xO||j�D]"}
t|
tj�r�|
|�r�t|||
t�r�x�|||
D]f}t|t
�rctd|i||�}d|kr]|d}nd	}||j	t||��qWq�|||
}t|t
�r�td|i|�}d|kr�|d}nd	}||j	t||��q�Wnt
d
t||��t||t�r�t||�dkrI||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



!
!)��__doc__�
__future__rrr�pprintr^r��	functoolsrr�rr�__all__�versionZf2py_version�stderrr`rrXr\rdr�rVr
rhrFrirGrrrDr r7r*rqrur<rMrQrLrOr$r:r9r!r)rNrRrzrPr{r}rrErr�r?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$							


$