
    Khi                     b   S r SSKrSSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r	  SSK	J
r
  / SQr\R                  r\R                  r0 r/ rSrS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%S r&S r'S r(S  r)S! r*S" r+S# r,S$ r-S% r.S& r/S' r0S( r1S) r2S* r3S+ r4S, r5S- r6S. r7S/ r8S0 r9S1 r:S2 r;S3 r<S4 r=S5 r>S6 r?S7 r@S8 rAS9 rBS: rCS; rDS< rES= rFS> rGS? rHS@ rISA rJSB rKSC rLSD rMSE rNSF rOSG rPSH rQSI rRSJ rSSK rTSL rUSM rVSN rWSO rXSP rYSQ rZSR r[SS r\ST r]SU r^SV r_\QSW\RSX\SSY\TSZ\WS[\VS\\LS]\[S^\]S_\^S`\_Sa0r`Sb raSc rbSd rcSe rdSf reSg rfSh rgSi rhSj riSk rjSl rkSm rlSn rm " So Sp\n5      ro " Sq Sr5      rpSs rqSt rrSu rsSv rtSw ruSSx jrvSy rw0 4Sz jrxS{ ryS| rzS} r{S~ r|S r}S r~S rS rS rSS jrS r0 4S jr\GR
                  " S\GR                  5      GR                  r\GR
                  " S\GR                  5      GR                  rS rS rSS jrg)a9  
Auxiliary functions for f2py2e.

Copyright 1999 -- 2011 Pearu Peterson all rights reserved.
Copyright 2011 -- present NumPy Developers.
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.
    N)reduce   )__version__)cfuncs)errmess)_
applyrules	debugcapi
dictappendr   gentitlegetargs2getcallprotoargumentgetcallstatementgetfortrannamegetpymethoddef
getrestdocgetusercodegetusercode1getdimensionhasbodyhascallstatement	hascommonhasexternalshasinitvaluehasnotehasresultnoteisallocatableisarrayisarrayofstringsischaracterischaracterarrayischaracter_or_characterarray	iscomplexiscstyledirective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
isvariable
isrequired	isroutineisscalarissigned_long_longarrayisstringisstringarrayisstring_or_stringarrayisstringfunctionissubroutineget_f2py_modulename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_valuegetuseblocksprocess_f2cmap_dictcontainscommonc                 z    [         R                  SS5      (       a   [        R                  R	                  U 5        g g )Nverboser   )optionsgetsysstdoutwrite)ts    E/var/www/html/env/lib/python3.13/site-packages/numpy/f2py/auxfuncs.pyr]   r]   <   s*    {{9a  

 !    c                     S[         ;   $ )Ncapi)debugoptionsvars    rn   r	   r	   A   s    \!!ro   c                 X    SU ;   =(       a    U S   S:H  =(       a    [        U 5      (       + $ Ntypespec	characterr)   rs   s    rn   _ischaracterrz   E   .     ZK!? #ro   c                 X    SU ;   =(       a    U S   S:H  =(       a    [        U 5      (       + $ rv   ry   rs   s    rn   	_isstringr}   J   r{   ro   c                 0    [        U 5      =(       a    SU ;  $ Ncharselectorrz   rs   s    rn   r!   r!   O   s    :s!::ro   c                 F    [        U 5      =(       a    [        U 5      (       + $ Nr!   r   rs   s    rn   r   r   S   s    (-Bgcl2BBro   c                 <    [        U 5      =(       a    [        U 5      $ r   r   rs   s    rn   r    r    W   s    (->'#,>ro   c                 0    [        U 5      =(       a    SU ;   $ r   r   rs   s    rn   rM   rM   [   s    63!66ro   c                 F    [        U 5      =(       a    [        U 5      (       + $ r   rM   r   rs   s    rn   rK   rK   _   s    "3'<,<<ro   c                 <    [        U 5      =(       a    [        U 5      $ r   r   rs   s    rn   rL   rL   c   s    "3'8GCL8ro   c                 <    [        U 5      =(       a    U S   S   S:H  $ )N	dimensionz(*))rL   rs   s    rn   r   r   g   s#     ?#k"22"6%"??ro   c                 :    SU ;   =(       a    [        U 5      (       + $ Nr   ry   rs   s    rn   r   r   m   s    #5jo"55ro   c                 j    [        U 5      =(       d    [        U 5      =(       d    [        U 5      (       + $ r   )r   rK   r)   rs   s    rn   rI   rI   q   s!    @@CAAro   c                 N    [        U 5      =(       a    U R                  S5      S;   $ Nrw   )complexzdouble complexrI   ri   rs   s    rn   r"   r"   u   s'    C= @77:"??@ro   c                 N    [        U 5      =(       a    U R                  S5      S:H  $ )Nrw   logicalr   rs   s    rn   r;   r;   z       C==SWWZ0I==ro   c                 N    [        U 5      =(       a    U R                  S5      S:H  $ )Nrw   integerr   rs   s    rn   r.   r.   ~   r   ro   c                 N    [        U 5      =(       a    U R                  S5      S:H  $ )Nrw   realr   rs   s    rn   isrealr      s    C=:SWWZ0F::ro   c                 h     U S   S   $ ! [          a     U S   S   s $ ! [          a      g f = ff = f)Nkindselector*kindKeyErrorrs   s    rn   get_kindr      sM    >"3'' 	~&v.. 		s    
 
11
-1-1c                     U R                  S5      S:H  =(       a%    [        U 5      S:H  =(       a    [        U 5      (       + $ Nrw   r   1)ri   r   r   rs   s    rn   r,   r,      s8    77:)+ 6SMS 6)0%56ro   c                 l    [        U 5      (       d  gU R                  S5      S;  a  g[        U 5      S:H  $ )Nr   rw   r   r   8rI   ri   r   rs   s    rn   r@   r@      s2    C==
wwz"88C=Cro   c                 l    [        U 5      (       d  gU R                  S5      S:w  a  g[        U 5      S:H  $ )Nr   rw   r   -1r   rs   s    rn   rT   rT      1    C==
wwzi'C=D  ro   c                 l    [        U 5      (       d  gU R                  S5      S:w  a  g[        U 5      S:H  $ )Nr   rw   r   -2r   rs   s    rn   rX   rX      r   ro   c                 l    [        U 5      (       d  gU R                  S5      S:w  a  g[        U 5      S:H  $ )Nr   rw   r   -4r   rs   s    rn   rS   rS      r   ro   c                 l    [        U 5      (       d  gU R                  S5      S:w  a  g[        U 5      S:H  $ )Nr   rw   r   -8r   rs   s    rn   rV   rV      r   ro   c                 l    [        U 5      (       d  gU R                  S5      S:X  d  g[        U 5      S:H  $ )Nr   rw   r   r   r   rs   s    rn   r'   r'      s1    C==77:&(C=Cro   c                 l    [        U 5      (       d  gU R                  S5      S:X  d  g[        U 5      S:H  $ )Nr   rw   r   16r   rs   s    rn   r>   r>      s1    C==77:&(C=D  ro   c                 @    [        U 5      (       d  g[        U 5      S:H  $ )Nr   32)r"   r   rs   s    rn   r=   r=      s    S>>C=D  ro   c                 N    [        U 5      =(       a    U R                  S5      S;   $ r   )r   ri   rs   s    rn   r$   r$      s'    3< @77:"??@ro   c                 x    [        U 5      =(       a)    U R                  S5      S:H  =(       a    [        U 5      S:H  $ r   r   ri   r   rs   s    rn   r-   r-      s4    3< !CGGJ/9< !SMS !ro   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nrw   r   r   r   rs   s    rn   rU   rU      5    3< "CGGJ/3II "SMT!"ro   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nrw   r   r   r   rs   s    rn   rY   rY      r   ro   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nrw   r   r   r   rs   s    rn   isunsignedarrayr      r   ro   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nrw   r   r   r   rs   s    rn   rW   rW      r   ro   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nrw   r   r   r   rs   s    rn   issigned_chararrayr      5    3< !CGGJ/3II !SMS !ro   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nrw   r   2r   rs   s    rn   issigned_shortarrayr      r   ro   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nrw   r   4r   rs   s    rn   issigned_arrayr      r   ro   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nrw   r   r   r   rs   s    rn   rJ   rJ      r   ro   c                 *    SU ;   =(       a    SU S   ;   $ )Nattrspecallocatable rs   s    rn   r   r     s    A#j/!AAro   c                 :    SU ;  =(       d    [        U 5      (       + $ r   )rK   rs   s    rn   	ismutabler   	  s    3&7(3-88ro   c                     SU ;   $ )N
modulenamer   routs    rn   rC   rC     s    4ro   c                 *    SU ;   =(       a    SU S   :H  $ )Nblockmoduler   r   s    rn   rB   rB     s    d?8x4=88ro   c                 *    SU ;   =(       a    SU S   :H  $ )Nr   functionr   r   s    rn   r*   r*     s    d?:zT']::ro   c                     [        U 5      (       a  g[        =(       a"    [        U 5      =(       a    [        U 5      (       + $ Nr   )r0   	wrapfuncsr*   r)   r   s    rn   r+   r+     s-    $DD)D:d3C/CDro   c                 *    SU ;   =(       a    SU S   :H  $ )Nr   
subroutiner   r   s    rn   rO   rO     s    d?<|tG}<<ro   c                 ^    [        U 5      (       a  g[        U 5      =(       a    [        U 5      $ r   )r0   rO   hasassumedshaper   s    rn   rQ   rQ   #  s%    $7/$"77ro   c                 ,    SU R                  S/ 5      ;   $ )Nvaluer   ri   rs   s    rn   rb   rb   (  s    cggj"---ro   c                     U R                  S5      (       a  gU S    H=  nU S   R                  U0 5      R                  S/ 5       H  nUS:X  d  M  SU S'       g   M?     g)Nr   Targsvarsr   :Fr   )r   ads      rn   r   r   ,  se    xx!""&\f!!!R(,,["=ACx*.&' > 
 ro   c                 <    [        U 5      =(       d    [        U 5      $ r   )rC   r   r   s    rn   requiresf90wrapperr   7  s    4 9OD$99ro   c                 <    [        U 5      =(       d    [        U 5      $ r   )r*   rO   r   s    rn   rH   rH   ;  s    d1|D11ro   c                 z    [        U 5      (       d  gSU ;   a  U S   nOU S   nXS   ;   a  [        U S   U   5      $ gNr   resultnamer   )r*   r;   r   r   s     rn   r<   r<   ?  J    d4NLLfa))ro   c                 z    [        U 5      (       d  gSU ;   a  U S   nOU S   nXS   ;   a  [        U S   U   5      $ gr   )r*   r@   r   s     rn   rA   rA   K  sJ    d4NLL4<?++ro   c                 z    [        U 5      (       d  gSU ;   a  U S   nOU S   nXS   ;   a  [        U S   U   5      $ gr   )r*   r>   r   s     rn   r?   r?   W  sJ    d4NLLT&\!_--ro   c                 z    [        U 5      (       d  gSU ;   a  U S   nOU S   nXS   ;   a  [        U S   U   5      $ gr   )r*   r"   r   s     rn   r%   r%   c  r   ro   c                 <    [        U 5      (       a  [        S5        gg)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
    **************************************************************
r   r   )r%   r]   r   s    rn   r&   r&   o  s$     H 	I ro   c                 z    [        U 5      (       d  gSU ;   a  U S   nOU S   nXS   ;   a  [        U S   U   5      $ gr   )r*   rK   r   s     rn   rN   rN   }  sJ    d4NLLVQ((ro   c                 $    SU ;   =(       a    U S   $ )N	externalsr   r   s    rn   r   r     s    $44#44ro   c                 *    SU ;   =(       a    SU S   ;   $ )Nf2pyenhancements
threadsafer   r   s    rn   rR   rR     s"    % 44 2334ro   c                 $    SU ;   =(       a    U S   $ )Nr   r   r   s    rn   hasvariablesr     s    T>*d6l*ro   c                 l    SU ;   =(       a    SU S   ;   =(       a    SU S   ;  =(       a    [        U 5      $ )Nr   optionalrequired)r8   rs   s    rn   rD   rD     s?    # .*J"? .c*o-I3CC3HIro   c                 *    SU ;   =(       a    SU S   ;   $ )Nr   externalr   rs   s    rn   r)   r)     s    >s:!>>ro   c                     SnSU R                  5       ;   aH  [        S U S    5       5      (       a-  U S    Vs/ s H  n[        R                  " X5      PM     snS   $ g g s  snf )Nz	\((.*?)\)r   c              3   ,   #    U  H
  nS U;   v   M     g7f)r   Nr   ).0ss     rn   	<genexpr>getdimension.<locals>.<genexpr>  s     9A{as   r   )keysanyrefindall)rt   
dimpatternvs      rn   r   r     s^    JSXXZ9Z9997::G!BJJz-GJJ :  Gs    A c                 F    [        U 5      (       + =(       a    [        U 5      $ r   )rD   r8   rs   s    rn   rG   rG     s    #8#3C#88ro   c                 6   ^  1 Skn[        U 4S jU 5       5      $ )N>   pymethoddefcallstatementcallprotoargumentc              3   H   >#    U  H  oTR                  5       ;   v   M     g 7fr   )lower)r  	directive	f2py_lines     rn   r  $iscstyledirective.<locals>.<genexpr>  s     Jz)IOO--zs   ")r  )r  
directivess   ` rn   r#   r#     s    FJJzJJJro   c                     SU ;  a  gSU S   ;   a  gSU S   ;   a  gSU S   ;   a  gSU S   ;   a  gSU S   ;   a  gS	U S   ;   a  gg)
Nintentr   hider   inplaceinoutinoutoutinr   rs   s    rn   r5   r5     sj    sXCM!s8}H#h-#h-ro   c                     SU ;   =(       aD    SU S   ;   =(       d    SU S   ;   =(       a&    SU S   ;  =(       a    SU S   ;  =(       a    SU S   ;  $ )Nr  r!  r"  r  r  r  r   rs   s    rn   r6   r6     sg    O KCM!9 "%s8}$K*.c(m*CK#h-'K,5S],JLro   c                 ,    SU R                  S/ 5      ;   $ )Nr   r  r   rs   s    rn   r9   r9         CGGHb)))ro   c                     SU ;   =(       aL    SU S   ;   =(       d=    SU S   ;   =(       a.    SU S   ;  =(       a    [        [        [        5      " U 5      (       + $ )Nr  r  r   r  )r\   r6   r7   rs   s    rn   r4   r4     s\    O D3x=!8 "Cc(m# BCM(A B.*:;C@@Ero   c                 "    [        U 5      (       + $ r   )r4   rs   s    rn   r8   r8     s    S!!!ro   c                 ,    SU R                  S/ 5      ;   $ )Ncr  r   rs   s    rn   r0   r0     s    #''(B'''ro   c                 ,    SU R                  S/ 5      ;   $ )Ncacher  r   rs   s    rn   isintent_cacher,    s    cggh+++ro   c                 ,    SU R                  S/ 5      ;   $ )Ncopyr  r   rs   s    rn   r2   r2     s    SWWXr***ro   c                 ,    SU R                  S/ 5      ;   $ )N	overwriter  r   rs   s    rn   r:   r:         #''(B///ro   c                 ,    SU R                  S/ 5      ;   $ )Ncallbackr  r   rs   s    rn   r1   r1         2...ro   c                 ,    SU R                  S/ 5      ;   $ )Nr  r  r   rs   s    rn   r7   r7     s    "---ro   c                 ,    SU R                  S/ 5      ;   $ )Nauxr  r   rs   s    rn   r/   r/     r%  ro   c                 ,    SU R                  S/ 5      ;   $ )Naligned4r  r   rs   s    rn   isintent_aligned4r:    r4  ro   c                 ,    SU R                  S/ 5      ;   $ )Naligned8r  r   rs   s    rn   isintent_aligned8r=    r4  ro   c                 ,    SU R                  S/ 5      ;   $ )N	aligned16r  r   rs   s    rn   isintent_aligned16r@    r1  ro   	INTENT_ININTENT_INOUT
INTENT_OUTINTENT_HIDEINTENT_CACHEINTENT_COPTIONALINTENT_INPLACEINTENT_ALIGNED4INTENT_ALIGNED8INTENT_ALIGNED16c                 *    SU ;   =(       a    SU S   ;   $ )Nr   privater   rs   s    rn   rE   rE     s    =c*o!==ro   c                 T    [        U 5      S:X  a  SU ;   a  U S   S   S;   a  SnU$ SnU$ )Nr   r   r   )publicrM  FTlen)rt   is_vars     rn   rF   rF     s>    
3x1}s*
OA"77 M Mro   c                     SU ;   $ )N=r   rs   s    rn   r   r     s    #:ro   c                 :    [        U 5      (       d  gU S   S   S;   $ )Nr   rT  )"')r   rs   s    rn   hasinitvalueasstringrX    s#    s8A;*$$ro   c                     SU ;   $ )Nnoter   rs   s    rn   r   r     s    S=ro   c                 z    [        U 5      (       d  gSU ;   a  U S   nOU S   nXS   ;   a  [        U S   U   5      $ gr   )r*   r   r   s     rn   r   r   #  sJ    d4NLLtF|A''ro   c                     SU ;   $ )Ncommonr   r   s    rn   r   r   /  s    tro   c                     [        U 5      (       a  g[        U 5      (       a  U S    H  n[        U5      (       d  M    g   g)Nr   bodyr   )r   r   re   )r   bs     rn   re   re   3  s8    t}}fAa    ro   c                     [        U 5      (       a  g[        U 5      (       d  gU S    H  n[        U5      (       d  M    g   g)Nr   r   r_  )rB   r   containsmodule)r   r`  s     rn   rb  rb  =  s;    5>>6]!  ro   c                     SU ;   $ )Nr_  r   r   s    rn   r   r   H  s    T>ro   c                     [        U 5      S L$ r   )r   r   s    rn   r   r   L  s    D!--ro   c                     g)Nr   r   rs   s    rn   istruerf  P      ro   c                     gr   r   rs   s    rn   isfalseri  T  rg  ro   c                       \ rS rSrSrg)	F2PYErroriX  r   N)__name__
__module____qualname____firstlineno____static_attributes__r   ro   rn   rk  rk  X  s    ro   rk  c                        \ rS rSrS rS rSrg)ra   i\  c                     Xl         g r   mess)selfrt  s     rn   __init__throw_error.__init__^  s    	ro   c                 B    SU< SU R                   < S3n[        U5      e)Nz


  var = z
  Message: 
)rt  rk  )ru  rt   rt  s      rn   __call__throw_error.__call__a  s    47Coro   rs  N)rl  rm  rn  ro  rv  rz  rp  r   ro   rn   ra   ra   \  s    ro   ra   c                      S/ p![        [        U 5      5       H  nSXU4-  nUR                  SU-  5        M      [        U< SSR	                  U5      < 35      $ )Nlambda v%s,f%d=f[%d]f%d(v)r   z and rangerQ  appendevaljoinfl1l2is       rn   rZ   rZ   f  sT    3q6]raj(
		(a.!  2w||B/011ro   c                      S/ p![        [        U 5      5       H  nSXU4-  nUR                  SU-  5        M      [        U< SSR	                  U5      < 35      $ )Nr}  r~  r  r   z or r  r  s       rn   r\   r\   n  sS    3q6]raj(
		(a.!  2v{{2/00ro   c                     [        S5      $ )Nzlambda v,f=f:not f(v))r  )r  s    rn   r[   r[   v  s    '((ro   c                 :     U S   S   S:H  $ ! [          a     gf = f)Nr   fortranname r   r   r   s    rn   r(   r(   z  s/    &'6"<< s   
 
c                      U S   S   nUS:X  a  [         eU(       d  [        SU S   -  5        [         e U$ ! [          a	    U S   n U$ f = f)Nr   r  r  z"Failed to use fortranname from %s
r   )r   r   )r   r   s     rn   r   r     so    	&'62:N9,-/ 0N  K  F|Ks   27 A
	A
c                     U S   R                  U5      nU(       d  g US:  a  [        U[        5      (       a  g [        U[        5      (       a  U[        U5      :  a  g XC   nUS S S:X  aw  U(       a  SU-   S-   [        U5      -   S-   USS  -   nOUSS  nUSS  S:X  a(  U(       a  US S S	-   [        U5      -   S
-   nU$ US S n U$ [        U< S[        U5      < S35        U$ ! [         a     g f = f)Nr   r      z'''z
	/* start z multiline (z) */
z
	/* end multiline (z)*/z( multiline block should end with `'''`: ry  )ri   r   
isinstancestrlistrQ  reprr   )r   	blocknamecommentcounterrs        rn   getmultilineblockr    s+   #$((3 {z!S))!Tc!fJ!u~	)!%g/19:<=abEBA !"ARS6U?crF55WEM H	 crF H  $q'+ ,H1  s   C% %
C21C2c                     [        U S5      $ )Nr  r  r   s    rn   r   r     s    T?33ro   c                    [        U SSS9nU(       a  U$ [        U 5      (       a  [        S5        g SSKJn  / / pT[        [        [        [        5      5      " U 5      (       a  UR                  SS/5        U S	    H  nU S
   U   n[        U5      (       a  M  Xa;   a  X   S-   nOU" U5      n[        [        [        [        [        5      5      " U5      (       a  O&[        U5      (       a  O[!        U5      (       d  US-   n[        U5      (       d   [#        U5      (       d  [%        U5      (       a  UR'                  S5        UR'                  U5        M     SR)                  XE-   5      n	U	(       d  Sn	U	$ )Nr  r   )r  z<warning: callstatement is defined without callprotoargument
r   )getctypezchar*size_tr   r   _typedefr   ,void)r  r   r]   	capi_mapsr  rZ   rN   r[   r+   extendr1   r0   r\   rI   r"   rK   rb   r   rL   r  r  )
r   cb_mapr  r  	arg_types
arg_types2nrt   ctype
proto_argss
             rn   r   r     sC   $ 3Q?AK	M#zu_56t<<'8,-&\6l1oS!!;I
*ESMEZh	!:;C@@##C((!CKE$S))!#&&!!(+' * )01J
ro   c                     [        U S5      $ )Nusercoder  r   s    rn   r   r     s    T:..ro   c                     [        U SSS9$ )Nr  r   )r  r  r   s    rn   r   r     s    T:q99ro   c                     [        U S5      $ )Nr  r  r   s    rn   r   r     s    T=11ro   c                     / / p!SU ;   aX  U S   nSU ;   aH  U S    H  nX2;   d  M
  UR                  U5        M     U H  nX1;  d  M
  UR                  U5        M     X!4$ U S   nX!4$ )Nr   sortvars)r  )r   sortargsr   r   s       rn   getargsr    s|    d~F|*%9OOA& & $OOA& 
 > F|H>ro   c                 n   / U R                  S/ 5      p!U S   R                  5        Vs/ s H$  n[        U S   U   5      (       d  M  X2;  d  M"  UPM&     nnXB-   nSU ;   aH  U S    H  nX2;   d  M
  UR                  U5        M     U H  nX1;  d  M
  UR                  U5        M     X!4$ X@S   -   nX!4$ s  snf )Nr   r   r  )ri   r
  r/   r  )r   r  r   r   auxvarss        rn   r   r     s    &"-dv,++- "-Qd6l1o1Nq= -G ">DTj!Ay" " A " 
 > &\)>"s   B2B2B2c                 d    SU ;  a  g S nU S   S:X  a
  U S   U S   4nU S   R                  US 5      $ )Nf2pymultilinesr   zpython moduler   r   )r   ks     rn   r   r     sI    t#AG}'M4<' !%%a..ro   c                 T    S[        U 5      -
  S-
  S-  nSUS-  < SU < SUS-  < S3$ )NP         z/*r    z*/rP  )r   lns     rn   r   r     s.    
s4y.1
	"B#XtR#X66ro   c                 \    [        U [        5      (       a  [        [        4S jU / 5      $ U /$ )Nc                     X" U5      -   $ r   r   )xyr  s      rn   <lambda>flatlist.<locals>.<lambda>  s    q1Q4xro   )r  r  r   flatlist)lsts    rn   r  r    s(    #tX7bAA5Lro   c                 0    U (       a  U S   S:X  a  U S S $ U $ )Nr   r  r   )r  s    rn   r`   r`     s    QrUc\"vHro   c           
      (   [        U[        5      (       a  U Vs/ s H  n[        XU5      PM     sn$ [        U [        5      (       a  U  Vs/ s H  n[        X1U5      PM     sn$ S[        UR                  5       5      -   H  nUS:X  a  M  SU;   a  XAS   ;   a	  US   U   nOUn[        X   [        5      (       a1  U R                  SU-  UR	                  [        X   5      5      5      n Ml  U R                  SU-  X   5      n M     U $ s  snf s  snf )Nr  separatorsforz#%s#)r  r  r^   r
  r  r  )r  r   
defaultsep_mr  seps         rn   r^   r^     s    !T789q,q99#t589Srz*S99affhaA?);$;O$Q'CCadD!!++flCHHXad^,DEC++flAD1C   J :9s   D
Dc                    [        U[        5      (       a  U H  n[        X5      n M     U $ UR                  5        GH  nUS   S:X  a  M  X0;   a  [        X   [        5      (       a  X   /X'   [        X   [        5      (       a;  [        X   [        5      (       a  X   X   -   X'   Mm  X   R                  X   5        M  [        X   [        5      (       ad  [        X   [        5      (       aK  US:X  a1  X   R                  5        H  nX@U   ;  d  M  X   U   X   U'   M     M  [        X   X   5      X'   M  M  GM  X   X'   GM     U $ )Nr   _r  )r  r  r
   r
  r  r  dict)rdarr   r  k1s        rn   r
   r
   2  s$   "dAB"B 	WWYQ43;7"%%%"%&&beT**EBEMBEELL'BE4((beT**O+"$%**,B!A,.E"Ib	 #/ !+25"% 8 + ) EBE) * Iro   c           	         0 n[        U [        5      (       a+  U  H#  n[        XAU5      n[        X55      nSU;   d  M"    U$    U$ SU ;   a  U S   " U5      (       d  U$ SU ;   a0  [        SU S   0X5      nSU;   a  [        R
                  " US   5        U R                  5        GH#  nUS:X  a  X   X7'   M  [        X   [        5      (       a  [        X   U5      X7'   GO[        X   [        5      (       a:  / X7'   X    H,  n[        Xx0X5      n	Xy;   d  M  X7   R                  X   5        M.     GOVUS   S:X  a  M  [        X   [        5      (       Ga  / X7'   X   R                  5        H  n
[        U
[        R                  5      (       d  M$  U
" U5      (       d  M3  [        X   U
   [        5      (       a]  X   U
    HP  n[        U[        5      (       a  [        SU0X5      nSU;   a  US   nOS	nX7   R                  [        X5      5        MR     M  X   U
   n[        U[        5      (       a  [        SU0U5      nSU;   a  US   nOS	nX7   R                  [        X5      5        GM     O[        S
[        X   5      -  5        [        X7   [        5      (       d  GM  [        X7   5      S:X  a	  X7   S   X7'   X7   / :X  d  GM!  X7	 GM&     U$ )N_break_checkneedneedsr  r   r  	supertextr  zapplyrules: ignoring rule %s.
r   )r  r  r   r
   r   append_needsr
  r  r^   r  r  typesFunctionTyper   r  rQ  )rulesr   rt   retr  rrresr  r  r  r  s              rn   r   r   O  s   
C%AA#&BS%C2~
 
 
5%/#"6"6
'5=11:c>G-ZZ\XCFeh$$UXq)CF$''CFX/7FMM"%(  qTS[$''CFhmmob%"4"455"S''!%(2,55!&"A)!T22&0+q1A1&J#.##5(+K(8A(*AFMM'!-8 ". "HRL%a..",k1-=q"AC*c1$'$4$&gam4' &* 5UXFGcfd##36{av|FU V Jro   z%\s*python\s*module\s*(?P<name>[\w_]+)z4\s*python\s*module\s*(?P<name>[\w_]*?__user__[\w_]*)c                     S n[        U 5       nU H:  n[        U5      nU(       d  M  [        U5      (       a  M)  UR                  S5      n  O   S S S 5        U$ ! , (       d  f       U$ = f)Nr   )open_f2py_module_name_match_f2py_user_module_name_matchgroup)sourcer   r  linems        rn   rP   rP     sb    D	fD'-Aq/55wwv  
 K 
 Ks   A'A
A(c           	         / nU S    Hn  nUS    Hb  nUR                  S5      (       d  M  UR                  UR                  S5      R                  5        Vs/ s H  nSU;  d  M  UPM     sn5        Md     Mp     U$ s  snf )Nr_  use__)ri   r  r
  )pymodall_usesinnermodblockr  s        rn   rc   rc     su    HvfH||E""HLL,?,D,D,F X,Fq$VW-,F XY &  O !Ys   
A<%A<c                    / n0 nUR                  5        HJ  u  pgUR                  5        VV	s0 s H  u  pUR                  5       U	_M     n
nn	XUR                  5       '   ML     UR                  5        H  u  pgX`;  a  0 X'   UR                  5        H  u  pX;   ab  XU   ;   a!  [        SU< SU< SX   U   < SU	< S3	5        XU   U'   U(       a  [        SU< SU< SU	< S	35        UR                  U	5        Ml  U(       d  Mu  [	        S
U< SU< SU	< SU	< S[        UR                  5       5      < S35        M     M     X4$ s  sn	nf )ar  
Update the Fortran-to-C type mapping dictionary with new mappings and
return a list of successfully mapped C types.

This function integrates a new mapping dictionary into an existing
Fortran-to-C type mapping dictionary. It ensures that all keys are in
lowercase and validates new entries against a given C-to-Python mapping
dictionary. Redefinitions and invalid entries are reported with a warning.

Parameters
----------
f2cmap_all : dict
    The existing Fortran-to-C type mapping dictionary that will be updated.
    It should be a dictionary of dictionaries where the main keys represent
    Fortran types and the nested dictionaries map Fortran type specifiers
    to corresponding C types.

new_map : dict
    A dictionary containing new type mappings to be added to `f2cmap_all`.
    The structure should be similar to `f2cmap_all`, with keys representing
    Fortran types and values being dictionaries of type specifiers and their
    C type equivalents.

c2py_map : dict
    A dictionary used for validating the C types in `new_map`. It maps C
    types to corresponding Python types and is used to ensure that the C
    types specified in `new_map` are valid.

verbose : boolean
    A flag used to provide information about the types mapped

Returns
-------
tuple of (dict, list)
    The updated Fortran-to-C type mapping dictionary and a list of
    successfully mapped C types.
z	Warning: redefinition of {'z':{'z':'z'->'z'}}
z
	Mapping "z(kind=z)" to "z"
z	Ignoring map {'z'}}: 'z' must be in ry  )itemsr  r]   r  r   r  r
  )
f2cmap_allnew_mapc2py_maprg   f2cmap_mappednew_map_lowerr  d1r  v1d1_lowers              rn   rd   rd     s   L MM13<vrBHHJN<#+aggi  ! $$&JMhhjFB~A&b*-"3R9 %'1b!1b"MN$$R(7b"b$x}}*?A !	 ', $$3 =s   E)r   r   )r  )F)__doc__pprintrj   r  r  	functoolsr   r  r   r   r   __all__versionf2py_versionr_   rh   rr   r   r]   r	   rz   r}   r!   r   r    rM   rK   rL   r   r   rI   r"   r;   r.   r   r   r,   r@   rT   rX   rS   rV   r'   r>   r=   r$   r-   rU   rY   r   rW   r   r   r   rJ   r   r   rC   rB   r*   r+   rO   rQ   rb   r   r   rH   r<   rA   r?   r%   r&   rN   r   rR   r   rD   r)   r   rG   r#   r5   r6   r9   r4   r8   r0   r,  r2   r:   r1   r7   r/   r:  r=  r@  r3   rE   rF   r   rX  r   r   r   re   rb  r   r   rf  ri  	Exceptionrk  ra   rZ   r\   r[   r(   r   r  r   r   r   r   r   r  r   r   r   r  r`   r^   r
   r   compileImatchr  r  rP   rc   rd   r   ro   rn   <module>r     sA  	  
 	     : "" }}
	
"

;C?7=9@6B@
>>;6
 !!!! !!@
!
"
"
"
"
!
!
!
!
B9 9;E=8
.:2					54
+I
?K9K
$L*E"(,+0/.*//0 k>>|]MZZ!#3"$5"$5#%7>%	.		 	 21)<4 ') $N/:2 "/7
&:   ;z **%M%'TT++05 !zz +=>@dd DDIE 
C%ro   