B @`z@sdZdddZddlmZejZddlZddlZddlZddlm Z dd lm Z dd l Td d d dddddddddg Z dZ gZiaiZdddddddddddddddddZdddd d!d"d#d$d%d&d'd'd(d)d)d d*Ze rddd+d"d!d"d#d$d%d&d'd,d-d.d(d)d)d d/Zd0d1d0d2d2d3d4d5d6d7d8d9d:d;d;dd3d?d3d@dAd6dBd8d9dCdDd:d;dEdFd/Zd0d1d3d3d@d6d8d9dGdGdGdHdI Ze r|dddJdKdKdLddMdNddOdPdQdRdSdT dUdUdVdWdWdXdUdUdVdWdWdLddYdNddOdZd[dVid[dJid[dYid[did\ aetZd]d^Zd_d_d`dadadbdcdddadedfdgdfdhdhdidjdkZdld Zdmd Zdxdnd ZdodZdpdZdqdZdrdZ dsdZ!dtdZ"dydudZ#dvdZ$dwdZ%dS)za) Copyright 1999,2000 Pearu Peterson all rights reserved, Pearu Peterson 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 z$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)rrrrrrrr rr"rr!r#r$r%rZNPY_LONGDOUBLEZ NPY_ULONGZ NPY_LONGLONGZ NPY_ULONGLONG)rrrrrrrr rr"r unsigned_longr!unsigned_long_longr#r$r%rdf1bswiulLFDc)rrrrrrrr rr"rr!r#r$r%rgBhHIqQGSNy) rrrrrrrr!r#r$r%rrr)48Z1216rrr!rr r"r') r@r*2rArBz-1z-2z-4z-8r#r$r%)r@rBrCZ24Z32r)r@r*rDrArBr@) realintegerrZ complexkindlogicalzdouble complexzdouble precisionbyte characterc Cstta|dkr&d}tj|s&dSyrtd|t |d}t | ii}WdQRXxNt | D]>\}}x$t |D]}||||<qW||||<qlWxt |D]}|tkrit|<xt ||D]}|||tkrZ|t|kr*td||t|||||f|||t||<td|||||fqtd||||||||t tfqWqWtdWn0tk r}ztd|Wdd}~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(kd1Zk1msgra8/tmp/pip-unpacked-wheel-ecq9wray/numpy/f2py/capi_maps.pyload_f2cmap_files<   "2 rcz%gz%Lgz%dz%hhuz%hdz%huz%uz%ldz%luz(%g,%g)z (%Lg,%Lg)z%s)rrrrrrrr 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 |dkry||dd }Wn2tk rtd |dd |dd fYnXnd |dkr|d tkrt|d }y||dd }Wntk r|tkrVt|}y|t|dd }WnBtk rtd ||dd |||dd t fYnXYnXnt |std ||S)z Determines C type voidresultnamevarsz,getctype: function %s has no return value?! typespecr@Z kindselectorrz$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 r\Z issubroutinerZrNKeyErrorstrrOgetcwd isexternal)varctypearhZf2cmaprararbr sN     "  (  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)Nrerfrgz0getstrlength: function %s has no return value?! z;getstrlength: expected a signature of a string but got: %s r*Z charselectorrlenz\(\s*([*]|[:])\s*\)z ([*]|[:])zMgetstrlength:intent(hide): expected a string with defined length but got: %s z-1)isstringfunctionr r\isstringreprrematch isintent_hide)rorqrrrararbr $s.     c Csi}t|r8t|s8t||d<|d|d<d|d<n^t|r\d|d<d|d<d|d<n:t|rt|d}d||d<ytt|d|d<Wntk rYnXd ||d<tt ||d<tt |d gd d |d <xt t |D]}g}||t kr||g}n0x.t D]&}t d |||r"||q"Wx.|D]&}t |t |krRd||<PqRWqWd\|d<}x6|D].}|d }|dkrd|d||f|d<qW|dr|ddd |d<d\|d<}x|dD]|}|d }|dkr&d|d||f|d<nLt|rTtd|d|d|df|d<n|rtdt|t|fqW|dr|ddd |d<|S)NZdimssizer*rank0r@ dimensionr,rrz rank*[-1]z .*?\b%s\b.*)r@rZsetdims)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 )rtisarrayr isscalarrKjoinrurUr]rrrangedepargsrvrwappendindex isintent_inrRr\) rqroverboseretdimr.vvar(rararbr @sn                 cCst|rPd|kr|d}n|d}||dkr@t||d|Std|dS||}}d}t|rld}n t|rxd}|}t|rx.|d D]"}|dd d kr|d d}PqWd}t|} t|rt||\}} d | }t |r6t|rd ||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|rxd} |tkrft|tkrfdtt|krftt|d} | |ksbd| } nd} d|| f}|}n td|||fS)Nrerfrgz,getctype: function %s has no return value?! )r@r@r@inputz in/outputintentzout=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}z)%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)rjr r\risintent_inout isintent_outr hasinitvaluerrr[ c2pycode_maprtr rrurrrrnlcb_maplcb2_map)rqroafsigZsigoutoptout_ar^initrpshowinitrrzZuarararbr }s|              *    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')r|z)%s : rank-%s array('%s') with bounds (%s)r}) r rtrr rr[rrurrr)rqrorprrrzrararbr s  cCsNt|rd\}}nd\}}t|rF|d}|}t|s@t|ri}yb|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@r@=r}rrz@,@zinit.rzinit.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')rtr iscomplexiscomplexarrayrsplitrUrlrEimagr] ValueErrorrreplace)rqrorrrrrararbrs:  " " c "CsF|}t|r|t+|d f|d?<d@t+|d |dA<t|rdB||f|d?<t,||\|dC<|dD<t-|rB|dE|dE<|S)Fz varname,ctype,atype init,init.r,init.i,pytype vardebuginfo,vardebugshowvalue,varshowvalue varrfromat intent rNrzout=)varnameZ outvarnamerpzF2PY_%s|ZF2PY_INTENT_INr>Z varrformatrpOrrrrz@,@zinit.rzinit.iZ cbnamekeyZcbname maxnofargs nofoptargsZdocstrZcbdocstrZ latexdocstrZ cblatexdocstrz5sign2map: Confused: external %s is not in lcb_map%s. lengthr|atyperoutputZinoutputrequiredoptionalhiddenzcomplex scalarZscalarrarrayz complex arrayz string arrayzcomplex functionfunctioncallbackZ auxiliaryrz slen(%s)=%sr}cSs d||fS)Nz%s|%sra)xr?rararbHzsign2map..zdims(%s)zdebug-capi:%s=>%s:%sZ vardebuginfozdebug-capi:%s %s=%s:%szdebug-capi:%s=%sZvardebugshowvaluez"debug-capi:slen(%s)=%%d %s=\"%%s\"zdebug-capi:%s=%%pz #name#:%s=%sZ varshowvaluez%sshowvalueformatz#name#:slen(%s)=%%d %s=\"%%s\" pydocsign pydocsignoutnote).rr Z isintent_dictrXrrrc2buildvalue_maprrrrrrnrrr\rWrYrtr dictappendr rK c2capi_map debugcapirrZ isrequired isoptionalrxZl_andrZl_notr isstringarrayiscomplexfunctionrjisintent_callbackZ isintent_auxrrrmap cformat_mapr hasnote) rqrorr^rZ intent_flagsr)r,rZilZrlr.Zddimrararbrs   $                  c Cs|d}t|}||dd||t|td|||t|pJdt|pTdt|p^dd }d|krvd|d<nd|d<d|krd |d <nd |d <iad |krFx|d  D]}|t j krx|t j |D]n}|d }d |d |kr0xB|d |d  D]*}|d |d ||d kr|}PqW|dt|<qWqWn0d|krv|drvt d|dt |dft|tpd|d<t|rd|kr|d}n|d}||d<t||\|d<|d<t|d||d<t|r|d|d|d<dg|d|d<|dtkr2t|d|d<nd|d<t dt |dt|r|dtkr~d|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 rf_z\_z end of %sr@) rfZtexnameZ 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. ZcallprotoargumentrernamerrrgrprZ resultnotezSee elsewhere.Zrformatrz.routsign2map: no c2buildvalue key for type %s zdebug-capi:%s=%sZroutdebugshowvaluez"debug-capi:slen(%s)=%%d %s=\"%%s\"Zrlengthz-1zzroutsign2map: expected explicit specification of the length of the string returned by the fortran function %s; taking 10. 10)ZgetfortrannamerrZuppergentitleZgetcallstatement getusercode getusercode1rrYrZcb_mapr\ruZgetcallprotoargumentrjr r Z hasresultnoterrrrsr r) routrffnamerr/Zunlnr^rqrararbrds                  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 rfrz\_)Z f90modulenameZ F90MODULENAMEZtexf90modulename) modulenameZ MODULENAMEZ texmodulenameZrestdocrr@rrbodyrZinterface_usercodeZ pymethoddefZcoutputZf2py_wrapper_output)ismodulerrZ getrestdocrrrZgetpymethoddef)mrrararbrs*     cCsd|i}|d|d<t||d<|dtkr sH        +1 =J#hQ R