/ lib / numpy / f2py / capi_maps.pyc
capi_maps.pyc
  1  o

  2  [��ci��@sdZddlmZejZddlZddlZddlZddlm	Z	ddlm
  3  Z
  4  ddlTgd�Zd	Z
gZiaiZid
  5  d�dd�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�Zid
  6  d�dd�dd�d
d�dd �dd!�dd"�dd#�dd$�dd%�dd&�dd&�dd'�dd(�dd(�dd�dd)�Ze
r�id
  7  d�dd�dd*�d
d!�dd �dd!�dd"�dd#�dd$�dd%�dd&�d+d,�dd-�d.d/�dd'�dd(�dd(�ddd0��Zid
  8  d1�dd2�dd1�d
d3�dd3�dd4�dd5�dd6�dd7�dd8�dd9�dd:�dd;�dd<�dd<�dd=�dd=�Ze
�rKid
  9  d1�dd2�dd>�d
d4�dd?�dd4�dd@�ddA�dd7�ddB�dd9�d+d:�ddC�d.dD�dd;�dd<�ddE�dFd=d0��Zd1d2d4d4d@d7d9d:dGdGdGdHd=dI�
Zddd
 10  dddJ�ddddddddd.dK�	ddddddL�ddddddJ�dd
ddddM�dNdidNd
 11  idNd
idO�ae�t�ZgZdPdQ�Zid
 12  dR�ddR�ddS�d
dT�ddT�ddU�ddV�ddW�ddT�ddX�ddY�d+dZ�ddY�dd[�dd[�dd\�dd]�dd^i�Zd_d`�Zdadb�Zdcdd�Zd{dedf�Zdgdh�Zdidj�Z dkdl�Z!dmdn�Z"dodp�Z#dqdr�Z$dsdt�Z%d|dudv�Z&dwdx�Z'dydz�Z(dS)}a)
 13  
 14  Copyright 1999,2000 Pearu Peterson all rights reserved,
 15  Pearu Peterson <pearu@ioc.ee>
 16  Permission to use, modify, and distribute this software is given under the
 17  terms of the NumPy License.
 18  
 19  NO WARRANTY IS EXPRESSED OR IMPLIED.  USE AT YOUR OWN RISK.
 20  $Date: 2005/05/06 10:57:33 $
 21  Pearu Peterson
 22  
 23  �)�__version__�N)�markoutercomma)�cb_rules)�*)�getctype�getstrlength�
 24  getarrdims�getpydocsign�
getarrdocsign�getinit�sign2map�routsign2map�modsign2map�cb_sign2map�cb_routsign2map�common_sign2mapT�double�float�long_double�char�int�signed_char�
unsigned_char�short�unsigned_short�long�	long_long�unsigned�
complex_float�complex�complex_double�complex_long_double�string�	character�bytesZ
 25  NPY_DOUBLEZ	NPY_FLOAT�
 26  NPY_STRINGZ	NPY_UBYTEZNPY_BYTEZ	NPY_SHORTZ
 27  NPY_USHORTZNPY_INTZNPY_UINTZNPY_LONGZ
 28  NPY_CFLOATZNPY_CDOUBLEZNPY_CHARZNPY_LONGDOUBLE�
unsigned_longZ	NPY_ULONGZNPY_LONGLONG�unsigned_long_longZ
NPY_ULONGLONG)r#r$�d�f�1�b�s�w�i�u�l�L�F�D�c�g�B�h�H�I�q�Q�G�S�N�y)
rrrrrrrrrr!r"r#r$)��4�8�12�16)	rAr+�2rBrC�-1z-2z-4z-8)rArCrE�24�32)rAr+rFrBrCrA)�real�integerr Zcomplexkind�logicalzdouble complexzdouble precision�bytecCs�t�t�a|durd}tj�|�sdSz�td�|��t	|d��}t
 29  |����ii�}Wd�n1s5wY|�
�D]\}}|��D]
 30  }||||��<qF||||��<q>|��D]k}|tvrhit|<||��D]Z}|||tvr�|t|vr�td||t|||||f�|||t||<td|||||f�t�|||�qntd||||||||tt���f�qnq^td�WdSty�}z
td|�WYd}~dSd}~ww)	Nz.f2py_f2cmapzReading f2cmap from {!r} ...
 31  �rz3	Warning: redefinition of {'%s':{'%s':'%s'->'%s'}}
 32  z	Mapping "%s(kind=%s)" to "%s"
 33  z5	Ignoring map {'%s':{'%s':'%s'}}: '%s' must be in %s
 34  z1Successfully applied user defined f2cmap changes
 35  z;Failed to apply user defined f2cmap changes: %s. Skipping.
 36  )�copy�deepcopy�f2cmap_default�
 37  f2cmap_all�os�path�isfile�outmess�format�open�eval�read�lower�items�keys�c2py_map�
f2cmap_mapped�append�errmess�list�	Exception)�f2cmap_filer*r)�k�d1�k1�msg�ri��C:\Users\Jacks.GUTTSPC\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\numpy\f2py\capi_maps.py�load_f2cmap_file�sN
 38  ���"
 39  �����rkz%gz%Lgz%dz%hhuz%hdz%huz%uz%ldz%luz(%g,%g)z	(%Lg,%Lg)z\"%s\"z'%c'cCs�d}t|�r)d|vr|d}n|d}||dvr!t|d|�Std|�|St|�r/|St|�r5dSt|�r;dSd|vr�|d��tvr�|d��}t|}|d	}d
 40  |vr�d|d
 41  vr�z||d
 42  d}W|Sty�td|dd|d
 43  df�Y|Swd
|d
 44  vr�|d
tvr�t|d
}z||d
 45  d
}W|Sty�|tvr�t|}z|t	|d
 46  d
�}WY|Sty�td||d
 47  d
|||d
 48  d
t
 49  ��f�YnwY|Sw|St|�s�td|�|S)z
 50      Determines C type
 51      �void�result�name�vars�,getctype: function %s has no return value?!
 52  r$r#�typespecrA�kindselectorrz$getctype: "%s %s %s" not supported.
 53  �kindz}getctype: "%s(kind=%s)" is mapped to C "%s" (to override define dict(%s = dict(%s="<C typespec>")) in %s/.f2py_f2cmap file).
 54  z2getctype: No C-type found in "%s", assuming void.
 55  )
�
 56  isfunctionrra�issubroutine�ischaracter_or_characterarray�isstring_or_stringarrayr[rR�KeyError�strrS�getcwd�
 57  isexternal)�var�ctype�arq�f2cmapririrjr�sp
 58  #����
���
 59  ����rcCst�dd|�}|S)a^Rewrite Fortran expression as f2py supported C expression.
 60  
 61      Due to the lack of a proper expression parser in f2py, this
 62      function uses a heuristic approach that assumes that Fortran
 63      arithmetic expressions are valid C arithmetic expressions when
 64      mapping Fortran function calls to the corresponding C function/CPP
 65      macros calls.
 66  
 67      z\blen\bZ	f2py_slen)�re�sub)�exprririrj�f2cexpr+sr�cCs�t|�r%d|vr
|d}n|d}||dvrt|d|�Std|�t|�s1tdt|��d}d|vrN|d}d|vrD|d}n
 68  d	|vrNt|d	�}t�d
 69  |�sZt�d|�rht|�rftdt|��d
}|S)Nrmrnroz0getstrlength: function %s has no return value?!
 70  z;getstrlength: expected a signature of a string but got: %s
 71  r+�charselectorr�lenz\(\s*(\*|:)\s*\)z(\*|:)zMgetstrlength:intent(hide): expected a string with defined length but got: %s
 72  rG)	�isstringfunctionrra�isstring�reprr�r��match�
isintent_hide)r|r~r�ririrjr:s2
 73  
 74  �
 75  �rc	Csti}t|�rt|�st|�|d<|d|d<d|d<|St|�r.d|d<d|d<d|d<|St|��r8t�|d�}d�|�|d<ztt|d��|d<Wn	tyVYnwd	�|�|d<tt	|��|d<tt	|�d
 76  g�dd
 77  �|d<t
 78  t	|��D]9}g}||tvr�||g}ntD]}t�
d
|||�r�|�|�q�|D]}t�|�t�|�kr�d||<nq�q{d\|d<}|D]}|d}|dvr�d|d||f|d<q�|dr�|ddd
 79  �|d<d\|d<}|dD]=}|d}|dv�rd|d||f|d<q�t|��rtd|�d|d|df|d<q�|�r(tdt|�t|�f�q�|d�r8|ddd
 80  �|d<|S)N�dims�sizer+�rank�0rA�	dimensionr�,�����rz	rank*[-1]z.*?\b%s\b.*)rAr��setdims)r�:z(*)z(:)z%s#varname#_Dims[%d]=%s,Z	cbsetdimsz?getarrdims:warning: assumed shape array, using 0 instead of %r
 81  rz]getarrdims: If in call-back function: array argument %s must have bounded dimensions: got %s
 82  )r��isarrayr�isscalarrO�joinr�rYrcr��range�depargsr�r�r`�index�isintent_inrVra)	r~r|�verbose�ret�dimr/�v�var)ririrjr	Vs�5�1
 83  ��
 84  ���
 85  
 86  ��
 87  
 88  �
 89  �
 90  ���
 91  r	cCs�t|�r(d|vr
|d}n|d}||dvr t||d|�Std|�dS||}}d}t|�r6d}nt|�r<d}|}t|�rY|d	D]}|dd
 92  �dkrX|d
 93  d�}nqFd}t|�}	t|�rnt||�\}}
 94  d|
 95  }t	|�r�t|�r�d
||t
 96  |	t|	|f}n
 97  d||t
 98  |	|f}d|t
 99  |	f}||fSt|�r�t|�r�d||t
|�|f}n
100  d||t
|�|f}d|t
|�f}||fSt|��r|d}tt|��}d|||t|	d�|�|f}||kr�d||t|	d�|�f}||fSd||t|	d�|�|f}||fSt|��rDd}
|tv�r8t|tv�r8dtt|v�r8tt|d}
|
|k�s6d|
}
nd}
d||
f}|}||fStd|�||fS)Nrmrnrorp�rArArA�inputz	in/output�intent��out=z, optional\n    Default: %sz%s : %s rank-0 array(%s,'%s')%sz%s : %s %s%sz%s : %sz*%s : %s rank-0 array(string(len=%s),'c')%sz%s : %s string(len=%s)%sz%s : string(len=%s)r�z.%s : %s rank-%s array('%s') with bounds (%s)%sr��)%s : rank-%s array('%s') with bounds (%s)z8%s : rank-%s array('%s') with bounds (%s) and %s storage�argnamez => %sz%s : call-back function%sz7getpydocsign: Could not resolve docsignature for "%s".
101  )rtr
102  rar��isintent_inout�isintent_outr�hasinitvaluerr�r^�c2pycode_mapr�rr�r�r�r�r{�lcb_map�lcb2_map)r~r|�af�sigZsigout�opt�out_are�initr}�showinitr�r��uaririrjr
103  �s�
104  
105  ��#���
106  ��
107  ����
108  �*
109  
110  ��r
111  cCs�t|�}t|�rt|�sd|t|�f}|St|�r'd|t|t|f}|St|�rB|d}tt|��}d||t|d�	|�f}|S)Nz%%s : rank-0 array(string(len=%s),'c')z%s : rank-0 array(%s,'%s')r�r�r�)
112  rr�r�rr�r^r�r�r�r�)r~r|r}r�r�r�ririrjr�s*��
113  �	���rcCsDt|�r	d\}}nd\}}t|�r�|d}|}t|�st|�rti}z1|d}d|vr<t|dd���d�\|d<|d	<nt|ii�}t|j�t|j	�|d<|d	<Wnt
114  yatd
115  ||f��wt|�rpd|d|d	f}||fSt|�r�|s~d\}}|dd
kr�d|dd��
dd�}|ddkr�d|dd�}||fS)N)z""z''r��=r�rr��@,@�init.r�init.izMgetinit: expected complex number `(r,i)' but got `%s' as initial value of %r.z (capi_c.r=%s,capi_c.i=%s,capi_c)r�'z"%s"�"z\"z'%s')r�r��	iscomplex�iscomplexarrayr�splitrYryrJ�imagrc�
116  ValueErrorr��replace)r~r|r�r�r�r�ririrjr�sJ
117  
118  ���
119  ���	�rcCsDt|�st|�rt|�}|d�d|�}|St|�st|�r dSdS)Nr��f2py_lenr+)r��
isstringarrayr�get�ischaracter�ischaracterarray)r|�elsizeririrj�
120  get_elsizesr�c
Cs~|}t|�r|dD]}|dd�dkr|dd�}nq
121  ||t|�d�}g}t��D]\}}||�r:|�d|�q+|rEd�|�|d<nd|d<t|�rRd	|d
122  <n|dtvrat|d|d
123  <nd|d
124  <t||�\|d
<|d<t	|�r�t
125  |�r�t|�s�t|d
dd���d�\|d<|d<t
|�r�||d<|tvr�t||d<tt|d|d<tt|d|d<tt|d|d<tt|d|d<n||d<td|tt���f�t|�r�t|�|d<t|�r�t|t||��}t�|d�}|dtv�rt|d|d<t|�|d <t|��r�gt�d!�t�d"�t�d#�t�d$�t�d%�t�d&�t
126  �d'�t t!t"t
127  ���d(�t�d)�t�d*�t#�d+�t$�d,�t%�d-�t t&t"t%���d.�t
�d/�t'�d/�t(�d0�}	g}
128  t)d1t*|	�d2�D]}|	||��r}|
129  �|	|d��qkt|��r�|
130  �d3||df�t|��r�d4�t+d5d6�|d|��}|
131  �d7|�t
|��r�d8||dd4�|
132  �f|d9<nd:|d||dd4�|
133  �f|d9<t!|��r�|dt,v�r�d;|t,|df|d<<t|��r�d=||f|d<<t
|��r�d>||d<<|dt,v�rd?|t,|df|d@<dAt,|d|dB<t|��r'dC||f|d@<t-||�\|dD<|dE<t.|��r=|dF|dF<|S)Gz�
134      varname,ctype,atype
135      init,init.r,init.i,pytype
136      vardebuginfo,vardebugshowvalue,varshowvalue
137      varrformat
138  
139      intent
140      r�Nr�r�)�varnameZ
141  outvarnamer}zF2PY_%s�|ZF2PY_INTENT_INr?Z
142  varrformatr}�Or�r�rr�r�r�r�Z	cbnamekey�cbname�
143  maxnofargs�
144  nofoptargs�docstrZcbdocstr�latexdocstrZ
cblatexdocstrz5sign2map: Confused: external %s is not in lcb_map%s.
145  �lengthr��atyper�r��outputZinoutput�required�optional�hiddenzcomplex scalar�scalarr#�arrayz
complex arrayzstring arrayzcomplex function�function�callbackZ	auxiliaryr�zslen(%s)=%sr�cSsd||fS)Nz%s|%sri)�xr@ririrj�<lambda>nszsign2map.<locals>.<lambda>zdims(%s)zdebug-capi:%s=>%s:%sZvardebuginfozdebug-capi:%s %s=%s:%s�debug-capi:%s=%sZvardebugshowvalue�"debug-capi:slen(%s)=%%d %s=\"%%s\"zdebug-capi:%s=%%pz#name#:%s=%sZvarshowvalue�%s�showvalueformatz#name#:slen(%s)=%%d %s=\"%%s\"�	pydocsign�pydocsignout�note)/r�r�
isintent_dictr\r`r�r��c2buildvalue_maprr�r�rr�r{r�r�rarbr]r�r�
146  dictappendr	rO�
147  c2capi_mapr��	debugcapir�r��
148  isrequired�
149  isoptionalr��l_andr��l_notr�r��iscomplexfunctionrt�isintent_callback�isintent_auxr�r��map�cformat_mapr
150  �hasnote)
r~r|r�rer�Zintent_flagsr*r-r��il�rlr/Zddimririrjr
 s*	��
151  ���
152  ������������������������	�	�
153  �
154  ���
�
155  
156  �
157  �
158159  
160161  
162163  
164  
165  r
c	Cs�|d}t|�}||�dd�|��|��t|�td|�||��t|�p%dt|�p*dt|�p/dd�}d|vr;d|d<nd|d<d|vrHd	|d
166  <nd
167  |d
168  <iad|vr�|d�	�D]@}|t
169  jvr�t
170  j|D]3}|d}d
|d|vr�|d|d
�	�D]}|d|d
||dkr�|}nq||dt|<qdqXnd|vr�|dr�td|dt
|d�f�t|t�p�d|d<t|��rbd|vr�|d}n|d}||d<t||�\|d<|d<t|d|�|d<t|�r�|d|d|d<dg|d|d<|dtv�rt|d|d<nd|d<tdt
|d��t|��r>|dtv�r1d|t|df|d<t|��r>d ||f|d<t|��rbt|d|�|d!<|d!d"k�rbtd#t
|d��d$|d!<t|��rr|d|d<dg|d<|S)%zV
171      name,NAME,begintitle,endtitle
172      rname,ctype,rformat
173      routdebugshowvalue
174      rn�_�\_�	end of %srA)rn�texnameZ
175  name_lower�NAME�
176  begintitle�endtitle�fortrannameZFORTRANNAME�
callstatement�usercode�	usercode1�	F_FUNC_US�F_FUNCZF_WRAPPEDFUNC_US�
F_WRAPPEDFUNC�userr�r�	externalszMroutsign2map: Confused: function %s has externals %s but no "use" statement.
177  �callprotoargumentrm�rnamer�r�ror}r�Z
178  resultnote�See elsewhere.�rformatr�z.routsign2map: no c2buildvalue key for type %s
179  r�Zroutdebugshowvaluer�ZrlengthrGzzroutsign2map: expected explicit specification of the length of the string returned by the fortran function %s; taking 10.
180  �10)�getfortrannamer�r[�upper�gentitle�getcallstatement�getusercode�getusercode1r�r]r�cb_maprar��getcallprotoargumentrtr
181  r�
hasresultnoter�r�r�r�rr�)	�routrn�fnamer�r0�un�lnrer~ririrjr�s�
182  
183  
184  
185  
186  �
187  
188  
189  ���
190  �
191  
192  
193  �
194  
195196  
197198  
199  �
200  
201  rcCs�t|�r|d|d��|d�dd�d�}n|d|d��|d�dd�d�}t|�p.g|d<t|�r;|d|d<t|�p@d|d	<t|�pHd|d
202  <|dr\t|dd�pXd|d
<nd|d
<t|�ped|d<d|vrr|d|d<d|vr||d|d<|S)z
203      modulename
204      rnr�r�)Z
f90modulenameZ
F90MODULENAMEZtexf90modulename)�
205  modulenameZ
206  MODULENAMEZ
texmodulename�restdocr�rAr�r��bodyrZinterface_usercode�pymethoddef�coutput�f2py_wrapper_output)�ismoduler
207  r��
208  getrestdocr�r
r�getpymethoddef)�mr�ririrjr�s.
209  �
210  �rcCs�d|i}|d|d<t|�|d<|dtvr$t|d|d<t|�|d<|dtvr4dt|d|d<t|�r@t|t||��}t||�\|d<|d	<t|�rZ|d
211  |d
212  <dg|d
213  <|S)Nr�Z	varname_ir}r�r�r�r�r�r�r�r)	rr�r�r�r�r�r	r
214  r�)r~r|r�r�ririrjr�s
215  rcCs�d|d|fdd�}t|�r0d|dvrd}nd}d||d��|d��f|d	<d
216  |d<n
217  |d|d	<d|d<|d|d<t|d�|d
<td|d�|d<t|�|d<d|d<|ddkrgd|d<n|d|d<|ddkr�t|�r|d|d<nd|d<|dtvr�dt|d|d<t|�r�t|�|d<t	|�r�d|vr�|d}n|d}t
218  |d|�r�|d|d|d<dg|d|d<||d<t||�\|d<|d <t|�r�d!|d<nt
219  |�r�|d|d<dg|d<d"}d"}d#|v�rd|v�r|d#D]}|d|}tt
t�|��r|d$}t|��r|d$}q�t|�|d%<t|�|d&<t
220  |��rCt	|��rCd|v�rC|d|d'<dg|d<|S)(z\
221      name,begintitle,endtitle,argname
222      ctype,rctype,maxnofargs,nofoptargs,returncptr
223      zcb_%s_in_%srnrA)rn�
224  returncptrr�r�rz	%s(%s,%s)Zcallbackname�extern�staticr�r�r�r�r}rl�rctyper#z3
225  #ifdef F2PY_CB_RETURNCOMPLEX
226  return_value=
227  #endif
228  r z
return_value=r�r��	strlengthrmror�rrr�r�z8
229  #ifdef F2PY_CB_RETURNCOMPLEX
230  #ctype#
231  #else
232  void
233  #endif
234  r�argsrr�r��routnote)r�r[r
235  rrr�r�r�rrtr�r
236  �l_orr�r�r�r�)r�umr�rr~Znofargsr�r|ririrjr
237  s~�
238  
239  ��
240  
241  
242  
243  �
244  
245  �
246  rcCs�|t|�d�}t|�rd|d<|dtvr#t|d|d<t|�|d<|dtvr3dt|d|d<t|�r@t|t||��}nt|�rNt	|�|d<d	|d
247  <t
248  ||�\|d<|d<t|�rh|d
|d
<dg|d
<t||�|d<|S)N)r�r}rr}r�r�r�r�r�r+r�r�r�r�rZ	arrdocstr)
rr�r�r�r�r�r�r	r�rr
249  r�r)r~r|r�ririrjr\s&
250  r)r)N))�__doc__rAr�version�f2py_versionrOr�rS�crackfortranrr�auxfuncs�__all__�
using_newcorer�r�r�r^r�r�r�rRrPrQr_rkr�rr�rr	r
251  rrr�r
rrrrrriririrj�<module>s(��������	�
252  ���
������������	�
253  ���
������������	�
254  ���
�������������	�
255  ���
������������	�
256  ���
������������
257  ,��������	�
258  ���
�����3
259  =J#jQ
260  R