HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/numpy/f2py/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/numpy/f2py/__pycache__/func2subr.cpython-36.pyc
3

���h�#�@s�dZddd�ZdZddlZddlmZmZmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZddd	�Zdd
d�Zddd
�Zdd�ZdS)aW

Rules for building C/API module with 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 License.

NO WARRANTY IS EXPRESSED OR IMPLIED.  USE AT YOUR OWN RISK.
$Date: 2004/11/26 11:13:06 $
Pearu Peterson

z$Revision: 1.16 $�
�z
See `f2py -v`�N)
�getfortranname�
isexternal�
isfunction�isfunction_wrap�isintent_in�isintent_out�islogicalfunction�ismoduleroutine�isscalar�issubroutine�issubroutine_wrap�outmess�showcCs�|dkr|}||kr,t|�td|�dSd||krTt||�td|�dS||d}|dkr�d||kr�d|||df}i}d}d||kr�||d}d	}nd
||kr�||d
}d}d|k�r6|�r|ddkr�d|}nd|||df}n0|ddk�r$d||df}nd||df}nZd|k�rvd||df}d	|k�rld||d	f}nd|}nd	|k�r�d||d	f}d||f}d||k�r�d|dj||d�f}|S)Nz1var2fixfortran: No definition for argument "%s".
��typespecz/var2fixfortran: No typespec for argument "%s".
�type�typenamez%s(%s)Zkindselector�kind�charselector�len�*�:�(*)z	%s(len=*)z	%s(%s=%s)z%s*(%s)z%s*%sz	%s(len=%sz%s,kind=%s)z%s)z%s(kind=%s)z%s %s�	dimension�,)rrr)rr)rr�join)�vars�a�fa�f90modeZvardef�selectorZlk�r#�5/tmp/pip-build-5_djhm0z/numpy/numpy/f2py/func2subr.py�var2fixfortransP





r%cs�t|�st�g�|d}x�|dD]~}|d|}xlt|jdg��D]X\}}|dkrDd||f}tddgd�}d	||f|d
<�j|�|||<||d|<qDWq"W|dj��t��}	dg}
|
fdd
�}|d}t|�}
t	|�}d|}||k�r||||<|g|ddd�}n|g|d}t
||||�}|dd�dk�r�|�r`d|dd�}nd|dd�}||d}|jdd�dk�r�d|d<dj|�}|�r�|d|d||f�|�s|d|d|
f�n.|d||f�|	�s|d|
�|d|
}|	�r>x0|djd �D]}|j
�jd!��r||��qW|dd�}g}x2|D]*}t||��rT|d|�|j|��qTWxF|D]>}||k�r��q�t||��r�|t
|||d"��|j|��q�WxF|D]>}||k�r�q�t||��r�|t
|||d"��|j|��q�Wx.|D]&}||k�r*�q|t
|||d"���qW||�|	�rx|�rXn |d#�||dj
��|d$�dj�fd%d&�|D��}|�s�t|��r�|d'||
|f�n|d(||
|f�|�r�|d)|d|f�n|d*�|
d+S),Nr�argsrrzf2py_%s_d%s�integer�hide)r�intentz
shape(%s, %s)�=rcSsd|d|f|d<dS)Nz%s
      %srr#)�line�retr#r#r$�addbszcreatefuncwrapper.<locals>.add�namez
%sf2pywrapr�
z
character*(*)zcharacter(len=10)zcharacter*10rrz(*)�10z, zsubroutine f2pywrap_%s_%s (%s)�
modulenamezuse %s, only : %szsubroutine f2pywrap%s (%s)zexternal %s�saved_interface�
zuse )r!�	interfacez
end interfacecsg|]}|�kr|�qSr#r#)�.0r)�
extra_argsr#r$�
<listcomp>�sz%createfuncwrapper.<locals>.<listcomp>z%s = .not.(.not.%s(%s))z%s = %s(%s)zend subroutine f2pywrap_%s_%s�endr)r�AssertionError�	enumerate�get�dict�append�extend�boolrrr%r�split�lstrip�
startswithrrrr
)�rout�	signaturerr�v�i�d�dn�dv�need_interfacer,r-r.�fortrannamer!Znewnamer&�lZ
charselect�sargsr+�dumped_argsr#)r6r$�createfuncwrapperNs�










rOcs�t|�st�g�|d}x�|dD]~}|d|}xlt|jdg��D]X\}}|dkrDd||f}tddgd�}d	||f|d
<�j|�|||<||d|<qDWq"W|dj��t��}	dg}
|
fdd
�}|d}t|�}
t	|�}|d}dj
|�}|�r.|d|d||f�|�sP|d|d|
f�n"|d||f�|	�sP|d|
�|	�r�x0|djd�D]}|j�j
d��rf||��qfWg}x2|D]*}t||��r�|d|�|j|��q�WxF|D]>}||k�rؐq�t||��r�|t|||d��|j|��q�Wx.|D]&}||k�r �q|t|||d���qW|	�rf|�rFn |d�||dj��|d�dj
�fdd�|D��}|�s�|d|
|f�|�r�|d|d|f�n|d�|
d S)!Nrr&rrzf2py_%s_d%sr'r()rr)z
shape(%s, %s)r*rcSsd|d|f|d<dS)Nz%s
      %srr#)r+r,r#r#r$r-�szcreatesubrwrapper.<locals>.addr.z, zsubroutine f2pywrap_%s_%s (%s)r1zuse %s, only : %szsubroutine f2pywrap%s (%s)zexternal %sr2r3zuse )r!r4z
end interfacecsg|]}|�kr|�qSr#r#)r5r)r6r#r$r7�sz%createsubrwrapper.<locals>.<listcomp>zcall %s(%s)zend subroutine f2pywrap_%s_%sr8r)r
r9r:r;r<r=r>r?rrrr@rArBrrr%)rCrDrrrErFrGrHrIrJr,r-r.rKr!r&rMr+rNr#)r6r$�createsubrwrapper�s|






rPcCs:t|�r�t|�}|d}td||f�tj|�}|}|}d|kr^|d}|d||d|<|d|}t|�s�d|kr�g|d<|djd�d}x |dD]}|jd�r�d	}Pq�W|r�|djd
|�|g|d|ddd�<|t|�fSt|��r2t|�}|d}td||f�tj|�}|t	|�fS|d
fS)Nr.z6		Creating wrapper for Fortran function "%s"("%s")...
�resultrr)�outrzout=rzout=%sr&z8		Creating wrapper for Fortran subroutine "%s"("%s")...
r)
rrr�copyr	r=rBrOrrP)rCrKr.�fname�rnameZfvar�flagrFr#r#r$�assubrsB



rW���)NN)r)r)�__doc__�__version__Zf2py_versionrSZauxfuncsrrrrrr	r
rrr
rrrr%rOrPrWr#r#r#r$�<module>s<
1
j
P