
    j}gh                        d Z ddlZddlZddlZddlZddlmZ ddlmZ ddlm	Z	 ddl	m
Z
 g dZej        Zej        Zi Zg ZdZd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d  Z)d! Z*d" Z+d# Z,d$ Z-d% Z.d& Z/d' Z0d( Z1d) Z2d* Z3d+ Z4d, Z5d- Z6d. Z7d/ Z8d0 Z9d1 Z:d2 Z;d3 Z<d4 Z=d5 Z>d6 Z?d7 Z@d8 ZAd9 ZBd: ZCd; ZDd< ZEd= ZFd> ZGd? ZHd@ ZIdA ZJdB ZKdC ZLdD ZMdE ZNdF ZOdG ZPdH ZQdI ZRdJ ZSdK ZTdL ZUdM ZVdN ZWdO ZXdP ZYdQ ZZdR Z[dS Z\dT Z]dU Z^ePdVeQdWeRdXeSdYeVdZeUd[eLd\eZd]e\d^e]d_e^d`iZ_da Z`db Zadc Zbdd Zcde Zddf Zedg Zfdh Zgdi Zhdj Zidk Zjdl Zkdm Zl G dn doem          Zn G dp dq          Zodr Zpds Zqdt Zrdu Zsdv ZtddwZudx Zvi fdyZwdz Zxd{ Zyd| Zzd} Z{d~ Z|d Z}d Z~d Zd ZddZd Zi fdZ ej        dej                  j        Z ej        dej                  j        Zd Zd ZddZdS )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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                 ~    t                               dd          r!t          j                            |            d S d S )Nverboser   )optionsgetsysstdoutwrite)ts    S/var/www/py-google-trends/myenv/lib/python3.11/site-packages/numpy/f2py/auxfuncs.pyr\   r\   <   s>    {{9a   
     c                     dt           v S )Ncapi)debugoptionsvars    rm   r	   r	   A   s    \!!rn   c                 B    d| v o| d         dk    ot          |            S Ntypespec	characterr(   rr   s    rm   _ischaracterry   E   0     ZK!? #rn   c                 B    d| v o| d         dk    ot          |            S ru   rx   rr   s    rm   	_isstringr|   J   rz   rn   c                 (    t          |           od| vS Ncharselectorry   rr   s    rm   r!   r!   O   s    :s!::rn   c                 @    t          |           ot          |            S Nr!   r   rr   s    rm   r   r   S   s    (--Bgcll2BBrn   c                 >    t          |           ot          |           S r   r   rr   s    rm   r    r    W   s    (-->'#,,>rn   c                 (    t          |           od| v S r~   r   rr   s    rm   rL   rL   [   s    63!66rn   c                 @    t          |           ot          |            S r   rL   r   rr   s    rm   rJ   rJ   _   s    "3''<,<<rn   c                 >    t          |           ot          |           S r   r   rr   s    rm   rK   rK   c   s    "3''8GCLL8rn   c                 D    t          |           o| d         d         dk    S )N	dimensionz(*))rK   rr   s    rm   r   r   g   s&     ?#k"22"6%"??rn   c                 *    d| v ot          |            S Nr   rx   rr   s    rm   r   r   m   s    #5joo"55rn   c                 ^    t          |           pt          |           pt          |            S r   )r   rJ   r(   rr   s    rm   rH   rH   q   s'    @@CAArn   c                 N    t          |           o|                     d          dv S Nrv   )complexzdouble complexrH   rh   rr   s    rm   r"   r"   u   s,    C== @77:"??@rn   c                 R    t          |           o|                     d          dk    S )Nrv   logicalr   rr   s    rm   r:   r:   z   $    C===SWWZ00I==rn   c                 R    t          |           o|                     d          dk    S )Nrv   integerr   rr   s    rm   r-   r-   ~   r   rn   c                 R    t          |           o|                     d          dk    S )Nrv   realr   rr   s    rm   isrealr      s$    C==:SWWZ00F::rn   c                     	 | d         d         S # t           $ r$ 	 | d         d         cY S # t           $ r Y Y d S w xY ww xY w)Nkindselector*kindKeyErrorrr   s    rm   get_kindr      sq    >"3''   	~&v.... 	 	 	DDD	s     
>+>
:>:>c                 z    |                      d          dk    o"t          |           dk    ot          |            S Nrv   r   1)rh   r   r   rr   s    rm   r+   r+      s?    77:)+ 6SMMS 6)0%56rn   c                 |    t          |           sdS |                     d          dvrdS t          |           dk    S )Nr   rv   r   r   8rH   rh   r   rr   s    rm   r?   r?      sC    C== q
wwz"888qC==Crn   c                     t          |           sdS |                     d          dk    rdS t          |           dk    S )Nr   rv   r   -1r   rr   s    rm   rS   rS      B    C== q
wwzi''qC==D  rn   c                     t          |           sdS |                     d          dk    rdS t          |           dk    S )Nr   rv   r   -2r   rr   s    rm   rW   rW      r   rn   c                     t          |           sdS |                     d          dk    rdS t          |           dk    S )Nr   rv   r   -4r   rr   s    rm   rR   rR      r   rn   c                     t          |           sdS |                     d          dk    rdS t          |           dk    S )Nr   rv   r   -8r   rr   s    rm   rU   rU      r   rn   c                     t          |           sdS |                     d          dk    sdS t          |           dk    S )Nr   rv   r   r   r   rr   s    rm   r&   r&      sB    C== q77:&((qC==Crn   c                     t          |           sdS |                     d          dk    sdS t          |           dk    S )Nr   rv   r   16r   rr   s    rm   r=   r=      sB    C== q77:&((qC==D  rn   c                 J    t          |           sdS t          |           dk    S )Nr   32)r"   r   rr   s    rm   r<   r<      s&    S>> qC==D  rn   c                 N    t          |           o|                     d          dv S r   )r   rh   rr   s    rm   r#   r#      s,    3<< @77:"??@rn   c                 x    t          |           o+|                     d          dk    ot          |           dk    S r   r   rh   r   rr   s    rm   r,   r,      s;    3<< !CGGJ//9< !SMMS !rn   c                 t    t          |           o)|                     d          dv ot          |           dk    S )Nrv   r   r   r   rr   s    rm   rT   rT      <    3<< "CGGJ//3II "SMMT!"rn   c                 t    t          |           o)|                     d          dv ot          |           dk    S )Nrv   r   r   r   rr   s    rm   rX   rX      r   rn   c                 t    t          |           o)|                     d          dv ot          |           dk    S )Nrv   r   r   r   rr   s    rm   isunsignedarrayr      r   rn   c                 t    t          |           o)|                     d          dv ot          |           dk    S )Nrv   r   r   r   rr   s    rm   rV   rV      r   rn   c                 t    t          |           o)|                     d          dv ot          |           dk    S )Nrv   r   r   r   rr   s    rm   issigned_chararrayr      <    3<< !CGGJ//3II !SMMS !rn   c                 t    t          |           o)|                     d          dv ot          |           dk    S )Nrv   r   2r   rr   s    rm   issigned_shortarrayr      r   rn   c                 t    t          |           o)|                     d          dv ot          |           dk    S )Nrv   r   4r   rr   s    rm   issigned_arrayr      r   rn   c                 t    t          |           o)|                     d          dv ot          |           dk    S )Nrv   r   r   r   rr   s    rm   rI   rI      r   rn   c                     d| v o	d| d         v S )Nattrspecallocatable rr   s    rm   r   r     s    A#j/!AArn   c                 *    d| vpt          |            S r   )rJ   rr   s    rm   	ismutabler   	  s    3&7(3--88rn   c                 
    d| v S )N
modulenamer   routs    rm   rB   rB     s    4rn   c                 "    d| v od| d         k    S )Nblockmoduler   r   s    rm   rA   rA     s    d?8x4=88rn   c                 "    d| v od| d         k    S )Nr   functionr   r   s    rm   r)   r)     s    d?:zT']::rn   c                 p    t          |           rdS t          ot          |           ot          |            S Nr   )r/   	wrapfuncsr)   r(   r   s    rm   r*   r*     s:    $ qDD))D:d3C3C/CDrn   c                 "    d| v od| d         k    S )Nr   
subroutiner   r   s    rm   rN   rN     s    d?<|tG}<<rn   c                 `    t          |           rdS t          |           ot          |           S r   )r/   rN   hasassumedshaper   s    rm   rP   rP   #  s2    $ q7/$"7"77rn   c                 2    d|                      dg           v S )Nvaluer   rh   rr   s    rm   ra   ra   (  s    cggj"----rn   c                     |                      d          rdS | d         D ]D}| d                              |i                                dg           D ]}|dk    r	d| d<     dS EdS )Nr   Targsvarsr   :Fr   )r   ads      rm   r   r   ,  s    xx!"" t&\  f!!!R((,,["== 	 	ACxx*.&'ttt 	 5rn   c                 >    t          |           pt          |           S r   )rB   r   r   s    rm   requiresf90wrapperr   7  s    4  9OD$9$99rn   c                 >    t          |           pt          |           S r   )r)   rN   r   s    rm   rG   rG   ;  s    d1|D111rn   c                     t          |           sdS d| v r	| d         }n| d         }|| d         v rt          | d         |                   S dS Nr   resultnamer   )r)   r:   r   r   s     rm   r;   r;   ?  `    d q4NLDLfa)))1rn   c                     t          |           sdS d| v r	| d         }n| d         }|| d         v rt          | d         |                   S dS r   )r)   r?   r   s     rm   r@   r@   K  s`    d q4NLDL4<?+++1rn   c                     t          |           sdS d| v r	| d         }n| d         }|| d         v rt          | d         |                   S dS r   )r)   r=   r   s     rm   r>   r>   W  s`    d q4NLDLT&\!_---1rn   c                     t          |           sdS d| v r	| d         }n| d         }|| d         v rt          | d         |                   S dS r   )r)   r"   r   s     rm   r$   r$   c  r   rn   c                 F    t          |           rt          d           dS dS )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    rm   r%   r%   o  s9     	 H 	I 	I 	I q1rn   c                     t          |           sdS d| v r	| d         }n| d         }|| d         v rt          | d         |                   S dS r   )r)   rJ   r   s     rm   rM   rM   }  s`    d q4NLDLVQ(((1rn   c                     d| v o| d         S )N	externalsr   r   s    rm   r   r     s    $44#44rn   c                     d| v o	d| d         v S )Nf2pyenhancements
threadsafer   r   s    rm   rQ   rQ     s"    % 44 2334rn   c                     d| v o| d         S )Nr   r   r   s    rm   hasvariablesr     s    T>*d6l*rn   c                 P    d| v o"d| d         v od| d         vot          |           S )Nr   optionalrequired)r7   rr   s    rm   rC   rC     sB    # .*J"? .c*o-I3CC3H3HIrn   c                     d| v o	d| d         v S )Nr   externalr   rr   s    rm   r(   r(     s    >s:!>>rn   c                     dd|                                  v r9t          d | d         D                       rfd| d         D             d         S d S d S )Nz	\((.*?)\)r   c              3      K   | ]}d |v V  	dS )r   Nr   ).0ss     rm   	<genexpr>zgetdimension.<locals>.<genexpr>  s'      99A{a999999rn   c                 :    g | ]}t          j        |          S r   )refindall)r  v
dimpatterns     rm   
<listcomp>z getdimension.<locals>.<listcomp>  s%    GGG!BJz1--GGGrn   r   )keysany)rs   r  s    @rm   r   r     sv    JSXXZZ99Z99999 	KGGGGs:GGGJJ  	K 	Krn   c                 @    t          |            ot          |           S r   )rC   r7   rr   s    rm   rF   rF     s    #8#3C#8#88rn   c                     d| vrdS d| d         v rdS d| d         v rdS d| d         v rdS d| d         v rdS d| d         v rdS d	| d         v rdS dS )
Nintentr   hider   inplaceinoutinoutoutinr   rr   s    rm   r4   r4     s    sqXqCM!!qs8}qHq#h-q#h-q1rn   c                 n    d| v o1d| d         v s
d| d         v od| d         vod| d         vo	d| d         vS )Nr  r  r  r  r  r  r   rr   s    rm   r5   r5     sg    O KCM!9 "%s8}$K*.c(m*CK#h-'K,5S],JLrn   c                 2    d|                      dg           v S )Nr  r  r   rr   s    rm   r8   r8         CGGHb))))rn   c                     d| v oAd| d         v p7d| d         v o-d| d         vo# t          t          t                    |            S )Nr  r  r  r  )r[   r5   r6   rr   s    rm   r3   r3     sd    O D3x=!8 "Cc(m# BCM(A B;T.*:;;C@@@Ern   c                 "    t          |            S r   )r3   rr   s    rm   r7   r7     s    S!!!!rn   c                 2    d|                      dg           v S )Ncr  r   rr   s    rm   r/   r/     s    #''(B''''rn   c                 2    d|                      dg           v S )Ncacher  r   rr   s    rm   isintent_cacher"    s    cggh++++rn   c                 2    d|                      dg           v S )Ncopyr  r   rr   s    rm   r1   r1     s    SWWXr****rn   c                 2    d|                      dg           v S )N	overwriter  r   rr   s    rm   r9   r9         #''(B////rn   c                 2    d|                      dg           v S )Ncallbackr  r   rr   s    rm   r0   r0         2....rn   c                 2    d|                      dg           v S )Nr  r  r   rr   s    rm   r6   r6     s    "----rn   c                 2    d|                      dg           v S )Nauxr  r   rr   s    rm   r.   r.     r  rn   c                 2    d|                      dg           v S )Naligned4r  r   rr   s    rm   isintent_aligned4r0    r*  rn   c                 2    d|                      dg           v S )Naligned8r  r   rr   s    rm   isintent_aligned8r3    r*  rn   c                 2    d|                      dg           v S )N	aligned16r  r   rr   s    rm   isintent_aligned16r6    r'  rn   	INTENT_ININTENT_INOUT
INTENT_OUTINTENT_HIDEINTENT_CACHEINTENT_COPTIONALINTENT_INPLACEINTENT_ALIGNED4INTENT_ALIGNED8INTENT_ALIGNED16c                     d| v o	d| d         v S )Nr   privater   rr   s    rm   rD   rD     s    =c*o!==rn   c                 ^    t          |           dk    rd| v r| d         d         dv rd}nd}|S )Nr   r   r   )publicrC  FTlen)rs   is_vars     rm   rE   rE     sA    
3xx1}}s**
OA"777Mrn   c                 
    d| v S )N=r   rr   s    rm   r   r     s    #:rn   c                 D    t          |           sdS | d         d         dv S )Nr   rJ  )"')r   rr   s    rm   hasinitvalueasstringrN    s*     qs8A;*$$rn   c                 
    d| v S )Nnoter   rr   s    rm   r   r     s    S=rn   c                     t          |           sdS d| v r	| d         }n| d         }|| d         v rt          | d         |                   S dS r   )r)   r   r   s     rm   r   r     s`    d q4NLDLtF|A'''1rn   c                 
    d| v S )Ncommonr   r   s    rm   r   r   *  s    trn   c                     t          |           rdS t          |           r| d         D ]}t          |          r dS dS )Nr   bodyr   )r   r   rd   )r   bs     rm   rd   rd   .  sW     qt}} f 	 	Aa   qq1rn   c                     t          |           rdS t          |           sdS | d         D ]}t          |          r dS dS )Nr   r   rU  )rA   r   containsmodule)r   rV  s     rm   rX  rX  8  s\     q5>> q6]  ! 	11	1rn   c                 
    d| v S )NrU  r   r   s    rm   r   r   C  s    T>rn   c                 $    t          |           d uS r   )r   r   s    rm   r   r   G  s    D!!--rn   c                     dS )Nr   r   rr   s    rm   istruer\  K      1rn   c                     dS r   r   rr   s    rm   isfalser_  O  r]  rn   c                       e Zd ZdS )	F2PYErrorN)__name__
__module____qualname__r   rn   rm   ra  ra  S  s        Drn   ra  c                       e Zd Zd Zd ZdS )r`   c                     || _         d S r   )mess)selfrg  s     rm   __init__zthrow_error.__init__Y  s    			rn   c                 <    d|d| j         d}t          |          )Nz


  var = z
  Message: 
)rg  ra  )rh  rs   rg  s      rm   __call__zthrow_error.__call__\  s$     47CCCoorn   N)rb  rc  rd  ri  rl  r   rn   rm   r`   r`   W  s2              rn   r`   c                      dg }}t          t          |                     D ]"}d|||fz  }|                    d|z             #t          |dd                    |                    S )Nlambda v%s,f%d=f[%d]f%d(v)r   z and rangerG  appendevaljoinfl1l2is       rm   rY   rY   a  su    B3q66]] " "r1aj(
		(a.!!!!222w||B///0111rn   c                      dg }}t          t          |                     D ]"}d|||fz  }|                    d|z             #t          |dd                    |                    S )Nrn  ro  rp  r   z or rq  rv  s       rm   r[   r[   i  sr    B3q66]] " "r1aj(
		(a.!!!!222v{{2/000rn   c                      t          d          S )Nzlambda v,f=f:not f(v))rt  )rw  s    rm   rZ   rZ   q  s    '(((rn   c                 J    	 | d         d         dk    S # t           $ r Y dS w xY w)Nr   fortranname r   r   r   s    rm   r'   r'   u  s?    &'6"<<   qqs    
""c                     	 | d         d         }|dk    rt           |st          d| d         z             t           n# t           $ r | d         }Y nw xY w|S )Nr   r~  r  z"Failed to use fortranname from %s
r   )r   r   )r   r   s     rm   r   r   |  s    	&'62::N 	9,-/ 0 0 0N	    F|Ks   <? AAc                 F   	 | d                              |          }n# t          $ r Y d S w xY w|sd S |dk    rt          |t                    rd S t          |t                    r|t          |          k    rd S ||         }|d d         dk    r|r'd|z   dz   t          |          z   dz   |dd          z   }n
|dd          }|dd          dk    r.|r!|d d         d	z   t          |          z   d
z   }n-|d d         }n"t          |dt          |          d           |S )Nr   r      z'''z
	/* start z multiline (z) */
z
	/* end multiline (z)*/z( multiline block should end with `'''`: rk  )rh   r   
isinstancestrlistrG  reprr   )r   	blocknamecommentcounterrs        rm   getmultilineblockr    s}   #$((33    {{z!S)){!T c!ffFgJ!u~~ 		)!%g/19:<=abbEBAA !""ARSS6U?? crcF55WEMcrcF yy$q''''+ , , ,Hs    
,,c                 "    t          | d          S )Ncallstatementr  r   s    rm   r   r     s    T?333rn   c           	      8   t          | dd          }|r|S t          |           rt          d           d S ddlm} g g }} t          t          t          t                              |           r|	                    ddg           | d	         D ]}| d
         |         }t          |          r ||v r||         dz   }n ||          } t          t          t          t          t                              |          rn$t          |          rnt!          |          s|dz   }t          |          st#          |          st%          |          r|                    d           |                    |           d                    ||z             }	|	sd}	|	S )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*   extendr0   r/   r[   rH   r"   rJ   ra   r   rK   rs  ru  )
r   cb_mapr  r  	arg_types
arg_types2nrs   ctype
proto_argss
             rm   r   r     s   $ 3Q???A  K	M 	M 	M######zI6uu_5566t<< .'8,---&\    6l1oS!! 	;;1I
*EEHSMME;uZh	!:!:;;C@@ (# (#C(( (!CKE ,$S)),!#&&, !!(+++)j011J 
rn   c                 "    t          | d          S )Nusercoder  r   s    rm   r   r     s    T:...rn   c                 &    t          | dd          S )Nr  r   )r  r  r   s    rm   r   r     s    T:q9999rn   c                 "    t          | d          S )Npymethoddefr  r   s    rm   r   r     s    T=111rn   c                     g g }}d| v rW| d         }d| v rC| d         D ]}||v r|                     |           |D ]}||vr|                     |           n| d         }||fS )Nr   sortvars)rs  )r   sortargsr   r   s       rm   getargsr    s    dH~~F|*% ' '99OOA&&& ' 'H$$OOA&&&' F|H>rn   c                 <    g                       dg           c} fd d                                         D             }|z   d v rC d         D ]}|v r|                    |           D ]}||vr|                    |           n| d         z   }|fS )Nr   c                 R    g | ]#}t          d          |                   r|v!|$S )r   )r.   )r  r   r   r   s     rm   r  zgetargs2.<locals>.<listcomp>  s@     " " "Qd6l1o1N1N "D==  ==rn   r   r  )rh   r  rs  )r   r  auxvarsr   r   s   `   @rm   r   r     s    &"--NHd" " " " "$v,++-- " " "GT>DTj! 	# 	#ADyy""" 	# 	#A  """	# T&\)>rn   c                     d| vrd S d }| d         dk    r| d         | d         f}| d                              |d           S )Nf2pymultilinesr   zpython moduler   r   )r   ks     rm   r   r      sT    t##tAG}''M4<' !%%a...rn   c                 V    dt          |           z
  dz
  dz  }d|dz  d| d|dz  dS )NP         z/*r    z*/rF  )r   lns     rm   r   r   	  s>    
s4yy.1
	"BB#XXXtttR#XXX66rn   c                 d    t          | t                    rt          t          fd| g           S | gS )Nc                     |  ||          z   S r   r   )xyrw  s      rm   <lambda>zflatlist.<locals>.<lambda>  s    q11Q44x rn   )r  r  r   flatlist)lsts    rm   r  r    s7    #t BX777bAAA5Lrn   c                 6    | r| d         dk    r
| d d         S | S )Nr   r  r   )r  s    rm   r_   r_     s(     QrUc\\"vHrn   r  c           
      *    t          t                    r fdD             S t           t                    rfd D             S dt                                                    z  D ]}|dk    r	dv r|d         v rd         |         }n}t          |         t                    r@                     d|z  |                    t          |                                                             d|z  |                     S )Nc                 2    g | ]}t          |          S r   r]   )r  _m
defaultsepr  s     rm   r  zreplace.<locals>.<listcomp>  s%    999R,,999rn   c                 2    g | ]}t          |          S r   r  )r  r  r   r  s     rm   r  zreplace.<locals>.<listcomp>  s%    999rAz**999rn   r  separatorsforz#%s#)r  r  r  r]   ru  r  )r  r   r  r  seps   ```  rm   r]   r]     s*   !T :99999q9999#t :99999S9999affhh 
2 
2aA?);$;$;O$Q'CCCadD!! 	2++flCHHXad^^,D,DEECC++flAaD11CCJrn   c                 ,   t          |t                    r|D ]}t          | |          } | S |                                D ]Q}|d         dk    r|| v r1t          | |         t                    r| |         g| |<   t          | |         t                    rRt          ||         t                    r| |         ||         z   | |<   | |                             ||                    t          | |         t                    rt          ||         t                    re|dk    r@||                                         D ]#}|| |         vr||         |         | |         |<   $%t          | |         ||                   | |<   F||         | |<   S| S )Nr   _r  )r  r  r
   r  r  rs  dict)rdarr   r  k1s        rm   r
   r
   -  s   "d  	# 	#AB""BB	WWYY  Q43;;77"Q%%%  A1"Q%&& 9beT** (qEBqEMBqEEqELLA''''BqE4(( 9beT** 9O++"$Q%**,, 6 6B!A,.qE"I1b	6 !+2a5"Q% 8 81qEBqEEIrn   c           	         i }t          | t                    r.| D ])}t          |||          }t          ||          }d|v r n*|S d| v r | d         |          s|S d| v r7t          d| d         i||          }d|v rt	          j        |d                    |                                 D ]}|dk    r| |         ||<   t          | |         t                    rt          | |         |          ||<   nt          | |         t                    rJg ||<   | |         D ]:}t          ||i||          }	||	v r!||         	                    |	|                    ;n|d         dk    rt          | |         t                    rLg ||<   | |                                         D ]*}
t          |
t          j                  r |
|          r t          | |         |
         t                    rr| |         |
         D ]b}t          |t                    r"t          d|i||          }d|v r	|d         }nd	}||         	                    t          ||                     c| |         |
         }t          |t                    r!t          d|i|          }d|v r	|d         }nd	}||         	                    t          ||                     ,n%t          d
t          | |                   z             t          ||         t                    r9t          ||                   dk    r||         d         ||<   ||         g k    r||= |S )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  rG  )rulesr   rs   retr  rrresr  rz  r  r  s              rm   r   r   J  s   
C%  	 	AAq#&&BS"%%C2~~ 
5/%/#"6"6
'5=11c::c>>G---ZZ\\ * *1XCFeAh$$ !	HU1Xq))CFFa$'' 	HCF1X ) )A3//77FMM"Q%((() qTS[[a$'' 	HCFAhmmoo 5 5b%"455 5""S'' 5!%(2,55 5!&q" 9 9A)!T22 +&0+q1A1c&J&J#.##5#5(+K(8AA(*AFMM'!Q--88889 "!HRL%a.. '",k1-=q"A"AC*c11$'$4$&Agamm444'5* 5U1XFGGGc!fd## 	3q6{{aQA1v||FJrn   z%\s*python\s*module\s*(?P<name>[\w_]+)z4\s*python\s*module\s*(?P<name>[\w_]*?__user__[\w_]*)c                     d }t          |           5 }|D ]:}t          |          }|r't          |          r#|                    d          } n;d d d            n# 1 swxY w Y   |S )Nr   )open_f2py_module_name_match_f2py_user_module_name_matchgroup)sourcer   rw  linems        rm   rO   rO     s    D	f  	 	D'--A /55 wwv	               Ks   >AA #A c                     g }| d         D ]f}|d         D ][}|                     d          rD|                    d |                     d                                          D                        \g|S )NrU  usec                     g | ]}d |v|	S )__r   )r  r  s     rm   r  z getuseblocks.<locals>.<listcomp>  s     X X Xq$VW-----rn   )rh   r  r  )pymodall_usesinnermodblocks       rm   rb   rb     s    Hv Z Zf 	Z 	ZH||E"" Z X XHLL,?,?,D,D,F,F X X XYYY	Z Orn   Fc                    g }i }|                                 D ]:\  }}d |                                 D             }|||                                <   ;|                                 D ]\  }}|| vri | |<   |                                 D ]\  }	}
|
|v rn|	| |         v r(t          d|d|	d| |         |	         d|
d	           |
| |         |	<   |rt          d|d|	d	|
d
           |                    |
           w|r>t	          d|d|	d|
d|
dt          |                                          d           | |fS )a  
    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.
    c                 >    i | ]\  }}|                                 |S r   )lower)r  r  v1s      rm   
<dictcomp>z'process_f2cmap_dict.<locals>.<dictcomp>  s&    <<<vr2BHHJJ<<<rn   z	Warning: redefinition of {'z':{'z':'z'->'z'}}
z
	Mapping "z(kind=z)" to "z"
z	Ignoring map {'z'}}: 'z' must be in rk  )itemsr  r\   rs  r   r  r  )
f2cmap_allnew_mapc2py_maprf   f2cmap_mappednew_map_lowerr  d1d1_lowerr  r  s              rm   rc   rc     s   L MM , ,2<<<<<#+aggii  $$&&  2JJqMhhjj 	 	FBX~~A&&G11bbb*Q-"3"3"3RRR9   %'
1b! OG111bbb"""MNNN$$R(((( G11bbb"""bbb$x}}*?*?*?*?A  	$ }$$rn   )r   r   )r  )F)__doc__pprintri   r	  r  	functoolsr   r  r   r   r   __all__versionf2py_versionr^   rg   rq   r   r\   r	   ry   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   rB   rA   r)   r*   rN   rP   ra   r   r   rG   r;   r@   r>   r$   r%   rM   r   rQ   r   rC   r(   r   rF   r4   r5   r8   r3   r7   r/   r"  r1   r9   r0   r6   r.   r0  r3  r6  r2   rD   rE   r   rN  r   r   r   rd   rX  r   r   r\  r_  	Exceptionra  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   rn   rm   <module>r     s  	 	  



 				                           : " }
	  
" " "  
  
; ; ;C C C? ? ?7 7 7= = =9 9 9@ @ @6 6 6B B B@ @ @
> > >> > >; ; ;  6 6 6
     ! ! !! ! !! ! !! ! !     ! ! !! ! !@ @ @
! ! !
" " "
" " "
" " "
" " "
! ! !
! ! !
! ! !
! ! !
B B B9 9 9     9 9 9; ; ;E E E= = =8 8 8
. . .  : : :2 2 2	 	 		 	 		 	 		 	 	  	 	 	5 5 54 4 4
+ + +I I I
? ? ?K K K9 9 9  $L L L* * *E E E" " "( ( (, , ,+ + +0 0 0/ / /. . .* * */ / // / /0 0 0 k>>|]MZZ!#3"$5"$5#%7> > >    % % %  	 	 	        . . .    	 	 	 	 		 	 	 	       2 2 21 1 1) ) )       <4 4 4 ') $ $ $ $N/ / /: : :2 2 2     "/ / /7 7 7
       &  :   ; ; ; ;z %"*%M%'T+ ++0 )rz +=>@d D  DDI 
 
 
  C% C% C% C% C% C%rn   