
    (phg                        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                   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# r0S$ r1S% r2S& r3S' r4S( r5S) r6S* r7S+ r8S, r9S- r:S. r;S/ r<S0 r=S1 r>S2 r?S3 r@S4 rAS5 rBS6 rCS7 rDS8 rES9 rFS: rGS; rHS< rIS= rJS> rKS? rLS@ rMSA rNSB rOSC rPSD rQSE rRSF rSSG rTSH rUSI rVSJ rWSK rXSL rYSM rZSN r[SO r\SP r]SQ r^SR r_SS r`ST raSU rb\TSV\USW\VSX\WSY\ZSZ\YS[\PS\\^S]\`S^\aS_\bS`0rcSa rdSb reSc rfSd rgSe rhSf riSg rjSh rkSi rlSj rmSk rnSl ro " Sm Sn\p5      rq " So Sp5      rrSq rsSr rtSs ruSt rvSu rwSSv jrxSw ry0 4Sx jrzSy r{Sz r|S{ r}S| r~S} rS~ rS rS 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)deepcopy   )__version__)cfuncs)\
applyrules	debugcapi
dictappenderrmess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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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_dictc                 z    [         R                  SS5      (       a   [        R                  R	                  U 5        g g )Nverboser   )optionsgetsysstdoutwrite)ts    F/var/www/html/venv/lib/python3.13/site-packages/numpy/f2py/auxfuncs.pyr\   r\   >   s*    {{9a  

 !    c                     S[         ;   $ )Ncapi)debugoptionsvars    rl   r	   r	   C   s    \!!rm   c                 X    SU ;   =(       a    U S   S:H  =(       a    [        U 5      (       + $ Ntypespec	characterr)   rq   s    rl   _ischaracterrx   G   .     ZK!? #rm   c                 X    SU ;   =(       a    U S   S:H  =(       a    [        U 5      (       + $ rt   rw   rq   s    rl   	_isstringr{   L   ry   rm   c                 0    [        U 5      =(       a    SU ;  $ Ncharselectorrx   rq   s    rl   r"   r"   Q   s    :s!::rm   c                 F    [        U 5      =(       a    [        U 5      (       + $ Nr"   r   rq   s    rl   r    r    U   s    (-Bgcl2BBrm   c                 <    [        U 5      =(       a    [        U 5      $ r   r   rq   s    rl   r!   r!   Y   s    (->'#,>rm   c                 0    [        U 5      =(       a    SU ;   $ r}   r   rq   s    rl   rL   rL   ]   s    63!66rm   c                 F    [        U 5      =(       a    [        U 5      (       + $ r   rL   r   rq   s    rl   rJ   rJ   a   s    "3'<,<<rm   c                 <    [        U 5      =(       a    [        U 5      $ r   r   rq   s    rl   rK   rK   e   s    "3'8GCL8rm   c                 <    [        U 5      =(       a    U S   S   S:H  $ )N	dimensionz(*))rK   rq   s    rl   r   r   i   s#     ?#k"22"6%"??rm   c                 :    SU ;   =(       a    [        U 5      (       + $ Nr   rw   rq   s    rl   r   r   o   s    #5jo"55rm   c                 j    [        U 5      =(       d    [        U 5      =(       d    [        U 5      (       + $ r   )r   rJ   r)   rq   s    rl   rH   rH   s   s!    @@CAArm   c                 N    [        U 5      =(       a    U R                  S5      S;   $ Nru   )complexzdouble complexrH   rg   rq   s    rl   r#   r#   w   s'    C= @77:"??@rm   c                 N    [        U 5      =(       a    U R                  S5      S:H  $ )Nru   logicalr   rq   s    rl   r;   r;   |       C==SWWZ0I==rm   c                 N    [        U 5      =(       a    U R                  S5      S:H  $ )Nru   integerr   rq   s    rl   r.   r.      r   rm   c                 N    [        U 5      =(       a    U R                  S5      S:H  $ )Nru   realr   rq   s    rl   isrealr      s    C=:SWWZ0F::rm   c                 h     U S   S   $ ! [          a     U S   S   s $ ! [          a      g f = ff = f)Nkindselector*kindKeyErrorrq   s    rl   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      (       + $ Nru   r   1)rg   r   r   rq   s    rl   r,   r,      s8    77:)+ 6SMS 6)0%56rm   c                 l    [        U 5      (       d  gU R                  S5      S;  a  g[        U 5      S:H  $ )Nr   ru   r   r   8rH   rg   r   rq   s    rl   r@   r@      s2    C==
wwz"88C=Crm   c                 l    [        U 5      (       d  gU R                  S5      S:w  a  g[        U 5      S:H  $ )Nr   ru   r   -1r   rq   s    rl   rS   rS      1    C==
wwzi'C=D  rm   c                 l    [        U 5      (       d  gU R                  S5      S:w  a  g[        U 5      S:H  $ )Nr   ru   r   -2r   rq   s    rl   rW   rW      r   rm   c                 l    [        U 5      (       d  gU R                  S5      S:w  a  g[        U 5      S:H  $ )Nr   ru   r   -4r   rq   s    rl   rR   rR      r   rm   c                 l    [        U 5      (       d  gU R                  S5      S:w  a  g[        U 5      S:H  $ )Nr   ru   r   -8r   rq   s    rl   rU   rU      r   rm   c                 l    [        U 5      (       d  gU R                  S5      S:X  d  g[        U 5      S:H  $ )Nr   ru   r   r   r   rq   s    rl   r'   r'      s1    C==77:&(C=Crm   c                 l    [        U 5      (       d  gU R                  S5      S:X  d  g[        U 5      S:H  $ )Nr   ru   r   16r   rq   s    rl   r>   r>      s1    C==77:&(C=D  rm   c                 @    [        U 5      (       d  g[        U 5      S:H  $ )Nr   32)r#   r   rq   s    rl   r=   r=      s    S>>C=D  rm   c                 N    [        U 5      =(       a    U R                  S5      S;   $ r   )r   rg   rq   s    rl   r$   r$      s'    3< @77:"??@rm   c                 x    [        U 5      =(       a)    U R                  S5      S:H  =(       a    [        U 5      S:H  $ r   r   rg   r   rq   s    rl   r-   r-      s4    3< !CGGJ/9< !SMS !rm   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nru   r   r   r   rq   s    rl   rT   rT      5    3< "CGGJ/3II "SMT!"rm   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nru   r   r   r   rq   s    rl   rX   rX      r   rm   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nru   r   r   r   rq   s    rl   isunsignedarrayr      r   rm   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nru   r   r   r   rq   s    rl   rV   rV      r   rm   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nru   r   r   r   rq   s    rl   issigned_chararrayr      5    3< !CGGJ/3II !SMS !rm   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nru   r   2r   rq   s    rl   issigned_shortarrayr      r   rm   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nru   r   4r   rq   s    rl   issigned_arrayr      r   rm   c                 x    [        U 5      =(       a)    U R                  S5      S;   =(       a    [        U 5      S:H  $ )Nru   r   r   r   rq   s    rl   rI   rI     r   rm   c                 *    SU ;   =(       a    SU S   ;   $ )Nattrspecallocatable rq   s    rl   r   r     s    A#j/!AArm   c                 :    SU ;  =(       d    [        U 5      (       + $ r   )rJ   rq   s    rl   	ismutabler     s    3&7(3-88rm   c                     SU ;   $ )N
modulenamer   routs    rl   rC   rC     s    4rm   c                 *    SU ;   =(       a    SU S   :H  $ )Nblockmoduler   r   s    rl   rB   rB     s    d?8x4=88rm   c                 *    SU ;   =(       a    SU S   :H  $ )Nr   functionr   r   s    rl   r*   r*     s    d?:zT']::rm   c                     [        U 5      (       a  g[        =(       a"    [        U 5      =(       a    [        U 5      (       + $ Nr   )r0   	wrapfuncsr*   r)   r   s    rl   r+   r+     s-    $DD)D:d3C/CDrm   c                 *    SU ;   =(       a    SU S   :H  $ )Nr   
subroutiner   r   s    rl   rN   rN   !  s    d?<|tG}<<rm   c                 ^    [        U 5      (       a  g[        U 5      =(       a    [        U 5      $ r   )r0   rN   hasassumedshaper   s    rl   rP   rP   %  s%    $7/$"77rm   c                 ,    SU R                  S/ 5      ;   $ )Nvaluer   rg   rq   s    rl   ra   ra   *  s    cggj"---rm   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      rl   r   r   .  se    xx!""&\f!!!R(,,["=ACx*.&' > 
 rm   c                 <    [        U 5      =(       d    [        U 5      $ r   )rC   r   r   s    rl   requiresf90wrapperr   9  s    4 9OD$99rm   c                 <    [        U 5      =(       d    [        U 5      $ r   )r*   rN   r   s    rl   rG   rG   =  s    d1|D11rm   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     rl   r<   r<   A  J    d4NLLfa))rm   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     rl   rA   rA   M  sJ    d4NLL4<?++rm   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     rl   r?   r?   Y  sJ    d4NLLT&\!_--rm   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     rl   r%   r%   e  r   rm   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    rl   r&   r&   q  s$     H 	I rm   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*   rJ   r   s     rl   rM   rM     sJ    d4NLLVQ((rm   c                 $    SU ;   =(       a    U S   $ )N	externalsr   r   s    rl   r   r     s    $44#44rm   c                 *    SU ;   =(       a    SU S   ;   $ )Nf2pyenhancements
threadsafer   r   s    rl   rQ   rQ     s"    % 44 2334rm   c                 $    SU ;   =(       a    U S   $ )Nr   r   r   s    rl   hasvariablesr     s    T>*d6l*rm   c                 l    SU ;   =(       a    SU S   ;   =(       a    SU S   ;  =(       a    [        U 5      $ )Nr   optionalrequired)r8   rq   s    rl   rD   rD     s?    # .*J"? .c*o-I3CC3HIrm   c                 *    SU ;   =(       a    SU S   ;   $ )Nr   externalr   rq   s    rl   r)   r)     s    >s:!>>rm   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     rl   	<genexpr>getdimension.<locals>.<genexpr>  s     9A{as   r   )keysanyrefindall)rr   
dimpatternvs      rl   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   rq   s    rl   rF   rF     s    #8#3C#88rm   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   rq   s    rl   r5   r5     sj    sXCM!s8}H#h-#h-rm   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   rq   s    rl   r6   r6     sg    O KCM!9 "%s8}$K*.c(m*CK#h-'K,5S],JLrm   c                 ,    SU R                  S/ 5      ;   $ )Nr  r  r   rq   s    rl   r9   r9         CGGHb)))rm   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   rq   s    rl   r4   r4     s\    O D3x=!8 "Cc(m# BCM(A B.*:;C@@Erm   c                 "    [        U 5      (       + $ r   )r4   rq   s    rl   r8   r8     s    S!!!rm   c                 ,    SU R                  S/ 5      ;   $ )Ncr  r   rq   s    rl   r0   r0     s    #''(B'''rm   c                 ,    SU R                  S/ 5      ;   $ )Ncacher  r   rq   s    rl   isintent_cacher     s    cggh+++rm   c                 ,    SU R                  S/ 5      ;   $ )Ncopyr  r   rq   s    rl   r2   r2     s    SWWXr***rm   c                 ,    SU R                  S/ 5      ;   $ )N	overwriter  r   rq   s    rl   r:   r:         #''(B///rm   c                 ,    SU R                  S/ 5      ;   $ )Ncallbackr  r   rq   s    rl   r1   r1         2...rm   c                 ,    SU R                  S/ 5      ;   $ )Nr  r  r   rq   s    rl   r7   r7     s    "---rm   c                 ,    SU R                  S/ 5      ;   $ )Nauxr  r   rq   s    rl   r/   r/     r  rm   c                 ,    SU R                  S/ 5      ;   $ )Naligned4r  r   rq   s    rl   isintent_aligned4r.    r(  rm   c                 ,    SU R                  S/ 5      ;   $ )Naligned8r  r   rq   s    rl   isintent_aligned8r1    r(  rm   c                 ,    SU R                  S/ 5      ;   $ )N	aligned16r  r   rq   s    rl   isintent_aligned16r4    r%  rm   	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   rq   s    rl   rE   rE     s    =c*o!==rm   c                     SU ;   $ )N=r   rq   s    rl   r   r   	  s    #:rm   c                 :    [        U 5      (       d  gU S   S   S;   $ )Nr   rC  )"')r   rq   s    rl   hasinitvalueasstringrG    s#    s8A;*$$rm   c                     SU ;   $ )Nnoter   rq   s    rl   r   r     s    S=rm   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     rl   r   r     sJ    d4NLLtF|A''rm   c                     SU ;   $ )Ncommonr   r   s    rl   r   r   #  s    trm   c                     [        U 5      (       a  g[        U 5      (       a  U S    H  n[        U5      (       d  M    g   g)Nr   bodyr   )r   r   containscommon)r   bs     rl   rO  rO  '  s8    t}}fAa    rm   c                     [        U 5      (       a  g[        U 5      (       d  gU S    H  n[        U5      (       d  M    g   g)Nr   r   rN  )rB   r   containsmodule)r   rP  s     rl   rR  rR  1  s;    5>>6]!  rm   c                     SU ;   $ )NrN  r   r   s    rl   r   r   <  s    T>rm   c                     [        U 5      S L$ r   )r   r   s    rl   r   r   @  s    D!--rm   c                     g)Nr   r   rq   s    rl   istruerV  D      rm   c                     gr   r   rq   s    rl   isfalserY  H  rW  rm   c                       \ rS rSrSrg)	F2PYErroriL  r   N)__name__
__module____qualname____firstlineno____static_attributes__r   rm   rl   r[  r[  L  s    rm   r[  c                        \ rS rSrS rS rSrg)r`   iP  c                     Xl         g r   mess)selfrd  s     rl   __init__throw_error.__init__R  s    	rm   c                 B    SU< SU R                   < S3n[        U5      e)Nz


  var = z
  Message: 
)rd  r[  )re  rr   rd  s      rl   __call__throw_error.__call__U  s    47Corm   rc  N)r\  r]  r^  r_  rf  rj  r`  r   rm   rl   r`   r`   P  s    rm   r`   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 rangelenappendevaljoinfl1l2is       rl   rY   rY   Z  sT    3q6]raj(
		(a.!  2w||B/011rm   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      $ )Nrm  rn  ro  r   z or rp  rv  s       rl   r[   r[   b  sS    3q6]raj(
		(a.!  2v{{2/00rm   c                     [        S5      $ )Nzlambda v,f=f:not f(v))rt  )rw  s    rl   rZ   rZ   j  s    '((rm   c                 :     U S   S   S:H  $ ! [          a     gf = f)Nr   fortranname r   r   r   s    rl   r(   r(   n  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     rl   r   r   u  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 `'''`: ri  )rg   r   
isinstancestrlistrr  reprr   )r   	blocknamecommentcounterrs        rl   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      $ )Ncallstatementr  r   s    rl   r   r     s    T?33rm   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	$ )Ncallprotoargumentr   )r  z<warning: callstatement is defined without callprotoargument
r   )getctypezchar*size_tr   r   _typedefr   ,void)r  r   r\   	capi_mapsr  rY   rM   rZ   r+   extendr1   r0   r[   rH   r#   rJ   ra   r   rK   rs  ru  )
r   cb_mapr  r  	arg_types
arg_types2nrr   ctype
proto_argss
             rl   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
rm   c                     [        U S5      $ )Nusercoder  r   s    rl   r   r     s    T:..rm   c                     [        U SSS9$ )Nr  r   )r  r  r   s    rl   r   r     s    T:q99rm   c                     [        U S5      $ )Npymethoddefr  r   s    rl   r   r     s    T=11rm   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)rs  )r   sortargsr   r   s       rl   getargsr    s|    d~F|*%9OOA& & $OOA& 
 > F|H>rm   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  )rg   r  r/   rs  )r   r  r   r   auxvarss        rl   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     rl   r   r     sI    t#AG}'M4<' !%%a..rm   c                 T    S[        U 5      -
  S-
  S-  nSUS-  < SU < SUS-  < S3$ )NP         z/*r    z*/)rr  )r   lns     rl   r   r     s.    
s4y.1
	"B#XtR#X66rm   c                 \    [        U [        5      (       a  [        [        4S jU / 5      $ U /$ )Nc                     X" U5      -   $ r   r   )xyrw  s      rl   <lambda>flatlist.<locals>.<lambda>	  s    q1Q4xrm   )r  r  r   flatlist)lsts    rl   r  r    s(    #tX7bAA5Lrm   c                 0    U (       a  U S   S:X  a  U S S $ U $ )Nr   r  r   )r  s    rl   r_   r_     s    QrUc\"vHrm   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  ru  r  )r  r   
defaultsep_mr  seps         rl   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  rs  dict)rdarr   r  k1s        rl   r
   r
   &  s$   "dAB"B 	WWYQ43;7"%%%"%&&beT**EBEMBEELL'BE4((beT**O+"$%**,B!A,.E"Ib	 #/ !+25"% 8 + ) EBE) * Irm   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]   rs  r  typesFunctionTyper   r  rr  )rulesr   rr   retr  rrresr  rz  r  r  s              rl   r   r   C  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 Jrm   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   rw  linems        rl   rO   rO     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 )NrN  use__)rg   r  r  )pymodall_usesinnermodblockr  s        rl   rb   rb     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 ri  )itemslowerr\   rs  r   r  r  )
f2cmap_allnew_mapc2py_mapre   f2cmap_mappednew_map_lowerr  d1r  v1d1_lowers              rl   rc   rc     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__pprintrh   r
  r  	functoolsr   r"  r   r  r   r   __all__versionf2py_versionstderrrj   r   r^   rf   rp   r   r\   r	   rx   r{   r"   r    r!   rL   rJ   rK   r   r   rH   r#   r;   r.   r   r   r,   r@   rS   rW   rR   rU   r'   r>   r=   r$   r-   rT   rX   r   rV   r   r   r   rI   r   r   rC   rB   r*   r+   rN   rP   ra   r   r   rG   r<   rA   r?   r%   r&   rM   r   rQ   r   rD   r)   r   rF   r5   r6   r9   r4   r8   r0   r   r2   r:   r1   r7   r/   r.  r1  r4  r3   rE   r   rG  r   r   r   rO  rR  r   r   rV  rY  	Exceptionr[  r`   rY   r[   rZ   r(   r   r  r   r   r   r   r   r  r   r   r   r  r_   r]   r
   r   compileImatchr  r  rO   rb   rc   r   rm   rl   <module>r     sE  	  
 	     < "" **

}}
	
"

;C?7=9@6B@
>>;6
 !!!! !!@
!
"
"
"
"
!
!
!
!
B9 9;E=8
.:2					54
+I
?K9$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%rm   