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



(��^��@s�dZddlmZmZmZddd�ZddlmZejZddl	m
Z
mZmZm
Z
mZddlmZdd	lmZdd
lmZddd�Zd
d�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|�rx�|dj�D]U}i}x(|d|D]}|d|||<q>W|j||d||f�q#Wn4t|�r�x%|dD]}|t|d�}q�W|rg}g}x<|D]4}	|	d|kr�|j|	d�|j|	�q�W|S|S)N�common�vars�bodyr)r	�keys�appendr�findcommonblocks)
�block�top�ret�nr�v�bZtret�names�t�r�J/opt/alt/python35/lib64/python3.5/site-packages/numpy/f2py/common_rules.pyrs&%
rc
Cs�dgdgddgi}dg}|dd�}dg}|dd	�}dg}|d
d�}dg}|dd
�}	x,t|�D]\}
}}|
j�}
gg}}x;|D]3}t||�r�|j|�q�|j|�q�W|r td|
dj|�dj|�f�ntd|
dj|�f�|d|
�|d�x$|D]}|tj||��q\W|
dkr�|ddj|��n|d|
dj|�f�|ddj|��|d�|d|
�g}x�|D]�}tj	||�}tj
|}tj|||�}|drY|jd|d�n
|jd�|dj�}|s�d}|d||d||f�q�W|d�t
|�}djdd �|D��}|d!|
|f�|d"�x"|D]}|d#|
|f�q�W|d$�d%|
kr8d&}nd'}|d(||
|
j�djd)gt|��f�|d*|
�|d+||
|
j�|
f�|d,�|d-|
|
|
f�|
jd%d.�}|	d/|�|	d0�xv|D]n}|	d1tj|||��t||�r�||d2}t|t�rTd3j|�}|	d4|�q�W|	d5�|djd6|
djtd7d8�||��f�q�W||d<||d<|d9|d:<t|d�d;kr�d|d<||d9fS)<NZcommonhooksZinitcommonhooksZdocsz"COMMON blocks:\n"�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>os	zbuildhooks.<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}z"	/%s/ %s\n"cSs||S)Nr)r�drrr�<lambda>�szbuildhooks.<locals>.<lambda>rZlatexdocr)r�lowerrrr�joinrZvar2fixfortranr
ZgetctypeZ
c2capi_mapZ
getarrdims�stripr�upper�len�replaceZ
getarrdocsignr
�
isinstance�list�map)�mrZfwrapr#Zchooksr$Zihooksr%�docr&�nameZvnamesrZ
lower_nameZhnamesZinamesrZidims�ctZat�dmZdmsZinames1Zinames1_tpsr,�tnamer-rrr�
buildhooks4s�				

&






"



	!




0


r@N���)�__doc__�
__future__rrrrr �versionZf2py_versionZauxfuncsrr	r
rrr
rZcrackfortranrrr@rrrr�<module>s	(