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

B

��Fd�V�"@s�dZddlmZmZmZddlmZddlmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%ddlm&Z&ej'Z(ddd	d
gddd
ddd�Z)dddddddddddddddddd�dddgddddgddgddddddddddddddd d!d"e
d#e e
�did$�d%e	d&id'e	d(igd)e	d
id*gd+eee e�e e��d,�e	d-id.d/d0e	d1id2e	d3igd)e	d
id4d5gd6ed7�d8d9d:d;e	d&id<e	d=igd>d)e	d
id4d*d?ged@�dAdBe
d#igdCedD�ed6dE�gZ*eee�dFieee�dFiedAieee�dGe
d#igieee�dGe
d#igiedBee
e�d#ee
e�dHigieee�dIieee�dIiddJ�	eee�dKeee e��dLedMedKieee�dNeee e��dOedNedNieee�d?eee e��dPedPed?iedQiedRiedSidT�e e�dUieeee%dV��die	dWiedXiee	ee e�e��dYiee	ee e�e e���dZiee	eee��d[iee	eee e���d\iged)d*gie	d
iged]�ed^ied_iged`iedaied?igeee�ddb�e	dcidde	deigd?d5e	d
id4geee�df�e	dgiedhiediigedjiedaigeee�ddb�dkdleddm�e	dniedoe e�dpidqgeeee!ee��ddr�e	dWidsedtidue	dvigdwed?igeee�df�dIedx�g
Z+ia,dydz�Z-d{d|�Z.d}S)~aK

Build call-back 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/07/20 11:27:58 $
Pearu Peterson

�)�division�absolute_import�print_function�)�__version__)�
applyrules�	debugcapi�
dictappend�errmess�getargs�hasnote�isarray�	iscomplex�iscomplexarray�iscomplexfunction�
isfunction�
isintent_c�
isintent_hide�isintent_in�isintent_inout�isintent_nothide�isintent_out�
isoptional�
isrequired�isscalar�isstring�isstringfunction�issubroutine�l_and�l_not�l_or�outmess�replace�
stripcomma�throw_error)�cfuncszPtypedef #rctype#(*#name#_typedef)(#optargs_td##args_td##strarglens_td##noargs#);a�

#begintitle#
PyObject *#name#_capi = NULL;/*was Py_None*/
PyTupleObject *#name#_args_capi = NULL;
int #name#_nofargs = 0;
jmp_buf #name#_jmpbuf;
/*typedef #rctype#(*#name#_typedef)(#optargs_td##args_td##strarglens_td##noargs#);*/
#static# #rctype# #callbackname# (#optargs##args##strarglens##noargs#) {
	PyTupleObject *capi_arglist = #name#_args_capi;
	PyObject *capi_return = NULL;
	PyObject *capi_tmp = NULL;
	int capi_j,capi_i = 0;
	int capi_longjmp_ok = 1;
#decl#
#ifdef F2PY_REPORT_ATEXIT
f2py_cb_start_clock();
#endif
	CFUNCSMESS("cb:Call-back function #name# (maxnofargs=#maxnofargs#(-#nofoptargs#))\n");
	CFUNCSMESSPY("cb:#name#_capi=",#name#_capi);
	if (#name#_capi==NULL) {
		capi_longjmp_ok = 0;
		#name#_capi = PyObject_GetAttrString(#modulename#_module,"#argname#");
	}
	if (#name#_capi==NULL) {
		PyErr_SetString(#modulename#_error,"cb: Callback #argname# not defined (as an argument or module #modulename# attribute).\n");
		goto capi_fail;
	}
	if (F2PyCapsule_Check(#name#_capi)) {
	#name#_typedef #name#_cptr;
	#name#_cptr = F2PyCapsule_AsVoidPtr(#name#_capi);
	#returncptr#(*#name#_cptr)(#optargs_nm##args_nm##strarglens_nm#);
	#return#
	}
	if (capi_arglist==NULL) {
		capi_longjmp_ok = 0;
		capi_tmp = PyObject_GetAttrString(#modulename#_module,"#argname#_extra_args");
		if (capi_tmp) {
			capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp);
			if (capi_arglist==NULL) {
				PyErr_SetString(#modulename#_error,"Failed to convert #modulename#.#argname#_extra_args to tuple.\n");
				goto capi_fail;
			}
		} else {
			PyErr_Clear();
			capi_arglist = (PyTupleObject *)Py_BuildValue("()");
		}
	}
	if (capi_arglist == NULL) {
		PyErr_SetString(#modulename#_error,"Callback #argname# argument list is not set.\n");
		goto capi_fail;
	}
#setdims#
#pyobjfrom#
	CFUNCSMESSPY("cb:capi_arglist=",capi_arglist);
	CFUNCSMESS("cb:Call-back calling Python function #argname#.\n");
#ifdef F2PY_REPORT_ATEXIT
f2py_cb_start_call_clock();
#endif
	capi_return = PyObject_CallObject(#name#_capi,(PyObject *)capi_arglist);
#ifdef F2PY_REPORT_ATEXIT
f2py_cb_stop_call_clock();
#endif
	CFUNCSMESSPY("cb:capi_return=",capi_return);
	if (capi_return == NULL) {
		fprintf(stderr,"capi_return is NULL\n");
		goto capi_fail;
	}
	if (capi_return == Py_None) {
		Py_DECREF(capi_return);
		capi_return = Py_BuildValue("()");
	}
	else if (!PyTuple_Check(capi_return)) {
		capi_return = Py_BuildValue("(N)",capi_return);
	}
	capi_j = PyTuple_Size(capi_return);
	capi_i = 0;
#frompyobj#
	CFUNCSMESS("cb:#name#:successful\n");
	Py_DECREF(capi_return);
#ifdef F2PY_REPORT_ATEXIT
f2py_cb_stop_clock();
#endif
	goto capi_return_pt;
capi_fail:
	fprintf(stderr,"Call-back #name# failed.\n");
	Py_XDECREF(capi_return);
	if (capi_longjmp_ok)
		longjmp(#name#_jmpbuf,-1);
capi_return_pt:
	;
#return#
}
#endtitle#
zsetjmp.hZ
CFUNCSMESSz#maxnofargs#z#nofoptargs#zC	def #argname#(#docsignature#): return #docreturn#\n\
#docstrsigns#zc
{{}\verb@def #argname#(#latexdocsignature#): return #docreturn#@{}}
#routnote#

#latexdocstrsigns#z1def #argname#(#docsignature#): return #docreturn#)�
cbtypedefs�body�need�
maxnofargs�
nofoptargs�docstr�latexdocstr�docstrshort�
�,�z\n"
")�decl�args�optargs�	pyobjfrom�freemem�args_td�
optargs_td�args_nm�
optargs_nm�	frompyobj�setdims�docstrsigns�latexdocstrsigns�latexdocstrreq�latexdocstropt�latexdocstrout�latexdocstrcbsz/*decl*/z
/*pyobjfrom*/z
/*frompyobj*/z/*freemem*/z/*setdims*/z	Required arguments:z	Optional arguments:z	Return objects:z	Call-back functions:z\noindent Required arguments:z\noindent Optional arguments:z\noindent Return objects:z\noindent Call-back functions:z
--- #note#)Z
separatorsforr1r4r:r2r3�return�
strarglensr5r6r7�
strarglens_tdr8r9�
strarglens_nm�noargsr;r<r=�	docstrreq�	docstropt�	docstrout�	docstrcbs�	docreturn�docsign�
docsignoptr>r?r@rAZroutnotez	#ctype# return_value;z)	CFUNCSMESS("cb:Getting return_value->");z�	if (capi_j>capi_i)
		GETSCALARFROMPYTUPLE(capi_return,capi_i++,&return_value,#ctype#,"#ctype#_from_pyobj failed in converting return_value of call-back function #name# to C #ctype#\n");z5	fprintf(stderr,"#showvalueformat#.\n",return_value);z#ctype#_from_pyobjZGETSCALARFROMPYTUPLEz	return return_value;)r1r:r(rB�_checkz?	fprintf(stderr,"debug-capi:cb:#name#:%d:\n",return_value_len);z)#ctype# return_value,int return_value_lenzreturn_value,&return_value_lenz#ctype# ,intz+	CFUNCSMESS("cb:Getting return_value->\"");z\	if (capi_j>capi_i)
		GETSTRFROMPYTUPLE(capi_return,capi_i++,return_value,return_value_len);z7	fprintf(stderr,"#showvalueformat#\".\n",return_value);zstring.hZGETSTRFROMPYTUPLEzreturn;)r4r2r8r6r:r(rBrNz<
#ifndef F2PY_CB_RETURNCOMPLEX
#ctype# *return_value
#endif
z3
#ifndef F2PY_CB_RETURNCOMPLEX
return_value
#endif
z0
#ifndef F2PY_CB_RETURNCOMPLEX
#ctype# *
#endif
z<
#ifdef F2PY_CB_RETURNCOMPLEX
	#ctype# return_value;
#endif
a�	if (capi_j>capi_i)
#ifdef F2PY_CB_RETURNCOMPLEX
		GETSCALARFROMPYTUPLE(capi_return,capi_i++,&return_value,#ctype#,"#ctype#_from_pyobj failed in converting return_value of call-back function #name# to C #ctype#\n");
#else
		GETSCALARFROMPYTUPLE(capi_return,capi_i++,return_value,#ctype#,"#ctype#_from_pyobj failed in converting return_value of call-back function #name# to C #ctype#\n");
#endif
z�
#ifdef F2PY_CB_RETURNCOMPLEX
	fprintf(stderr,"#showvalueformat#.\n",(return_value).r,(return_value).i);
#else
	fprintf(stderr,"#showvalueformat#.\n",(*return_value).r,(*return_value).i);
#endif

zJ
#ifdef F2PY_CB_RETURNCOMPLEX
	return return_value;
#else
	return;
#endif
z#ctype#)r3r9r7r1r:rBr(rNz		#pydocsignout#z"\item[]{{}\verb@#pydocsignout#@{}}z#rname#,)rIr@rKrN)rNrBz
		#pydocsign#z\item[]{{}\verb@#pydocsign#@{}}z--- See above.z
#varname#,)	rHrGrIr?r>r@rLrMZdependz#ctype# #varname_i#z#ctype# *#varname_i#_cb_capiz#ctype# *#varname_i#z#varname_i#z#varname_i#_cb_capiz	#ctype# *z,int #varname_i#_cb_lenz,intz,#varname_i#_cb_len)r2r8r6rCrDrEz,	#ctype# #varname_i#=(*#varname_i#_cb_capi);z8intent(c,out) is forbidden for callback scalar argumentsz&	CFUNCSMESS("cb:Getting #varname#->");z�	if (capi_j>capi_i)
		GETSCALARFROMPYTUPLE(capi_return,capi_i++,#varname_i#_cb_capi,#ctype#,"#ctype#_from_pyobj failed in converting argument #varname# of call-back function #name# to C #ctype#\n");z4	fprintf(stderr,"#showvalueformat#.\n",#varname_i#);z=	fprintf(stderr,"#showvalueformat#.\n",*#varname_i#_cb_capi);zH	fprintf(stderr,"#showvalueformat#.\n",(#varname_i#).r,(#varname_i#).i);zZ	fprintf(stderr,"#showvalueformat#.\n",(*#varname_i#_cb_capi).r,(*#varname_i#_cb_capi).i);)r1�errorr:r(rNz�	if (#name#_nofargs>capi_i)
		if (PyTuple_SetItem((PyObject *)capi_arglist,capi_i++,pyobj_from_#ctype#1(#varname_i#)))
			goto capi_fail;z�	if (#name#_nofargs>capi_i)
		if (PyTuple_SetItem((PyObject *)capi_arglist,capi_i++,pyarr_from_p_#ctype#1(#varname_i#_cb_capi)))
			goto capi_fail;zpyobj_from_#ctype#1zpyarr_from_p_#ctype#1)r4r(rN�	_optionalz(	CFUNCSMESS("cb:Getting #varname#->\"");z]	if (capi_j>capi_i)
		GETSTRFROMPYTUPLE(capi_return,capi_i++,#varname_i#,#varname_i#_cb_len);zM	fprintf(stderr,"#showvalueformat#\":%d:.\n",#varname_i#,#varname_i#_cb_len);)r:r(rNzf	fprintf(stderr,"debug-capi:cb:#varname#=\"#showvalueformat#\":%d:\n",#varname_i#,#varname_i#_cb_len);z�	if (#name#_nofargs>capi_i)
		if (PyTuple_SetItem((PyObject *)capi_arglist,capi_i++,pyobj_from_#ctype#1size(#varname_i#,#varname_i#_cb_len)))
			goto capi_fail;z�	if (#name#_nofargs>capi_i) {
		int #varname_i#_cb_dims[] = {#varname_i#_cb_len};
		if (PyTuple_SetItem((PyObject *)capi_arglist,capi_i++,pyarr_from_p_#ctype#1(#varname_i#,#varname_i#_cb_dims)))
			goto capi_fail;
	}zpyobj_from_#ctype#1sizez3	npy_intp #varname_i#_Dims[#rank#] = {#rank*[-1]#};z
	#cbsetdims#;)r1r;rN�_dependz-	fprintf(stderr,"debug-capi:cb:#varname#\n");z�	if (#name#_nofargs>capi_i) {
		PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,#rank#,#varname_i#_Dims,#atype#,NULL,(char*)#varname_i#,0,NPY_ARRAY_CARRAY,NULL); /*XXX: Hmm, what will destroy this array??? */
z�	if (#name#_nofargs>capi_i) {
		PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,#rank#,#varname_i#_Dims,#atype#,NULL,(char*)#varname_i#,0,NPY_ARRAY_FARRAY,NULL); /*XXX: Hmm, what will destroy this array??? */
z�
		if (tmp_arr==NULL)
			goto capi_fail;
		if (PyTuple_SetItem((PyObject *)capi_arglist,capi_i++,(PyObject *)tmp_arr))
			goto capi_fail;
})r4rNrPz�	if (capi_j>capi_i) {
		PyArrayObject *rv_cb_arr = NULL;
		if ((capi_tmp = PyTuple_GetItem(capi_return,capi_i++))==NULL) goto capi_fail;
		rv_cb_arr =  array_from_pyobj(#atype#,#varname_i#_Dims,#rank#,F2PY_INTENT_INz|F2PY_INTENT_Cz�,capi_tmp);
		if (rv_cb_arr == NULL) {
			fprintf(stderr,"rv_cb_arr is NULL\n");
			goto capi_fail;
		}
		MEMCOPY(#varname_i#,PyArray_DATA(rv_cb_arr),PyArray_NBYTES(rv_cb_arr));
		if (capi_tmp != (PyObject *)rv_cb_arr) {
			Py_DECREF(rv_cb_arr);
		}
	}z	fprintf(stderr,"<-.\n");ZMEMCOPY)rKrNcCsdgt|d<xR|dD]F}|ddkrx4|dD](}|rHt||d�q0td|d�q0WqWdS)N�namer'�blockZ	interfacezwarning: empty body for %s
)�cb_map�
buildcallbackr
)�mZbi�b�rX�F/opt/alt/python37/lib64/python3.7/site-packages/numpy/f2py/cb_rules.py�buildcallbacks�srZcCs~ddlm}td|d|f�t|�\}}||_|d}|�||�}ti|�}t|�|d|dg�x>t	D]6}d|kr�|d|�s�d|krpt
|||�}	t||	�}qpWi}
x�t|�D]�\}}|j||||d�}||
|<xxt
D]p}d|kr�q�d	|k�r
t||��r
q�d|k�r&|d||��s.d|kr�t
||||�}	t||	�}d
|kr�Pq�Wq�Wx�|D]�}|
|}x�t
D]�}d|k�r��qrd	|k�srd	|k�r�t||��r��qrd|k�r�|d||��s�d|k�rrt
||||�}	t||	�}d
|k�rrP�qrW�q`Wx�|D]�}|
|}xvt
D]n}d|k�r,�qd	|k�r:�qd|k�rV|d||��s`d|k�rt
||||�}	t||	�}d
|k�rP�qW�qWd|k�r�d|k�r�t|dt��r�|dd
g|d<|dd
g|d<|dd
g|d<t|dt��rttdd|di��|d<ttdd|di��}
|
dk�rRttdd|di��|d<ntd|d|
d��|d<|d�dd�|d<|d�dd�|d<g|d<g|d <x�d!D]�}||k�r�t||t��r�|d|||d<d"|}||k�r�t||t��r�|d ||d#d�d$g||dd�d%g|d <�q�Wd|k�r\d|d<d|d&<d|d'<|�d��s�|�d��s�|�d(��s�d)|d*<t
t|�}	|	d+tj|d<t|	d,t��r�|	d,g|	d,<d,|k�r�x0tj��D]"}||d,k�r�|	d,�|��q�W|	d-tj|dd.<|	d,�|dd.�|	d,tj|d<|	d/|	d0|	d1|	d2|d3d4�|j|d<td5|	d6�dS)7Nr)�	capi_mapsz/	Constructing call-back function "cb_%s_in_%s"
rR�varsrN)�indexrQrP�_breakr2r3z(
#ifndef F2PY_CB_RETURNCOMPLEX
,
#endif
r9r7rKz#docreturn#z#docsignopt#rMr0z	#docsign#rLZdocsignaturez#docsign#[#docsignopt#])rLrM�_z\_Zlatexdocsignaturer/z, r<r=)rGrHrIrJZlatexrz\begin{description}z\end{description}r6r8rC�voidrFr'r(r&Z_typedefr)r*r+r,�argname)r)r*r+r,raz	  %s
r-)r0r[r!r�depargsZcb_routsign2mapr	rT�append�
cb_rout_rulesr�	enumerateZcb_sign2map�cb_arg_rulesrr�
isinstance�listr#r"�get�cb_routine_rulesr%�	callbacks�strZtypedefs�keysZtypedefs_generatedZneedsZlcb2_map)ZroutZumr[r2rb�varZvrdZrd�r�arZsavevrd�i�ar3�k�trXrXrYrU�s�


$




"&





&



,
$

rUN)/�__doc__�
__future__rrrr0rZauxfuncsrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%�versionZf2py_versionrjrdrfrTrZrUrXrXrXrY�<module>sX�^