o 6az @sdZddlmZejZddlZddlZddlZddlm Z ddlm Z ddl TgdZ d Z gZiaiZid d d d d d d dddddddddddddddddddddddddZid dd dd dd ddddddd dd!dd"dd#dd$dd$dd%dd&dd&ddZe rid dd dd d'd ddddddd dd!dd"dd#dd$d(d)dd*d+d,dd%dd&dd&ddiZid d-d d.d d-d d/dd/dd0dd1dd2dd3dd4dd5dd6dd7dd8dd8dd9Ze r@id d-d d.d d:d d0dd;dd0dd<dd=dd3dd>dd5d(d6dd?d+d@dd7dd8ddAddBiZd-d.d0d0d 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 ) __version__N)markoutercomma)cb_rules)*) getctype getstrlength getarrdims getpydocsign getarrdocsigngetinitsign2map routsign2map modsign2map cb_sign2mapcb_routsign2mapcommon_sign2mapTdoublefloat long_doublecharint signed_char unsigned_charshortunsigned_shortlong long_longunsigned complex_floatcomplexcomplex_doublecomplex_long_doublestring NPY_DOUBLE NPY_FLOAT NPY_STRING NPY_UBYTENPY_BYTE NPY_SHORT NPY_USHORTNPY_INTNPY_UINTNPY_LONG NPY_CFLOAT NPY_CDOUBLENPY_LONGDOUBLE unsigned_long NPY_ULONG NPY_LONGLONGunsigned_long_long NPY_ULONGLONGdf1bswiulLFDcgBhHIqQGSNy) rrrrrrrrrr!r"r#)481216) rNr82rOrP-1z-2z-4z-8)rNrPrR2432)rNr8rSrOrPrN) realintegerr complexkindlogicalzdouble complexzdouble precisionbyte characterc Cstta|durd}tj|sdSztd|t |d}t | ii}Wdn1s3wYt | D]\}}t |D] }||||<qH||||<q>t |D]d}|tvrlit|<t ||D]Q}|||tvr|t|vrtd||t|||||f|||t||<td|||||fqttd||||||||t tfqtqbtdWdSty}z td|WYd}~dSd}~ww) 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) f2cmap_filer7r6kd1k1msgrv6/usr/lib/python3/dist-packages/numpy/f2py/capi_maps.pyload_f2cmap_filesL    "  rxz%gz%Lgz%dz%hhuz%hdz%huz%uz%ldz%luz(%g,%g)z (%Lg,%Lg)%scCsd}t|r)d|vr|d}n|d}||dvr!t|d|Std||St|r/|Sd|vr|dtvr|d}t|}|d}d|vrd |dvrxz ||dd }W|Stywtd |dd |dd fY|Swd |dvr|d tvrt|d }z ||dd }W|Sty|tvrt|}z|t|dd }WY|Stytd ||dd |||dd t fYnwY|Sw|St |std ||S)z Determines C type voidresultnamevars,getctype: function %s has no return value?! typespecrN 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. ) isfunctionrro issubroutinermraKeyErrorstrrbgetcwd isexternal)varctypearf2cmaprvrvrwrsl   !         rcCst|r%d|vr |d}n|d}||dvrt|d|Std|t|s1tdt|d}d|vrL|d}d|vrD|d}nd |vrL|d }td |sXtd |rft|rdtd t|d }|S)Nr{r|r}z0getstrlength: function %s has no return value?! z;getstrlength: expected a signature of a string but got: %s r8 charselectorrlenz\(\s*(\*|:)\s*\)z(\*|:)zMgetstrlength:intent(hide): expected a string with defined length but got: %s rT)isstringfunctionrroisstringreprrematch isintent_hide)rrrrvrvrwr"s2     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 gd d |d <t t |D]9}g}||t vr||g}nt D]}t d |||r||q|D]}t |t |krd||<nqq{d\|d<}|D]}|d }|dvrd|d||f|d<q|dr|ddd |d<d\|d<}|dD]=}|d }|dvrd|d||f|d<qt|rtd|d|d|df|d<q|r(tdt|t|fq|dr8|ddd |d<|S)Ndimssizer8rank0rN dimensionr,rz rank*[-1]z .*?\b%s\b.*)rNrsetdims)r:z(*)z(:)z%s#varname#_Dims[%d]=%s, 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 )risarrayrisscalarr^joinrrhrprrangedepargsrrappendindex isintent_inrero) rrverboseretdimr<vvar6rvrvrwr >s  51                r cCst|r(d|vr |d}n|d}||dvr t||d|Std|dS||}}d}t|r6d}nt|r %sz%s : call-back function%sz8getpydocsign: Could not resolve docsignature for "%s".\n)rr rorisintent_inout isintent_outr hasinitvaluer rrn c2pycode_maprrrrrrrlcb_maplcb2_map)rrafsigsigoutoptout_arrinitrshowinitrruarvrvrwr {s       #      *   r cCst|}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')rrr) rrrrrrnrrrr)rrrrrrrvrvrwr s*    r cCsDt|r d\}}nd\}}t|r|d}|}t|st|rti}z1|d}d|vr|t+|d f|d?<d@t+|d |dA<t|r!dB||f|d?<t,||\|dC<|dD<t-|r7|dE|dE<|S)Fz varname,ctype,atype init,init.r,init.i,pytype vardebuginfo,vardebugshowvalue,varshowvalue varrfromat intent rNrr)varname outvarnamerzF2PY_%s|F2PY_INTENT_INrL varrformatrOrrrrrrr cbnamekeycbname maxnofargs nofoptargsdocstrcbdocstr latexdocstr cblatexdocstrz5sign2map: Confused: external %s is not in lcb_map%s. lengthratyperoutputinoutputrequiredoptionalhiddenzcomplex scalarscalarr#arrayz complex arrayz string arrayzcomplex functionfunctioncallback auxiliaryrz slen(%s)=%srcSs d||fS)Nz%s|%srv)xrMrvrvrwFs zsign2map..zdims(%s)zdebug-capi:%s=>%s:%s vardebuginfozdebug-capi:%s %s=%s:%sdebug-capi:%s=%svardebugshowvalue"debug-capi:slen(%s)=%%d %s=\"%%s\"zdebug-capi:%s=%%pz #name#:%s=%s varshowvalueryshowvalueformatz#name#:slen(%s)=%%d %s=\"%%s\" pydocsign pydocsignoutnote).rr isintent_dictrkrrrc2buildvalue_mapr rrrrrrrrorjrlrr dictappendr r^ c2capi_map debugcapirr isrequired isoptionalrl_andrl_notr isstringarrayiscomplexfunctionrisintent_callback isintent_auxrrmap cformat_mapr hasnote) rrrrrr intent_flagsr7r:rilrlr<ddimrvrvrwr s(                             r c Cs|d}t|}||dd||t|td|||t|p%dt|p*dt|p/dd }d|vr;d|d<nd|d<d|vrHd |d <nd |d <iad |vr|d  D]@}|t j vrt j |D]3}|d }d |d |vr|d |d  D]}|d |d ||d kr|}nq||dt|<qdqXnd|vr|drt d|dt |dft|tpd|d<t|rbd|vr|d}n|d}||d<t||\|d<|d<t|d||d<t|r|d|d|d<dg|d|d<|dtvr t|d|d<nd|d<t dt |dt|r>|dtvr1d|t|df|d<t|r>d ||f|d<t|rbt|d||d!<|d!d"krbt d#t |dd$|d!<t|rr|d|d<dg|d<|S)%zV name,NAME,begintitle,endtitle rname,ctype,rformat routdebugshowvalue r|_\_ end of %srN) r|texname name_lowerNAME begintitleendtitle fortranname FORTRANNAME callstatementusercode usercode1 F_FUNC_USF_FUNCF_WRAPPEDFUNC_US F_WRAPPEDFUNCuserrr externalszMroutsign2map: Confused: function %s has externals %s but no "use" statement. callprotoargumentr{rnamerrr}rr resultnoteSee elsewhere.rformatrz.routsign2map: no c2buildvalue key for type %s rroutdebugshowvaluerrlengthrTzzroutsign2map: expected explicit specification of the length of the string returned by the fortran function %s; taking 10. 10)getfortrannamerrmuppergentitlegetcallstatement getusercode getusercode1rrlrcb_maprorgetcallprotoargumentrr r hasresultnoterrrrrr) routr|fnamerr=unlnrrrrvrvrwrbs                    rcCst|r|d|d|dddd}n|d|d|dddd}t|p.g|d<t|r;|d|d<t|p@d|d <t|pHd|d <|d r\t|d d pXd|d <nd|d <t|ped|d<d|vrr|d|d<d|vr||d|d<|S)z modulename r|rr) f90modulename F90MODULENAMEtexf90modulename) modulename MODULENAME texmodulenamerestdocrrNrrbodyrinterface_usercode pymethoddefcoutputf2py_wrapper_output)ismoduler"r getrestdocrr%r&getpymethoddef)mrrvrvrwrs.     rcCsd|i}|d|d<t||d<|dtvrt|d|d<|dtvr.dt|d|d<t|r:t|t||}t||\|d<|d<t|rT|d |d <d g|d <|S) Nr varname_irrryrrrrr)rrrrrr r r)rrrrrvrvrwrs      rcCsd|d|fdd}t|r0d|dvrd}nd}d||d|df|d <d |d <n |d|d <d |d <|d|d <t|d|d <td|d|d<t||d<d|d<|ddkrgd|d<n|d|d<|ddkrt|r|d|d<nd|d<|dtvrdt|d|d<t|rt||d<t |rd|vr|d}n|d}t |d|r|d|d|d<dg|d|d<||d<t ||\|d<|d <t|rd!|d<nt |r|d|d<dg|d<d"}d"}d#|vrd|vr|d#D]}|d|}t t t|r|d$}t|r|d$}qt||d%<t||d&<t |rCt |rCd|vrC|d|d'<dg|d<|S)(z\ name,begintitle,endtitle,argname ctype,rctype,maxnofargs,nofoptargs,returncptr z cb_%s_in_%sr|rN)r| returncptrrrrz %s(%s,%s) callbacknameexternstaticrr rr rrzrctyper#z3 #ifdef F2PY_CB_RETURNCOMPLEX return_value= #endif r?z return_value=ryr strlengthr{r}rrrrrz8 #ifdef F2PY_CB_RETURNCOMPLEX #ctype# #else void #endif rargsrrrroutnote)rrmr"r#rrrrrrrr l_orrrrr)r*umrrrnofargsrrrvrvrwrs~                        rcCs|t|d}t|rd|d<|dtvrt|d|d<|dtvr-dt|d|d<t|r:t|t||}nt|rHt||d<d|d <t ||\|d <|d <t |rb|d |d <d g|d <t |||d<|S)N)rrrrrryrrr8rrrrr arrdocstr) rrrrrrr rrr rr )rrrrvrvrwr3s$     r)r)N)&__doc__rNrversion f2py_versionr^rrb crackfortranrrauxfuncs__all__ using_newcorerrrrnrrrrar_r`rxrrrr r r r r rrrrrrvrvrvrws                              +     1 =J#hQ  R