K iA'|dZddlZddlmZddlmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZd dZdZd dZd d Zd Zy) a; Rules for building C/API module with 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. N) isoc_kindmap) getfortranname isexternal isfunctionisfunction_wrap isintent_in isintent_outislogicalfunctionismoduleroutineisscalar issubroutineissubroutine_wrapoutmessshowcd||}||vrt|td|dyd||vrt||td|dy||d}|dk(rd||vr|d||dd }i}d}d ||vr ||d }d }nd ||vr ||d }d }d|vr<|r|ddvr|d}n`|d|d|dd }nQ|ddvr |d|dd }n>|d|d}n3d |vr |d|d }d |vr |d|d d }n|d }nd |vr |d|d d }|d|}d||vr|ddj||dd }|S)Nz,var2fixfortran: No definition for argument "z". typespecz*var2fixfortran: No typespec for argument "typetypename() kindselectorkind charselectorlen*)r:(*)z(len=*)=)rrz*(z(len=z,kind=z(kind= dimension,)rrjoin)varsafaf90modevardefselectorlks Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/numpy/f2py/func2subr.pyvar2fixfortranr- s z } T >qcFGa  T!W *  47 "7>*  h } 11"87+"81RD(3-: c]j (xr(3-2Fxq#0F ( 85% 12 X xvhv&6%7q9Fxq\F 8 86(6"2!315xq Fd1g81SXXd1gk&:; Mcd}|djD]0\}}|jdijd}|tvs0y|S)NFr%rrT)itemsgetr)routuseisockeyvalue kind_values r,useiso_c_bindingr7NsTG6l((* UYY~r266v>  % Nr.c t|sJg}|d}|dD]k}|d|}t|jdgD]C\}}|dk(s d|d|}ddgd } d |d |d | d <|j|| ||<||d|<Em|dj |t |} dg} | fd} |d} t |}t|}| d}||vr|| ||<|g|dddz}n |g|dz}t|| d|}|dddk(r5|r d|ddz}nd|ddz}|| d}|jdddk(rd|d<|jd|}d}t|}d j|}|rb|j| d d}|Dcgc] }|| k7s | }}||d<| d|dd| d|d |s| d |dd!||rG| d"n>| d#| d|d |r| d"| s#| d$||jddd%z|z}| rF|d&jd'D]/}|jjd s#d(|vs(| |1|dd}g}|D]-}t||s| d$||j|/|D];}||vrt!||s| t|||)|j|=|D];}||vrt#||s| t|||)|j|=|D]}||vr| t|||)| ||| || r,|rn)| d*| |d&j| d+d j|Dcgc] }||vs| c}}|s.t%|r| |d,|d-|d.n| |d/|d-|d |r| d0|dd| | d2S| d1| d2Scc}wcc}w)3Nr%argsr"rf2py__dintegerhiderintentshape(, rr rc|dd||d<yNrz linerets r,addzcreatefuncwrapper..addjF88D6*Ar.namef2pywraprz @@@NAME@@@ z character*(*)zcharacter(len=10)z character*10rrr10subroutine f2pywrap_ modulename_ (use , only : use iso_c_bindingsubroutine f2pywrap external r!saved_interface __user__r( interface end interfacez = .not.(.not.rz))z = end subroutine f2pywrap_endr)r enumerater1appendextendboolrr r-replacer7r$splitlstrip startswithrr r r )r2 signature extra_argsr%r&viddndvneed_interfacerGrHrJ fortrannamer(newnamer9l_tmpl charselectl1rlr3sargsargrF dumped_argss r,createfuncwrapperrxVs d  J F cr{o% (6"#;6F#fRSk1F$Z/ >>#r "e +"JsO  g .B Bt$G IIdOE bk2.#3sd{33V  "4 #5"6avRwa HI $tL)*)K=A B  # $ !$r% 23  # $ )K=) * b1C7+EB*+11$7 D{{}''/Jd4JD   8DK " d1g  )A3   q !""   DG  tQ8 9   q ! " "   tAw  tQ8 9   q ! " 6   N4G 456 G ~ B     &'..0 1  II$>Q!:*=q> ?E  T " 7)>+awbA B 7)3{m1UG15 6 &tL'9&:!D6 BC q6M E q6MG4p?s O(O(> O-O-c t|sJg}|d}|dD]k}|d|}t|jdgD]C\}}|dk(s d|d|}ddgd } d |d |d | d <|j|| ||<||d|<Em|dj |t |} dg} | fd} |d} t |}t|}|d}t|}d j|}|r3| d|dd| d|d |r| d|s8| d|dd|n&| d| d|d |r| d| s | d|| rF|djdD]/}|jjds#d|vs(| |1g}|D]-}t||s| d||j|/|D];}||vrt||s| t||||j|=|D]}||vr| t|||| rX|rnU| d|djdD].}|jjdrd|vr'| |0| dd j|Dcgc] }||vs| c}}|s| d |d!|d |r| d"|dd| | d$S| d#| d$Scc}w)%Nr%r9r"rr:r;r<r=r>r@rArr rc|dd||d<yrCrDrEs r,rHzcreatesubrwrapper..addrIr.rJrNrOrPrQrTrRrSrUrVrWrXrYrZr[r\zcall rr]r^r)rr_r1r`rarbrr r7r$rdrerfrr r-)r2rgrhr%r&rirjrkrlrmrnrGrHrJror(r9r3rurFrws r,createsubrwrapperr{s   J Q!:*=q> ?E  eK=% *+ &tL'9&:!D6 BC q6M E q6M?s KKcnt|rt|}|d}td|d|dtj|}|}|}d|vr|d}|d||d|<|d|}t |sWd|vrg|d<|dj dd }|dD]}|j d sd }n|r|dj d ||g|d z|d dd|t|fSt|rDt|}|d}td |d|dtj|}|t|fS|dfS)NrJz) Creating wrapper for Fortran function "z"("z")... resultr%r?outrzout=rr9z+ Creating wrapper for Fortran subroutine "r) rrrcopyr r`rfrxrr{)r2rorJfnamernamefvarflagrjs r,assubrr(smt$T* F| + yy t NE"&v,u"5DL F|E"D!t#!#X N ! !% (D(^ <<'D X%%UGn5 'DL0V Q&t,,,$T* F|& 'yy&t,,, 8Or.)NN)r)__doc__r _isocbindrauxfuncsrrrrr r r r r rrrrr-r7rxr{rrDr.r,rsD  #",\xvTn!r.