zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
U
P±d)\ãX@sÒdZddlZddlZddlZddlmZddlmZddlmZddd    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@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^gXZ    ej
Z ej j ZejZiZgZdZd_dY„Zd`d„Zdadb„Zdcdd„Zded „Zdfd„Zdgd„ZdhdJ„ZdidH„ZdjdI„Zdkd„Zdld„ZdmdF„Zdnd!„Z dod9„Z!dpd,„Z"dqdr„Z#dsdt„Z$dud*„Z%dvd>„Z&dwdP„Z'dxdT„Z(dydO„Z)dzdR„Z*d{d%„Z+d|d<„Z,d}d;„Z-d~d"„Z.dd+„Z/d€dQ„Z0ddU„Z1d‚dƒ„Z2d„dS„Z3d…d†„Z4d‡dˆ„Z5d‰dŠ„Z6d‹dG„Z7dŒd„Z8ddŽ„Z9ddA„Z:dd@„Z;d‘d(„Z<d’d)„Z=d“dL„Z>d”dM„Z?d•d^„Z@d–d—„ZAd˜d™„ZBdšdE„ZCd›d:„ZDdœd?„ZEdd=„ZFdžd#„ZGdŸd$„ZHd dK„ZId¡d„ZJd¢dN„ZKd£d¤„ZLd¥dB„ZMd¦d'„ZNd§dD„ZOd¨d3„ZPd©d4„ZQdªd7„ZRd«d2„ZSd¬d6„ZTd­d.„ZUd®d¯„ZVd°d0„ZWd±d8„ZXd²d/„ZYd³d5„ZZd´d-„Z[dµd¶„Z\d·d¸„Z]d¹dº„Z^ePd»eQd¼eRd½eSd¾eVd¿eUdÀeMdÁeZdÂe\dÃe]dÄe^dÅi Z_dÆdC„Z`dÇd„ZadÈdɄZbdÊd„ZcdËd„ZddÌd„ZedÍd΄ZfdÏdЄZgdÑd„ZhdÒd„ZidÓdԄZjdÕdքZkGd×d؄dØelƒZmGdÙd]„d]ƒZndÚdV„ZodÛdX„ZpdÜdW„ZqdÝd&„ZrdÞd„Zsdòdßdà„Ztdád„Zuifdâd „Zvdãd„Zwdäd„Zxdåd„Zydædç„Zzdèd „Z{déd„Z|dêd „Z}dëdì„Z~díd\„ZdódïdZ„Z€dðd    „Zifdñd„Z‚dS)ôaW
 
Auxiliary functions for f2py2e.
 
Copyright 1999,2000 Pearu Peterson all rights reserved,
Pearu Peterson <pearu@ioc.ee>
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
 
éN)Úreduceé)Ú __version__)ÚcfuncsÚ
applyrulesÚ    debugcapiÚ
dictappendÚerrmessÚgentitleÚgetargs2ÚgetcallprotoargumentÚgetcallstatementÚgetfortrannameÚgetpymethoddefÚ
getrestdocÚ getusercodeÚ getusercode1ÚhasbodyÚhascallstatementÚ    hascommonÚ hasexternalsÚ hasinitvalueÚhasnoteÚ hasresultnoteÚ isallocatableÚisarrayÚisarrayofstringsÚ ischaracterÚischaracterarrayÚischaracter_or_characterarrayÚ    iscomplexÚiscomplexarrayÚiscomplexfunctionÚiscomplexfunction_warnÚisdoubleÚisdummyroutineÚ
isexternalÚ
isfunctionÚisfunction_wrapÚisint1Ú isint1arrayÚ    isintegerÚ isintent_auxÚ
isintent_cÚisintent_callbackÚ isintent_copyÚ isintent_dictÚ isintent_hideÚ isintent_inÚisintent_inoutÚisintent_inplaceÚisintent_nothideÚ isintent_outÚisintent_overwriteÚ    islogicalÚislogicalfunctionÚislong_complexÚ islong_doubleÚislong_doublefunctionÚ islong_longÚislong_longfunctionÚismoduleÚismoduleroutineÚ
isoptionalÚ    isprivateÚ
isrequiredÚ    isroutineÚisscalarÚissigned_long_longarrayÚisstringÚ isstringarrayÚisstring_or_stringarrayÚisstringfunctionÚ issubroutineÚissubroutine_wrapÚ isthreadsafeÚ
isunsignedÚisunsigned_charÚisunsigned_chararrayÚisunsigned_long_longÚisunsigned_long_longarrayÚisunsigned_shortÚisunsigned_shortarrayÚl_andÚl_notÚl_orÚoutmessÚreplaceÚshowÚ
stripcommaÚ throw_errorÚ isattr_valuecCst dd¡rtj |¡dS)NÚverboser)ÚoptionsÚgetÚsysÚstdoutÚwrite)Út©reúJd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/f2py/auxfuncs.pyrXAs cCsdtkS)NZcapi)Ú debugoptions©ÚvarrererfrFscCsd|ko|ddkot|ƒ S©NÚtypespecÚ    character©r&rhrererfÚ _ischaracterJsÿrncCsd|ko|ddkot|ƒ SrjrmrhrererfÚ    _isstringOsÿrocCst|ƒod|kS©NZ charselector©rnrhrererfrTscCst|ƒot|ƒ S©N©rrrhrererfrXscCst|ƒot|ƒSrrrsrhrererfr\scCst|ƒod|kSrprqrhrererfrI`scCst|ƒot|ƒ Srr©rIrrhrererfrGdscCst|ƒot|ƒSrrrtrhrererfrHhscCst|ƒo|dddkS)NÚ    dimensionéÿÿÿÿz(*))rHrhrererfrlscCsd|kot|ƒ S©NrurmrhrererfrrscCst|ƒpt|ƒpt|ƒ Srr)rrGr&rhrererfrEvscCst|ƒo| d¡dkS©Nrk)Úcomplexzdouble complex©rEr`rhrererfr zs ÿcCst|ƒo| d¡dkS)NrkÚlogicalrzrhrererfr8scCst|ƒo| d¡dkS)NrkÚintegerrzrhrererfr+ƒscCst|ƒo| d¡dkS)NrkÚrealrzrhrererfÚisreal‡sr~c CsPz|ddWStk
rJz|ddWYStk
rDYnXYnXdS)NZ kindselectorÚ*Úkind©ÚKeyErrorrhrererfÚget_kind‹srƒcCs$| d¡dko"t|ƒdko"t|ƒ S©Nrkr|Ú1)r`rƒrrhrererfr)•s
 
ÿÿcCs*t|ƒs dS| d¡dkrdSt|ƒdkS)Nrrk©r|r{Ú8©rEr`rƒrhrererfr=šs
cCs*t|ƒs dS| d¡dkrdSt|ƒdkS)Nrrkr|ú-1rˆrhrererfrO¢s
cCs*t|ƒs dS| d¡dkrdSt|ƒdkS)Nrrkr|ú-2rˆrhrererfrSªs
cCs*t|ƒs dS| d¡dkrdSt|ƒdkS)Nrrkr|ú-4rˆrhrererfrN²s
cCs*t|ƒs dS| d¡dkrdSt|ƒdkS)Nrrkr|ú-8rˆrhrererfrQºs
cCs*t|ƒs dS| d¡dksdSt|ƒdkS)Nrrkr}r‡rˆrhrererfr$Âs
cCs*t|ƒs dS| d¡dksdSt|ƒdkS)Nrrkr}Z16rˆrhrererfr;Ês
cCst|ƒs dSt|ƒdkS)NrÚ32)r rƒrhrererfr:ÒscCst|ƒo| d¡dkSrx)rr`rhrererfr!Øs ÿcCs"t|ƒo | d¡dko t|ƒdkSr„©rr`rƒrhrererfr*Ýs
ÿcCs"t|ƒo | d¡dko t|ƒdkS)Nrkr†r‰rŽrhrererfrPâs
ÿcCs"t|ƒo | d¡dko t|ƒdkS)Nrkr†rŠrŽrhrererfrTçs
ÿcCs"t|ƒo | d¡dko t|ƒdkS)Nrkr†r‹rŽrhrererfÚisunsignedarrayìs
ÿrcCs"t|ƒo | d¡dko t|ƒdkS)Nrkr†rŒrŽrhrererfrRñs
ÿcCs"t|ƒo | d¡dko t|ƒdkS)Nrkr†r…rŽrhrererfÚissigned_chararrayös
ÿrcCs"t|ƒo | d¡dko t|ƒdkS)Nrkr†Ú2rŽrhrererfÚissigned_shortarrayûs
ÿr’cCs"t|ƒo | d¡dko t|ƒdkS)Nrkr†Ú4rŽrhrererfÚissigned_arrays
ÿr”cCs"t|ƒo | d¡dko t|ƒdkS)Nrkr†r‡rŽrhrererfrFs
ÿcCsd|kod|dkS)NÚattrspecZ allocatablererhrererfr
scCsd|kpt|ƒ Srw)rGrhrererfÚ    ismutablesr–cCsd|kS)NÚ
modulenamere©Úroutrererfr@scCsd|kod|dkS)NÚblockÚmodulerer˜rererfr?scCsd|kod|dkS)NršÚfunctionrer˜rererfr'scCs"t|ƒr dSto t|ƒo t|ƒ S©Nr)r-Ú    wrapfuncsr'r&r˜rererfr(scCsd|kod|dkS)NršZ
subroutinerer˜rererfrK$scCst|ƒr dSt|ƒot|ƒSr)r-rKÚhasassumedshaper˜rererfrL(scCsd| dg¡kS)NÚvaluer•©r`rhrererfr]-scCsV| d¡rdS|dD]:}|d |i¡ dg¡D]}|dkr2d|d<dSq2qdS)NrŸTÚargsÚvarsruú:Fr¡)r™ÚaÚdrererfrŸ1s
  rŸcCst|ƒpt|ƒSrr)r@rŸr˜rererfÚrequiresf90wrapper<sr§cCst|ƒpt|ƒSrr)r'rKr˜rererfrD@scCsFt|ƒs dSd|kr|d}n|d}||dkrBt|d|ƒSdS©NrÚresultÚnamer£)r'r8©r™r¥rererfr9Ds
 cCsFt|ƒs dSd|kr|d}n|d}||dkrBt|d|ƒSdSr¨)r'r=r«rererfr>Ps
 cCsFt|ƒs dSd|kr|d}n|d}||dkrBt|d|ƒSdSr¨)r'r;r«rererfr<\s
 cCsFt|ƒs dSd|kr|d}n|d}||dkrBt|d|ƒSdSr¨)r'r r«rererfr"hs
 cCst|ƒrtdƒdSdS)Na‰    **************************************************************
        Warning: code with a function returning complex value
        may not work correctly with your Fortran compiler.
        When using GNU gcc/g77 compilers, codes should work
        correctly for callbacks with:
        f2py -c -DF2PY_CB_RETURNCOMPLEX
    **************************************************************
rr)r"rXr˜rererfr#tscCsFt|ƒs dSd|kr|d}n|d}||dkrBt|d|ƒSdSr¨)r'rGr«rererfrJ‚s
 cCsd|ko|dS)NZ    externalsrer˜rererfrŽscCsd|kod|dkS)NÚf2pyenhancementsZ
threadsaferer˜rererfrM’s
ÿcCsd|ko|dS)Nr£rer˜rererfÚ hasvariables—sr­cCs(d|ko&d|dko&d|dko&t|ƒS)Nr•ÚoptionalÚrequired)r5rhrererfrA›s
 
ÿÿcCsd|kod|dkS)Nr•Zexternalrerhrererfr& scCst|ƒ ot|ƒSrr)rAr5rhrererfrC¤scCspd|kr dSd|dkrdSd|dkr,dSd|dkr<dSd|dkrLdSd|dkr\dSd    |dkrldSdS)
NÚintentrÚhiderÚinplaceÚinÚoutÚinoutÚoutinrerhrererfr2¨s      cCsDd|koBd|dks d|dkoBd|dkoBd|dkoBd|dkS)Nr°rµr¶r³r±r²rerhrererfr3ºs
ÿ
ÿ
þ
þcCsd| dg¡kS)Nr´r°r¡rhrererfr6ÀscCs<d|ko:d|dkp:d|dko:d|dko:tttƒ|ƒ S)Nr°r±r´r³)rWr3r4rhrererfr1ÄsþcCs
t|ƒ Srr)r1rhrererfr5ÊscCsd| dg¡kS)NÚcr°r¡rhrererfr-ÎscCsd| dg¡kS)NÚcacher°r¡rhrererfÚisintent_cacheÒsr¹cCsd| dg¡kS)NÚcopyr°r¡rhrererfr/ÖscCsd| dg¡kS)NÚ    overwriter°r¡rhrererfr7ÚscCsd| dg¡kS)NÚcallbackr°r¡rhrererfr.ÞscCsd| dg¡kS)Nr²r°r¡rhrererfr4âscCsd| dg¡kS)NZauxr°r¡rhrererfr,æscCsd| dg¡kS)NZaligned4r°r¡rhrererfÚisintent_aligned4êsr½cCsd| dg¡kS)NZaligned8r°r¡rhrererfÚisintent_aligned8îsr¾cCsd| dg¡kS)NZ    aligned16r°r¡rhrererfÚisintent_aligned16òsr¿Z    INTENT_INZ INTENT_INOUTZ
INTENT_OUTZ INTENT_HIDEZ INTENT_CACHEZINTENT_CZOPTIONALZINTENT_INPLACEZINTENT_ALIGNED4ZINTENT_ALIGNED8ZINTENT_ALIGNED16cCsd|kod|dkS)Nr•ÚprivatererhrererfrBscCsd|kS)Nú=rerhrererfrscCst|ƒs dS|dddkS)NrrÁ)ú"ú')rrhrererfÚhasinitvalueasstring    srÄcCsd|kS)NZnotererhrererfrscCsFt|ƒs dSd|kr|d}n|d}||dkrBt|d|ƒSdSr¨)r'rr«rererfrs
 cCsd|kS)NÚcommonrer˜rererfrscCs4t|ƒr dSt|ƒr0|dD]}t|ƒrdSqdS)NrÚbodyr)rrÚcontainscommon)r™ÚbrererfrÇ#s rÇcCs8t|ƒr dSt|ƒsdS|dD]}t|ƒr dSq dS)NrrrÆ)r?rÚcontainsmodule)ršrÈrererfrÉ-s rÉcCsd|kS)NrÆrer˜rererfr8scCs t|ƒdk    Srr)r r˜rererfr<scCsdS)NrrerhrererfÚistrue@srÊcCsdSrrerhrererfÚisfalseDsrËc@s eZdZdS)Ú    F2PYErrorN)Ú__name__Ú
__module__Ú __qualname__rerererfrÌHsrÌc@seZdZdd„Zdd„ZdS)r\cCs
||_dSrr)Úmess)ÚselfrÐrererfÚ__init__Nszthrow_error.__init__cCsd||jf}t|ƒ‚dS)Nz
 
  var = %s
  Message: %s
)rÐrÌ)rÑrirÐrererfÚ__call__Qszthrow_error.__call__N)rÍrÎrÏrÒrÓrerererfr\LscGsNdg}}tt|ƒƒD] }d|||f}| d|¡qtd|d |¡fƒS)Núlambda vú %s,f%d=f[%d]úf%d(v)ú%s:%sz and ©ÚrangeÚlenÚappendÚevalÚjoin©ÚfÚl1Úl2ÚirererfrUVs
 
cGsNdg}}tt|ƒƒD] }d|||f}| d|¡qtd|d |¡fƒS)NrÔrÕrÖr×z or rØrÞrererfrW^s
 
cCstdƒS)Nzlambda v,f=f:not f(v))rÜ)rßrererfrVfscCs.z|dddkWStk
r(YdSXdS)Nr¬Ú fortrannameÚrrr˜rererfr%jscCsVz4|dd}|dkrt‚|s2td|dƒt‚Wntk
rP|d}YnX|S)Nr¬rãräz"Failed to use fortranname from %s
rª)r‚r    )r™rªrererfrqs ÿcCs
z|d |¡}Wntk
r(YdSX|s2dS|dkrHt|tƒrHdSt|tƒrj|t|ƒkrbdS||}|dd…dkr|r¦d|dt|ƒd|dd…}n |dd…}|dd…dkrò|rä|dd…d    t|ƒd
}n |dd…}ntd |t|ƒfƒ|S) Nr¬réz'''z
    /* start z  multiline (z) */
éýÿÿÿz
    /* end multiline (z)*/z-%s multiline block should end with `'''`: %s
)r`r‚Ú
isinstanceÚstrÚlistrÚÚreprr    )r™Z    blocknameÚcommentÚcounterÚrrererfÚgetmultilineblocks@
 ÿÿÿ
ÿ 
ÿrîcCs
t|dƒS)NZ callstatement©rîr˜rererfr sc
Cst|ddd}|r|St|ƒr*tdƒdSddlm}gg}}ttttƒƒ|ƒr`|     ddg¡|d    D]”}|d
|}t
|ƒr‚qh||kr˜||d }nZ||ƒ}tt t t tƒƒ|ƒr¶nt|ƒrÀnt|ƒsÐ|d }t|ƒsèt|ƒsèt|ƒrò| d¡| |¡qhd  ||¡}    |    sd}    |    S)NZcallprotoargumentr)rëz<warning: callstatement is defined without callprotoargument
r)Úgetctypezchar*Zsize_tr¢r£Z_typedefrú,Zvoid)rîrrXZ    capi_mapsrðrUrJrVr(Úextendr.r-rWrEr rGr]rrHrÛrÝ)
r™Zcb_maprírðZ    arg_typesZ
arg_types2ÚnriÚctypeZ
proto_argsrererfr ¡sHÿ 
  ÿþ
 cCs
t|dƒS)NÚusercoderïr˜rererfrÈscCst|dddS)Nrõr)rìrïr˜rererfrÌscCs
t|dƒS)NZ pymethoddefrïr˜rererfrÐscCspgg}}d|krh|d}d|kr`|dD]}||kr*| |¡q*|D]}||krF| |¡qFn|d}||fS)Nr¢Úsortvars)rÛ)r™Úsortargsr¢r¥rererfÚgetargsÔs
  røcsgˆ dg¡}‰‡‡fdd„ˆd ¡Dƒ}|ˆ‰dˆkr|ˆdD]}|ˆkrF| |¡qFˆD]}||krb| |¡qbn |ˆd}ˆ|fS)Nr¢cs(g|] }tˆd|ƒr|ˆkr|‘qS)r£)r,)Ú.0r¥©r¢r™rerfÚ
<listcomp>æsÿzgetargs2.<locals>.<listcomp>r£rö)r`ÚkeysrÛ)r™r÷Zauxvarsr¥rerúrfr äs   cCs<d|kr dSd}|ddkr,|d|df}|d |d¡S)NZf2pymultilinesršz python modulerªr¡)r™Úkrererfrõs  cCs*dt|ƒdd}d|d||dfS)NéPééz /*%s %s %s*/r)rÚ)rªÚlnrererfr
þscCs$t|tƒrttfdd„|gƒS|gS)NcSs |||ƒSrrre)ÚxÚyrßrererfÚ<lambda>ózflatlist.<locals>.<lambda>)rçrérÚflatlist)Úlstrererfrs
rcCs |r|ddkr|dd…S|S)Nrvrñre)Úsrererfr[    s räc    sÈtˆtƒr‡‡fdd„ˆDƒStˆtƒr<‡‡fdd„ˆDƒSdtˆ ¡ƒD]v}|dkrZqLdˆkr||ˆdkr|ˆd|}nˆ}tˆ|tƒr®ˆ d|| tˆ|ƒ¡¡‰qLˆ d|ˆ|¡‰qLˆS)Ncsg|]}tˆ|ˆƒ‘qSre©rY©rùÚ_m)Ú
defaultseprèrerfrûszreplace.<locals>.<listcomp>csg|]}t|ˆˆƒ‘qSrer    r
)r¦r rerfrûsrÚ separatorsforz#%s#)rçrérürYrÝr)rèr¦r rýÚsepre)r¦r rèrfrYs
 
 cCs2t|tƒr"|D]}t||ƒ}q|S| ¡D]}|ddkr>q*||kr t||tƒrd||g||<t||tƒrªt||tƒr–||||||<n|| ||¡ntt||tƒr,t||tƒr,|dkr|| ¡D]$}|||krà||||||<qànt||||ƒ||<q*||||<q*|S)NrÚ_r )rçrérrürèrÛÚdict)ÚrdÚarr¥rýÚk1rererfr"s.
 
 
 c Csži}t|tƒr>|D]&}t|||ƒ}t||ƒ}d|krq:q|Sd|krV|d|ƒsV|Sd|krˆtd|di||ƒ}d|krˆt |d¡| ¡D]}|dkr¬||||<qt||tƒrÐt|||ƒ||<n†t||tƒr$g||<||D].}t||i||ƒ}    ||    krð||     |    |¡qðn2|ddkr8qnt||t
ƒrBg||<|| ¡D]â}
t|
t j ƒr\|
|ƒr\t|||
tƒrê|||
D]N}t|t
ƒrÐtd|i||ƒ}d|krÌ|d}nd    }||     t||ƒ¡q˜nR|||
}t|t
ƒr(td|i|ƒ}d|kr$|d}nd    }||     t||ƒ¡q\nt d
t||ƒƒt||tƒrt||ƒd kr†||d||<||gkr||=q|S) NÚ_breakÚ_checkZneedZneedsr rrZ    supertexträzapplyrules: ignoring rule %s.
r)rçrérrrZ append_needsrürèrYrÛrÚtypesÚ FunctionTyper    rêrÚ) Úrulesr¦riÚretríÚrrÚresrýrârrrererfr?sl
 
 
 
 
 
 )rr)rä)ƒÚ__doc__ÚpprintrarÚ    functoolsrrärrÚ__all__ÚversionZ f2py_versionÚstderrrcr    rZr_rgržrXrrnrorrrrIrGrHrrrEr r8r+r~rƒr)r=rOrSrNrQr$r;r:r!r*rPrTrrRrr’r”rFrr–r@r?r'r(rKrLr]rŸr§rDr9r>r<r"r#rJrrMr­rAr&rCr2r3r6r1r5r-r¹r/r7r.r4r,r½r¾r¿r0rBrrÄrrrrÇrÉrrrÊrËÚ    ExceptionrÌr\rUrWrVr%rrîr r rrrrør rr
rr[rYrrrerererfÚ<module>sÎ   ç
      ù  
 
 
 '