2[cR@`sdZddlmZmZmZddlZddlZddlZddlm Z ddl m Z ddl m Z dd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYgRZ e jZejjZejZiZgZdZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZdbZdcZ ddZ!deZ"dfZ#dgZ$dhZ%diZ&djZ'dkZ(dlZ)dmZ*dnZ+doZ,dpZ-dqZ.drZ/dsZ0dtZ1duZ2dvZ3dwZ4dxZ5dyZ6dzZ7d{Z8d|Z9d}Z:d~Z;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZMdZNdZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[i deM6deN6deO6deP6deS6deR6deJ6deW6deY6deZ6de[6Z\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZfdZgdZhdeifdYZjdYekfdYZldZmdZndZodZpdZqdddZrdZsidZtdZudZvdZwdZxdZydZzdZ{dZ|dZ}ddZ~dZidZdS(sW Auxiliary functions for f2py2e. 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 (BSD style) LICENSE. NO WARRANTY IS EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. $Date: 2005/07/24 19:01:55 $ Pearu Peterson i(tdivisiontabsolute_importtprint_functionN(treducei(t __version__(tcfuncst applyrulest debugcapit dictappendterrmesstgentitletgetargs2tgetcallprotoargumenttgetcallstatementtgetfortrannametgetpymethoddeft getrestdoct getusercodet getusercode1thasbodythascallstatementt hascommont hasexternalst hasinitvaluethasnotet hasresultnotet isallocatabletisarraytisarrayofstringst iscomplextiscomplexarraytiscomplexfunctiontiscomplexfunction_warntisdoubletisdummyroutinet isexternalt isfunctiontisfunction_wrapt isint1arrayt isintegert isintent_auxt isintent_ctisintent_callbackt isintent_copyt isintent_dictt isintent_hidet isintent_intisintent_inouttisintent_inplacetisintent_nothidet isintent_outtisintent_overwritet islogicaltislogicalfunctiontislong_complext islong_doubletislong_doublefunctiont islong_longtislong_longfunctiontismoduletismoduleroutinet isoptionalt isprivatet isrequiredt isroutinetisscalartissigned_long_longarraytisstringt isstringarraytisstringfunctiont issubroutinetissubroutine_wrapt isthreadsafet isunsignedtisunsigned_chartisunsigned_chararraytisunsigned_long_longtisunsigned_long_longarraytisunsigned_shorttisunsigned_shortarraytl_andtl_nottl_ortoutmesstreplacetshowt stripcommat throw_errorcC`s)tjddr%tjj|ndS(Ntverbosei(toptionstgettsyststdouttwrite(tt((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRS@scC`s dtkS(Ntcapi(t debugoptions(tvar((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyREscC`s'd|ko&|ddko&t| S(Nttypespect character(R#(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyt _isstringIscC`st|ot| S(N(RdR(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRCNscC`st|od|kS(Nt charselector(RC(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyt ischaracterRscC`st|ot|S(N(RRd(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRDVscC`st|o|dddkS(Nt dimensionis(*)(RD(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRZscC`sd|kot| S(NRg(R#(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR`scC`s#t|p!t|p!t| S(N(RRCR#(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRAdscC`st|o|jddkS(NRbtcomplexsdouble complex(Rhsdouble complex(RARZ(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRhs cC`st|o|jddkS(NRbtlogical(RARZ(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR4mscC`st|o|jddkS(NRbtinteger(RARZ(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR'qscC`st|o|jddkS(NRbtreal(RARZ(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pytisrealuscC`sLy|ddSWn5tk rGy|ddSWqHtk rCqHXnXdS(Nt kindselectort*tkind(tKeyError(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pytget_kindys  cC`s9t|sdS|jddkr)dSt|dkS(NiRbRjRit8(RjRi(RARZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR9s  cC`s9t|sdS|jddkr)dSt|dkS(NiRbRjs-1(RARZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRJs  cC`s9t|sdS|jddkr)dSt|dkS(NiRbRjs-2(RARZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRNs  cC`s9t|sdS|jddkr)dSt|dkS(NiRbRjs-4(RARZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRIs  cC`s9t|sdS|jddkr)dSt|dkS(NiRbRjs-8(RARZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRLs  cC`s9t|sdS|jddks)dSt|dkS(NiRbRkRr(RARZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR!s  cC`s9t|sdS|jddks)dSt|dkS(NiRbRkt16(RARZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR7s  cC`s t|sdSt|dkS(Nit32(RRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR6s cC`st|o|jddkS(NRbRhsdouble complex(Rhsdouble complex(RRZ(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRs cC`s1t|o0|jddko0t|dkS(NRbRjt1(RRZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR&s!cC`s1t|o0|jddko0t|dkS(NRbRjRis-1(RjRi(RRZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRKs!cC`s1t|o0|jddko0t|dkS(NRbRjRis-2(RjRi(RRZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyROs!cC`s1t|o0|jddko0t|dkS(NRbRjRis-4(RjRi(RRZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pytisunsignedarrays!cC`s1t|o0|jddko0t|dkS(NRbRjRis-8(RjRi(RRZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRMs!cC`s1t|o0|jddko0t|dkS(NRbRjRiRu(RjRi(RRZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pytissigned_chararrays!cC`s1t|o0|jddko0t|dkS(NRbRjRit2(RjRi(RRZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pytissigned_shortarrays!cC`s1t|o0|jddko0t|dkS(NRbRjRit4(RjRi(RRZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pytissigned_arrays!cC`s1t|o0|jddko0t|dkS(NRbRjRiRr(RjRi(RRZRq(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRBs!cC`sd|kod|dkS(Ntattrspect allocatable((Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRscC`sd|kpt| S(NRg(RC(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyt ismutablescC`s d|kS(Nt modulename((trout((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR<scC`sd|kod|dkS(Ntblocktmodule((R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR;scC`sd|kod|dkS(NRtfunction((R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR$scC`s-t|rdSto,t|o,t| S(Ni(R)t wrapfuncsR$R#(R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR%s cC`sd|kod|dkS(NRt subroutine((R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRF scC`s&t|rdSt|o%t|S(Ni(R)RFthasassumedshape(R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRGs cC`ss|jdrtSxY|dD]M}xD|dj|ijdgD] }|dkrGt|dscC`s d|kS(Nt=((Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRscC`s"t|sdS|dddkS(NiRt"t'(RR(R(Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pythasinitvalueasstrings cC`s d|kS(Ntnote((Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRscC`sYt|sdSd|kr)|d}n |d}||dkrUt|d|SdS(NiRRR(R$R(RR((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRs    cC`s d|kS(Ntcommon((R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRscC`sHt|rdSt|rDx%|dD]}t|r'dSq'WndS(Nitbodyi(RRtcontainscommon(Rtb((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRs    cC`sIt|rdSt|s dSx"|dD]}t|r+dSq+WdS(NiiR(R;Rtcontainsmodule(RR((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR s   cC`s d|kS(NR((R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRscC`st|dk S(N(R tNone(R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRscC`sdS(Ni((Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pytistruescC`sdS(Ni((Ra((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pytisfalse#st F2PYErrorcB`seZRS((t__name__t __module__(((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR'scB`seZdZdZRS(cC`s ||_dS(N(tmess(tselfR((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyt__init__-scC`s#d||jf}t|dS(Ns var = %s Message: %s (RR(RRaR((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyt__call__0s(RRRR(((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRW+s cG`skdg}}x>tt|D]*}d|||f}|jd|q Wtd|dj|fS(Nslambda vs %s,f%d=f[%d]sf%d(v)s%s:%ss and (trangetlentappendtevaltjoin(tftltl2ti((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRP5s  cG`skdg}}x>tt|D]*}d|||f}|jd|q Wtd|dj|fS(Nslambda vs %s,f%d=f[%d]sf%d(v)s%s:%ss or (RRRRR(RRRR((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRR=s  cC`s tdS(Nslambda v,f=f:not f(v)(R(R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRQEscC`s/y|dddkSWntk r*dSXdS(NRt fortrannameti(Rp(R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR"Is cC`sjyH|dd}|dkr&tn|sGtd|dtnWntk re|d}nX|S(NRRRs"Failed to use fortranname from %s R(RpR (RR((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRPs     cC`s1y|dj|}Wntk r+dSX|s6dS|dkrUt|trUdSt|tr|t|krzdS||}n|d dkr-|rd|dt|d|d}n |d}|ddkr|r|d d t|d }q*|d }q-td |t|fn|S( NRiis'''s /* start s multiline (s) */ is /* end multiline (s)*/s-%s multiline block should end with `'''`: %s (RZRpt isinstancetstrtlistRtreprR (Rt blocknametcommenttcountertr((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pytgetmultilineblock^s.  '  cC`s t|dS(Nt callstatement(R(R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR |sc C`szt|ddd}|r|St|r9tddSddlm}gg}}tttt|r|j ddgnx|d D]}|d |}t |rqn||kr||d }nn||}tt t t t|rnt|rn |d }t|s3t|rC|jdn|j|qWd j||} | svd} n| S(NtcallprotoargumentRis<warning: callstatement is defined without callprotoargument i(tgetctypeschar*tsize_tRRt_typedefRnt,tvoid(RRRSt capi_mapsRRPRERQR%textendR*R)RRRARRCRRR( Rtcb_mapRRt arg_typest arg_types2tnRatctypet proto_args((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR s<        cC`s t|dS(Ntusercode(R(R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRscC`st|dddS(NRRi(R(R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRscC`s t|dS(Nt pymethoddef(R(R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRscC`sgg}}d|kr|d}d|krx.|dD]"}||kr:|j|q:q:Wx7|D]"}||krg|j|qgqgWq|d}n||fS(NRtsortvars(R(RtsortargsRR((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pytgetargss        cC`sg|jdg}}g|djD],}t|d|r*||kr*|^q*}||}d|krx.|dD]"}||kr}|j|q}q}Wx;|D]"}||kr|j|qqWn||d}||fS(NRRR(RZtkeysR(R(RRRRtauxvars((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR s+     cC`sQd|krdSd}|ddkr=|d|df}n|dj|dS(Ntf2pymultilinesRs python moduleR(RRZ(Rtk((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRs  cC`s1dt|dd}d|d||dfS(NiPiis /*%s %s %s*/Rn(R(RR((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyR scC`s,t|tr%ttd|gS|gS(NcS`s|||S(N((txtyR((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyts(RRRtflatlist(R((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRscC`s"|r|ddkr|d S|S(NiR((ts((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRVsRcC`s't|tr2g|D]}t|||^qSt|trdg|D]}t|||^qHSxdt|jD]}|dkrq{nd|kr||dkr|d|}n|}t||tr|jd||jt||}q{|jd|||}q{W|S(Nit separatorsfors#%s#(RRRTRRR(RRt defaultsept_mRtsep((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyRTs## ,cC`st|tr3x|D]}t||}qW|Sx_|jD]Q}|ddkr\q@n||krt||tr||g||RRRRRRRRRRRt ExceptionRtobjectRWRPRRRQR"RRR R RRRRR RR RRVRTRR(((s2/tmp/pip-build-fiC0ax/numpy/numpy/f2py/auxfuncs.pyts$                                                                                                     $