U C^{@sdZddlmZmZmZdddZddlmZejZddl Z ddl Z ddl Z ddl Z dd l mZdd lmZdd lTd d ddddddddddg ZdZgaiaiZdddddddddddddddddZdd dd!d"d#d$d%d&d'd(d(d)d*d*d!d+Zerdd d,d#d"d#d$d%d&d'd(d-d.d/d)d*d*d!d0Zd1d2d1d3d3d4d5d6d7d8d9d:d;dZertd1d2d?d4d@d4dAdBd7dCd9d:dDdEd;d 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 )divisionabsolute_importprint_functionz$Revision: 1.60 $ ) __version__N)markoutercomma)cb_rules)*getctype getstrlength getarrdims getpydocsign getarrdocsigngetinitsign2map routsign2map modsign2map cb_sign2mapcb_routsign2mapcommon_sign2mapTfloatintlongcomplexstring)doubler long_doublechar signed_char unsigned_charshortunsigned_shortrr long_longunsigned complex_floatcomplex_doublecomplex_long_doublerZ NPY_DOUBLEZ NPY_FLOATZ NPY_STRINGZ NPY_UBYTEZNPY_BYTEZ NPY_SHORTZ NPY_USHORTZNPY_INTZNPY_UINTZNPY_LONGZ NPY_CFLOATZ NPY_CDOUBLE)rrrrr!r r"r#rr%rr$r&r'r(rZNPY_LONGDOUBLEZ NPY_ULONGZ NPY_LONGLONGZ NPY_ULONGLONG)rrrrr!r r"r#rr%r unsigned_longr$unsigned_long_longr&r'r(rdf1bswiulLFDc)rrrrr r!r"r#rr%rr$r&r'r(rgBhHIqQGSNz) rrrr r"rrr$r&r'r(ryrr)48Z1216r r"r$r!r#r%r*) rEr-2rFrG-1z-2z-4z-8r&r'r()rErGrHZ24Z32r)rEr-rIrFrGrE) realintegerrZ complexkindlogicalzdouble complexzdouble precisionbyte characterc Cstta|dkr&d}tj|s&dSzbtd|t |d}t | ii}W5QRXt | D]:\}}t |D]}||||<q~||||<qjt |D]}|tkrit|<t ||D]}|||tkrN|t|krtd||t|||||f|||t||<td|||||fqtd||||||||t tfqqtdWn0tk r}ztd|W5d}~XYnXdS) Nz .f2py_f2cmapzReading f2cmap from {!r} ... rz3 Warning: redefinition of {'%s':{'%s':'%s'->'%s'}} z Mapping "%s(kind=%s)" to "%s" z5 Ignoring map {'%s':{'%s':'%s'}}: '%s' must be in %s z1Successfully applied user defined f2cmap changes z;Failed to apply user defined f2cmap changes: %s. Skipping. )copydeepcopyf2cmap_default f2cmap_allospathisfileoutmessformatopenevalreadlistitemskeyslowerc2py_maperrmess Exception)Z f2cmap_filer,r+kZd1Zk1msgrf7/tmp/pip-install-6_kvzl1k/numpy/numpy/f2py/capi_maps.pyload_f2cmap_filesL     rhz%gz%Lgz%dz%hhuz%hdz%huz%uz%ldz%luz(%g,%g)z (%Lg,%Lg)%s)rrrrr r!r"r#rr%rr)r$r&r'r(rcCsd}t|rRd|kr|d}n|d}||dkrBt|d|Std|n~t|r^|Sd|kr|dtkr|d}t|}|d}d|krd |dkrz||dd }Wn2tk rtd |dd |dd fYnXnd |dkr|d tkrt|d }z||dd }Wntk r|tkrVt|}z|t|dd }WnBtk rtd ||dd |||dd t fYnXYnXnt |std ||S)z Determines C type voidresultnamevars,getctype: function %s has no return value?! typespecrEZ kindselectorr z$getctype: "%s %s %s" not supported. kindz}getctype: "%s(kind=%s)" is mapped to C "%s" (to override define dict(%s = dict(%s="")) in %s/.f2py_f2cmap file). z2getctype: No C-type found in "%s", assuming void. ) isfunctionr rbZ issubroutiner`rTKeyErrorstrrUgetcwd isexternal)varctypearoZf2cmaprfrfrgr sZ         cCst|rJd|kr|d}n|d}||dkr>t|d|Std|t|sbtdt|d}d|kr|d}d|kr|d}nd |kr|d }td |std |rt|rtd t|d }|S)Nrkrlrmz0getstrlength: function %s has no return value?! z;getstrlength: expected a signature of a string but got: %s r-Z charselectorr lenz\(\s*([*]|[:])\s*\)z ([*]|[:])zMgetstrlength:intent(hide): expected a string with defined length but got: %s rJ)isstringfunctionr rbisstringreprrematch isintent_hide)rvrxryrfrfrgr +s2     c Csi}t|r8t|s8t||d<|d|d<d|d<nLt|r\d|d<d|d<d|d<n(t|rt|d}d||d<ztt|d|d<Wntk rYnXd ||d<tt ||d<tt |d gd d |d <t t |D]|}g}||t kr||g}n,t D]&}t d |||r||q|D](}t |t |krJd||<qqJqd\|d<}|D].}|d }|dkrd|d||f|d<q|dr|ddd |d<d\|d<}|dD]|}|d }|dkrd|d||f|d<nLt|rDtd|d|d|df|d<n|rtdt|t|fq|dr|ddd |d<|S)NZdimssizer-rank0rE dimensionr ,rrz rank*[-1]z .*?\b%s\b.*)rErZsetdims)r :z(*)z(:)z%s#varname#_Dims[%d]=%s,Z cbsetdimsz?getarrdims:warning: assumed shape array, using 0 instead of %r rz]getarrdims: If in call-back function: array argument %s must have bounded dimensions: got %s )r{isarrayr isscalarrQjoinr|r[rcryrangedepargsr}r~appendindex isintent_inrXrb) rxrvverboseretdimr1vvar+rfrfrgrGs                 cCst|rPd|kr|d}n|d}||dkr@t||d|Std|dS||}}d}t|rld}n t|rxd}|}t|r|d D]$}|dd d kr|d d}qqd}t|} t|rt||\}} d | }t |r4t|r d ||t | t | |f}nd||t | |f}d|t | f}nNt |rt|r^d||t ||f}nd||t ||f}d|t |f}nt|r|d} tt| } d||| t | d| |f}||krd|| t | d| f}nd|| t | d| |f}n~t|rvd} |tkrdt|tkrddtt|krdtt|d} | |ks`d| } nd} d|| f}|}n td|||fS)NrkrlrmrnrErErEinputz in/outputintentout=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)rz.%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 storageargnamez => %sz%s : call-back function%sz8getpydocsign: Could not resolve docsignature for "%s".\n)rqrrbrisintent_inout isintent_outr hasinitvaluerrra c2pycode_mapr{r rr|ryrrulcb_maplcb2_map)rxrvafsigZsigoutoptout_ardinitrwshowinitrrZuarfrfrgrs               *   cCst|}t|r*t|s*d|t|f}nVt|rJd|t|t|f}n6t|r|d}tt|}d||t|d |f}|S)Nz%%s : rank-0 array(string(len=%s),'c')z%s : rank-0 array(%s,'%s')rrr) r r{rr rrarr|ryr)rxrvrwrrrrfrfrgrs&  cCsNt|rd\}}nd\}}t|rF|d}|}t|s@t|ri}zb|d}d|krzt|ddd\|d<|d <n*t|ii}t|jt|j |d<|d <Wn$t k rt d ||fYnXt |rd |d|d f}n\t|rF|sd\}}|d d kr(d|dd dd}|d dkrFd|dd}||fS)N)z""z''r=rrr@,@init.rinit.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 iscomplexiscomplexarrayr splitr[rsrKimagrc ValueErrorrreplace)rxrvrrrrrfrfrgrsF    "  c "Cs<|}t|r:|dD]$}|dddkr|dd}q:q||t|d}g}tD]\}}||rV|d|qV|rd||d<nd|d<t|rd |d <n&|d tkrt|d |d <nd |d <t||\|d <|d<t |r$t |r$t|s$t |d dd d\|d<|d<t |r||d<|tkrt||d<tt|d|d<tt|d|d<tt|d|d<tt|d|d<n ||d<td|ttft|rt||d<t|rt|t||}t|d}|d tkrt|d |d<t|rtd td!td"td#td$td%t d&tt t!t d'td(td)t"d*t#d+t$d,tt%t!t$d-t d.t&d.t'd/g"} g} t(d0t)| d1D]&} | | |r| | | dqt|r| d2||dft|rd3t*d4d5|d|} | d6| t |r6d7||dd3| f|d8<n"d9|d ||dd3| f|d8<t |r|d t+krd:|t+|d f|d;<t|rd<||f|d;<t |rd=||d;<|d t+krd>|t+|d f|d?<d@t+|d |dA<t|r dB||f|d?<t,||\|dC<|dD<t-|r8|dE|dE<|S)Fz varname,ctype,atype init,init.r,init.i,pytype vardebuginfo,vardebugshowvalue,varshowvalue varrfromat intent rNrr)varnameZ outvarnamerwzF2PY_%s|ZF2PY_INTENT_INrAZ varrformatrwOrrrrrrrZ cbnamekeyZcbname maxnofargs nofoptargsZdocstrZcbdocstrZ latexdocstrZ cblatexdocstrz5sign2map: Confused: external %s is not in lcb_map%s. lengthratyperoutputZinoutputrequiredoptionalhiddenzcomplex scalarZscalarrarrayz complex arrayz string arrayzcomplex functionfunctioncallbackZ auxiliaryrz slen(%s)=%srcSs d||fS)Nz%s|%srf)xrDrfrfrgQzsign2map..zdims(%s)zdebug-capi:%s=>%s:%sZ vardebuginfozdebug-capi:%s %s=%s:%sdebug-capi:%s=%sZvardebugshowvalue"debug-capi:slen(%s)=%%d %s=\"%%s\"zdebug-capi:%s=%%pz #name#:%s=%sZ varshowvaluerishowvalueformatz#name#:slen(%s)=%%d %s=\"%%s\" pydocsign pydocsignoutnote).rr Z isintent_dictr^rrrc2buildvalue_maprrrr rrurrrbr]r_r{r dictappendrrQ c2capi_map debugcapirrZ isrequired isoptionalrZl_andrZl_notr isstringarrayiscomplexfunctionrqisintent_callbackZ isintent_auxrrymap cformat_maprhasnote) rxrvrrdrZ intent_flagsr,r/rZilZrlr1Zddimrfrfrgrs                              c Cs|d}t|}||dd||t|td|||t|pJdt|pTdt|p^dd }d|krvd|d<nd|d<d|krd |d <nd |d <iad |kr:|d  D]}|t j krt j |D]j}|d }d |d |kr(|d |d  D]*}|d |d ||d kr|}q(q|dt|<qqn0d|krj|drjt d|dt |dft|tpxd|d<t|rd|kr|d}n|d}||d<t||\|d<|d<t|d||d<t|r|d|d|d<dg|d|d<|dtkr&t|d|d<nd|d<t dt |dt|r|dtkrrd|t|df|d<t|rd ||f|d<t|rt|d||d!<|d!d"krt d#t |dd$|d!<t|r|d|d<dg|d<|S)%zV name,NAME,begintitle,endtitle rname,ctype,rformat routdebugshowvalue rl_\_ end of %srE) rlZtexnameZ name_lowerNAME begintitleendtitleZ fortrannameZ FORTRANNAMEZ callstatementusercode usercode1 F_FUNC_USF_FUNCZF_WRAPPEDFUNC_USZ F_WRAPPEDFUNCZuserrrZ externalszMroutsign2map: Confused: function %s has externals %s but no "use" statement. ZcallprotoargumentrkrnamerrrmrwrZ resultnoteSee elsewhere.Zrformatrz.routsign2map: no c2buildvalue key for type %s rZroutdebugshowvaluerZrlengthrJzzroutsign2map: expected explicit specification of the length of the string returned by the fortran function %s; taking 10. 10)Zgetfortrannamerr`uppergentitleZgetcallstatement getusercode getusercode1rr_r Zcb_maprbr|Zgetcallprotoargumentrqrr Z hasresultnoterrrrzr r) routrlfnamerr2Zunlnrdrxrfrfrgrms                         cCst|r.|d|d|dddd}n$|d|d|dddd}t|p\g|d<t|rv|d|d<t|pd|d <t|pd|d <|d rt|d d pd|d <nd|d <t|pd|d<d|kr|d|d<d|kr|d|d<|S)z modulename rlrr)Z f90modulenameZ F90MODULENAMEZtexf90modulename) modulenameZ MODULENAMEZ texmodulenameZrestdocrrErrbodyrZinterface_usercodeZ pymethoddefZcoutputZf2py_wrapper_output)ismodulerrZ getrestdocrrrZgetpymethoddef)mrrfrfrgrs.     cCsd|i}|d|d<t||d<|dtkrs$     )r)N),__doc__ __future__rrrrrEversionZ f2py_versionrQr}rUsysZ crackfortranr r Zauxfuncs__all__Z using_newcorerrrrarrr version_inforTrRrSrhrr r rrrrrrrrrrrfrfrfrgs       +1 >J#iQ R