K ivdZddlmZejZddlmZmZddlmZm Z m Z m Z m Z m Z ddlmZd dZdZy) a5 Build common block mechanism for f2py2e. Copyright 1999 -- 2011 Pearu Peterson all rights reserved. Copyright 2011 -- present NumPy Developers. 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. ) __version__) capi_maps func2subr) getuseblockshasbody hascommonhasnote isintent_hideoutmess) rmbadnamecvg}t|rF|djD]/\}}|Dcic] }||d| }}|j|||f1n$t|r|dD]}|t |dz}|r:g}g} |D]/} | d| vs | j| d|j| 1|S|Scc}w)Ncommonvarsbody)ritemsappendrfindcommonblocks) blocktopretkeyvaluevvars_btretnamests ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/numpy/f2py/common_rules.pyrrs C///1 ,JC278QQf a((8E8 JJUE* + , v /A(A..C /  At5  QqT" A  J9sB6cggdgd}dg}|fd}dg}|fd}dg}|fd}dg}|fd} t|D]\} } } | j} gg}}| D]3}t| |r|j|#|j|5|r4t d| d d j |d d j |d n!t d| d d j |d |d | dt |D] }|d||d| D]}|tj| | | dk(r|dd j | n|d| dd j | |dd j |d|d|d| zg}|D]}tj| |}tj| |}tj|}tj|| |}|dr|jd|ddn|jd|dj}|sd}|d|d|dd|d |d!|d" |d#t|}d j |Dcgc]}d$|z c}}|d%| d|d&|d'|D]}|d(| d)|d*|d+d,| vrd-}nd.}|d/|d0| d1| j!d2d j d3gt#|zd4 |d5| z|d6|d0| d1| j!d7| d8 |d9|d:| d;| d8|d<|d=| d>|d?| j%d,d@}| dA|z| dB|D]g}| dCtj&|| |zt)| |s4| |dD}t+|t,rd j |}| dE|i| dF|dGjdH| dd j t/dI||dJ||dK<||dL<|dM|dN<t#|dGdOkrd|dG<||dMfScc}w)PNz"COMMON blocks:\n") commonhooksinitcommonhooksdocsc|dd||d<y)Nrz liness r faddzbuildhooks..fadd-sA$xv&!c|dd||d<yNr r'r(s r caddzbuildhooks..cadd1A$r$ !r,c|dd||d<yr.r'r(s r iaddzbuildhooks..iadd5r1r,c|dd||d<yr.r'r(s r daddzbuildhooks..dadd9r1r,z) Constructing COMMON block support for "z "... ,z Hidden: r/zsubroutine f2pyinitz (setupfunc)zuse zexternal setupfunc_BLNK_zcommon zcommon /z/ zcall setupfunc()zend z'static FortranDataDef f2py_%s_def[] = {dims(z-1z {"z",rankz,{{z}},z, z},z {NULL} };zchar *zstatic void f2py_setup_z) {z int i_f2py=0;z f2py_z_def[i_f2py++].data = ;}_ F_FUNC_USF_FUNCz extern void z (f2pyinitz ,F2PYINITz )(void(*)(zchar*z));z static void f2py_init_%s(void) { z )(f2py_setup_z);z} z tmp = PyFortranObject_New(f2py_z_def,f2py_init_z if (tmp == NULL) return NULL;z if (F2PyDict_SetItemString(d, "z", tmp) == -1) return NULL;z Py_DECREF(tmp);z\_z&\subsection{Common block \texttt{%s}} z\begin{description}z\item[]{{}\verb@%s@{}}notez--- z\end{description}r$z" /c ||zS)Nr')rds r zbuildhooks..s a!er,z\n"r"r#rlatexdocr)rlowerr rr joinrrvar2fixfortranrgetctype get_elsize c2capi_map getarrdimsstripr upperlenreplace getarrdocsignr isinstancelistmap)mrfwrapr+chooksr0ihooksr3docr5namevnamesr lower_namehnamesinamesnusenameidimsctelsizeatdmdmsinames1r* inames1_tpsr@tnamerBs r buildhooksrk(s)* ,C DE'TF!TF! $C! 0 3NUvtZZ\ R !AT!W% a  a  !  chhv&(8: ; chhv&( ) "4& 45#A #G 4y! " # !" 4A ))$2 3 4 8  7388F+,- . 8D6CHHV$4#56 7 sxx/0 23 W  6$ ?@ 5A##DG,B))$q'2F%%b)B%%aa1B&z qF A./ R V*""$C r&z3F4 5 5 ^F#hhg>1 >?  $ DE  =A 74& 6qc; < = S *  FF  DJJL'S\124 5 /$ 67  DJJL$8 9 U  0odV2 NO ./ 06Q RS ! S%( 8E BC #$ $A +))!T!W57 8tAwAwvdD)99T?DtD6]# $ !" F D6CHHS);VU%KLMU S U[NU^ C #C!fC O 3v;1F a=Q ?s Q5 N)r)__doc__r%rversion f2py_versionrrauxfuncsrrrr r r crackfortranr rrkr'r,r rqs1 "" "WW#(gr,