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__/common_rules.cpython-37.pyc

B

��Fd��@s�dZddlmZmZmZddd�ZddlmZejZddl	m
Z
mZmZm
Z
mZdd	lmZdd
lmZddlmZddd
�Zdd�ZdS)aM

Build common block mechanism for f2py2e.

Copyright 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: 2005/05/06 10:57:33 $
Pearu Peterson

�)�division�absolute_import�print_functionz$Revision: 1.19 $�
����)�__version__)�hasbody�	hascommon�hasnote�
isintent_hide�outmess)�	capi_maps)�	func2subr)�	rmbadnamec
Cs�g}t|�rfx�|d��D]F}i}x$|d|D]}|d|||<q0W|�||d||f�qWn(t|�r�x|dD]}|t|d�}qxW|r�g}g}x0|D](}	|	d|kr�|�|	d�|�|	�q�W|S|S)N�common�vars�bodyr)r
�keys�appendr	�findcommonblocks)
�block�top�ret�nr�v�bZtret�names�t�r�J/opt/alt/python37/lib64/python3.7/site-packages/numpy/f2py/common_rules.pyrs&
rcCs�ggdgd�}dg}|fdd�}dg}|fdd�}dg}|fdd	�}dg}|fd
d�}	�xFt|�D�]8\}
}}|
��}
gg}}x.|D]&}t||�r�|�|�q�|�|�q�W|r�td|
d
�|�d
�|�f�ntd|
d
�|�f�|d|
�|d�x|D]}|t�||���qW|
dk�r<|dd
�|��n|d|
d
�|�f�|dd
�|��|d�|d|
�g}x�|D]�}t�	||�}tj
|}t�|||�}|d�r�|�d|d�n
|�d�|d��}|�s�d}|d||d||f��q�W|d�t
|�}d
�dd�|D��}|d|
|f�|d �x|D]}|d!|
|f��qLW|d"�d#|
k�r~d$}nd%}|d&||
|
��d
�d'gt|��f�|d(|
�|d)||
|
��|
f�|d*�|d+|
|
|
f�|
�d#d,�}|	d-|�|	d.�xb|D]Z}|	d/t�|||��t||��r||d0}t|t��rZd1�|�}|	d2|��qW|	d3�|d4�d5|
d
�td6d7�||��f�qbW||d8<||d9<|d:|d;<t|d4�d<k�r�d|d4<||d:fS)=Nz"COMMON blocks:\n")�commonhooks�initcommonhooks�docs�cSsd|d|f|d<dS)Nz%s
      %srr)�line�srrr �fadd9szbuildhooks.<locals>.faddcSsd|d|f|d<dS)Nz%s
%srr)r%r&rrr �cadd=szbuildhooks.<locals>.caddcSsd|d|f|d<dS)Nz%s
%srr)r%r&rrr �iaddAszbuildhooks.<locals>.iaddcSsd|d|f|d<dS)Nz%s
%srr)r%r&rrr �daddEszbuildhooks.<locals>.daddzF		Constructing COMMON block support for "%s"...
		  %s
		  Hidden: %s
�,z7		Constructing COMMON block support for "%s"...
		  %s
z subroutine f2pyinit%s(setupfunc)zexternal setupfuncZ_BLNK_z	common %szcommon /%s/ %szcall setupfunc(%s)zend
z'static FortranDataDef f2py_%s_def[] = {Zdimsz(%s)z-1z	{"%s",%s,{{%s}},%s},Zrankz
	{NULL}
};cSsg|]}d|�qS)zchar *r)�.0r&rrr �
<listcomp>oszbuildhooks.<locals>.<listcomp>zstatic void f2py_setup_%s(%s) {z	int i_f2py=0;z!	f2py_%s_def[i_f2py++].data = %s;�}�_Z	F_FUNC_US�F_FUNCz3extern void %s(f2pyinit%s,F2PYINIT%s)(void(*)(%s));zchar*z static void f2py_init_%s(void) {z*	%s(f2pyinit%s,F2PYINIT%s)(f2py_setup_%s);z}
zP	F2PyDict_SetItemString(d, "%s", PyFortranObject_New(f2py_%s_def,f2py_init_%s));z\_z&\subsection{Common block \texttt{%s}}
z\begin{description}z\item[]{{}\verb@%s@{}}�note�
z--- %sz\end{description}r#z"	/%s/ %s\n"cSs||S)Nr)r�drrr �<lambda>��zbuildhooks.<locals>.<lambda>r!r"rZlatexdocr)r�lowerrrr
�joinrZvar2fixfortranrZgetctypeZ
c2capi_mapZ
getarrdims�stripr�upper�len�replaceZ
getarrdocsignr�
isinstance�list�map)�mrZfwrapr'Zchooksr(Zihooksr)�docr*�nameZvnamesrZ
lower_nameZhnamesZinamesrZidims�ctZat�dmZdmsZinames1Zinames1_tpsr0�tnamer1rrr �
buildhooks4s�













$rEN)r)�__doc__�
__future__rrrrr$�versionZf2py_versionZauxfuncsr	r
rrr
rrZcrackfortranrrrErrrr �<module>s