§
    `Štj¦  ã                   ón   — d Z ddlmZ ej        ZddlmZmZ ddlmZm	Z	m
Z
mZmZmZ ddlmZ d	d„Zd„ ZdS )
a5  
Build common block mechanism 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 License

NO WARRANTY IS EXPRESSED OR IMPLIED.  USE AT YOUR OWN RISK.
é   )Ú__version__)Ú	capi_mapsÚ	func2subr)ÚgetuseblocksÚhasbodyÚ	hascommonÚhasnoteÚisintent_hideÚoutmess)Ú	rmbadnamec                 ó   ‡ — g }t          ‰ ¦  «        rG‰ d                              ¦   «         D ]+\  }}ˆ fd„|D ¦   «         }|                     |||f¦  «         Œ,n-t          ‰ ¦  «        r‰ d         D ]}|t	          |d¦  «        z   }Œ|rEg }g }|D ]<}	|	d         |vr0|                     |	d         ¦  «         |                     |	¦  «         Œ=|S |S )NÚcommonc                 ó.   •— i | ]}|‰d          |         “ŒS )Úvars© )Ú.0ÚvÚblocks     €úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/numpy/f2py/common_rules.pyú
<dictcomp>z$findcommonblocks.<locals>.<dictcomp>   s$   ø€ Ð8Ð8Ð8¨Q�Q˜˜fœ aÔ(Ð8Ð8Ð8ó    Úbodyé    )r   ÚitemsÚappendr   Úfindcommonblocks)
r   ÚtopÚretÚkeyÚvalueÚvars_ÚbÚtretÚnamesÚts
   `         r   r   r      s  ø€ Ø
€CÝ�ÑÔð /Ø œ/×/Ò/Ñ1Ô1ð 	,ð 	,‰JˆC�Ø8Ð8Ð8Ð8°%Ð8Ñ8Ô8ˆEØ�JŠJ˜˜U EÐ*Ñ+Ô+Ð+Ð+ð	,õ 
�‰Œð /Ø�v”ð 	/ð 	/ˆAØÕ(¨¨AÑ.Ô.Ñ.ˆCˆCØ
ð ØˆØˆØð 	ð 	ˆAØ�Œt˜5Ð Ð Ø—’˜Q˜qœTÑ"Ô"Ð"Ø—’˜A‘”�øØˆØ€Jr   c                 ó¸
  — g g dgdœ}dg}|fd„}dg}|fd„}dg}|fd„}dg}|fd„}	t          | ¦  «        D �]æ\  }
}}|
                     ¦   «         }g g }}|D ]B}t          ||         ¦  «        r|                     |¦  «         Œ-|                     |¦  «         ŒC|r@t	          d|
›d	d
                     |¦  «        ›dd
                     |¦  «        ›d�¦  «         n)t	          d|
›d	d
                     |¦  «        ›d�¦  «          |d|
› d�¦  «         t          | ¦  «        D ]} |d|› �¦  «         Œ |d¦  «         |D ] } |t          j        ||¦  «        ¦  «         Œ!|
dk    r" |dd
                     |¦  «        › �¦  «         n$ |d|
› dd
                     |¦  «        › �¦  «          |dd
                     |¦  «        › d�¦  «          |d¦  «          |d|
z  ¦  «         g }|D ]ß}t          j
        ||         ¦  «        }t          j        ||         ¦  «        }t          j        |         }t          j        |||         ¦  «        }|d         r |                     d|d         › d�¦  «         n|                     d¦  «         |d                              ¦   «         }|sd} |d|›d|d         ›d|›d |›d!|›d"�¦  «         Œà |d#¦  «         t          |¦  «        }d
                     d$„ |D ¦   «         ¦  «        } |d%|
›d|›d&�¦  «          |d'¦  «         |D ]} |d(|
› d)|› d*�¦  «         Œ |d+¦  «         d,|v rd-}nd.} |d/|›d0|›d1|
                     ¦   «         ›d2d
                     d3gt#          |¦  «        z  ¦  «        ›d4�	¦  «          |d5|
z  ¦  «          |d6|›d0|›d1|
                     ¦   «         ›d7|
›d8�	¦  «          |d9¦  «          |d:|
› d;|
› d8�¦  «          |d<¦  «          |d=|
› d>�¦  «          |d?¦  «         |
                     d,d@¦  «        } |	dA|z  ¦  «          |	dB¦  «         |D ]„} |	dCt          j        |||         ¦  «        z  ¦  «         t)          ||         ¦  «        rF||         dD         }t+          |t,          ¦  «        rd                     |¦  «        } |	dE|› �¦  «         Œ… |	dF¦  «         |dG                              dH|
› dd
                     t/          dI„ ||¦  «        ¦  «        › dJ�¦  «         �Œè||dK<   ||dL<   |dM         |dN<   t#          |dG         ¦  «        dOk    rd|dG<   ||dM         fS )PNz"COMMON blocks:\n")ÚcommonhooksÚinitcommonhooksÚdocsÚ c                 ó&   — |d         › d| › �|d<   d S )Nr   z
      r   ©ÚlineÚss     r   Úfaddzbuildhooks.<locals>.fadd-   s!   € Ø�A”$Ð&Ð& Ð&Ð&ˆˆ!‰ˆˆr   c                 ó&   — |d         › d| › �|d<   d S ©Nr   ú
r   r,   s     r   Úcaddzbuildhooks.<locals>.cadd1   ó!   € Ø�A”$Ð Ð ˜$Ð Ð ˆˆ!‰ˆˆr   c                 ó&   — |d         › d| › �|d<   d S r1   r   r,   s     r   Úiaddzbuildhooks.<locals>.iadd5   r4   r   c                 ó&   — |d         › d| › �|d<   d S r1   r   r,   s     r   Údaddzbuildhooks.<locals>.dadd9   r4   r   z)		Constructing COMMON block support for "z	"...
		  ú,z
		  Hidden: r2   zsubroutine f2pyinitz(setupfunc)zuse zexternal setupfuncÚ_BLNK_zcommon zcommon /z/ zcall setupfunc(ú)zend
z'static FortranDataDef f2py_%s_def[] = {Údimsú(z-1z	{"z",Úrankz,{{z}},z, z},z
	{NULL}
};c                 ó   — g | ]}d |z   ‘ŒS )zchar *r   )r   r.   s     r   ú
<listcomp>zbuildhooks.<locals>.<listcomp>g   s   € Ð>Ð>Ð>° ¨1¡Ð>Ð>Ð>r   zstatic void f2py_setup_z) {z	int i_f2py=0;z	f2py_z_def[i_f2py++].data = ú;Ú}Ú_Ú	F_FUNC_USÚF_FUNCzextern void z	(f2pyinitz	,F2PYINITz
)(void(*)(zchar*z));z static void f2py_init_%s(void) {ú	z)(f2py_setup_z);z}
z 	tmp = PyFortranObject_New(f2py_z_def,f2py_init_z	if (tmp == NULL) return NULL;z 	if (F2PyDict_SetItemString(d, "z", tmp) == -1) return NULL;z	Py_DECREF(tmp);z\_z&\subsection{Common block \texttt{%s}}
z\begin{description}z\item[]{{}\verb@%s@{}}Únotez--- z\end{description}r)   z"	/c                 ó   — | |z   S )Nr   )r   Úds     r   ú<lambda>zbuildhooks.<locals>.<lambda>‰   s
   € °a¸!±e€ r   z\n"r'   r(   r   Úlatexdocr   )r   Úlowerr
   r   r   Újoinr   r   Úvar2fixfortranr   ÚgetctypeÚ
get_elsizeÚ
c2capi_mapÚ
getarrdimsÚstripr   ÚupperÚlenÚreplaceÚgetarrdocsignr	   Ú
isinstanceÚlistÚmap)Úmr   Úfwrapr/   Úchooksr3   Úihooksr6   Údocr8   ÚnameÚvnamesr   Ú
lower_nameÚhnamesÚinamesÚnÚusenameÚidimsÚctÚelsizeÚatÚdmÚdmsÚinames1Úinames1_tpsrE   ÚtnamerG   s                                r   Ú
buildhooksrp   (   sL  € Ø°Ø)Ð*ð,ð ,€CàˆD€Eàð 'ð 'ð 'ð 'àˆT€Fàð !ð !ð !ð !àˆT€Fàð !ð !ð !ð !àˆ$€Càð !ð !ð !ð !å 0°Ñ 3Ô 3ð NUñ NUÑˆˆv�tØ—Z’Z‘\”\ˆ
Ø˜R�ˆØð 	!ð 	!ˆAÝ˜T !œWÑ%Ô%ð !Ø—’˜aÑ Ô Ð Ð à—’˜aÑ Ô Ð Ð Øð 	)ÝˆGØ���c—h’h˜vÑ&Ô&Ð&Ð&¨¯ª°Ñ(8Ô(8Ð(8Ð(8ð:ñ ;ô ;ð ;ð ;õ ˆGØ���c—h’h˜vÑ&Ô&Ð&Ð&ð(ñ )ô )ð )àˆÐ4 4Ð4Ð4Ð4Ñ5Ô5Ð5Ý# A‘”ð 	#ð 	#ˆGØˆDÐ!˜Ð!Ð!Ñ"Ô"Ð"Ð"ØˆÐ!Ñ"Ô"Ð"Øð 	4ð 	4ˆAØˆD•Ô)¨$°Ñ2Ô2Ñ3Ô3Ð3Ð3Ø�8ÒÐØˆDÐ-˜3Ÿ8š8 FÑ+Ô+Ð-Ð-Ñ.Ô.Ð.Ð.àˆDÐ6˜DÐ6Ð6 C§H¢H¨VÑ$4Ô$4Ð6Ð6Ñ7Ô7Ð7ØˆÐ2˜sŸxšx¨Ñ/Ô/Ð2Ð2Ð2Ñ3Ô3Ð3ØˆˆW‰ŒˆØˆÐ6¸$Ñ?Ñ@Ô@Ð@ØˆØð 	5ð 	5ˆAÝÔ# D¨¤GÑ,Ô,ˆBÝÔ)¨$¨q¬'Ñ2Ô2ˆFÝÔ% bÔ)ˆBÝÔ% a¨¨a¬Ñ1Ô1ˆBØ�&Œzð !Ø—’Ð.  F¤Ð.Ð.Ð.Ñ/Ô/Ð/Ð/à—’˜RÑ Ô Ð Ø�V”*×"Ò"Ñ$Ô$ˆCØð Ø�ØˆDˆDØ�A�A�r˜&”z�z�z 3 3 3¨¨¨¨F¨F¨Fð4ñ 5ô 5ð 5ð 5àˆˆ^ÑÔÐÝ˜FÑ#Ô#ˆØ—h’hÐ>Ð>°gÐ>Ñ>Ô>Ñ?Ô?ˆØˆˆ°$°$°$¸¸¸ÐDÑEÔEÐEØˆÐÑÔÐØð 	=ð 	=ˆAØˆDÐ;˜4Ð;Ð;°qÐ;Ð;Ð;Ñ<Ô<Ð<Ð<ØˆˆS‰	Œ	ˆ	Ø�*ÐÐØ ˆFˆFàˆFØˆˆØ��˜
˜
˜
 D§J¢J¡L¤L L LØ—’˜'˜¥S¨¡\¤\Ñ1Ñ2Ô2Ð2Ð2ð4ñ 	5ô 	5ð 	5ð 	ˆÐ/°$Ñ6Ñ7Ô7Ð7ØˆˆØ��˜
˜
˜
 D§J¢J¡L¤L L L°$°$°$ð8ñ 	9ô 	9ð 	9àˆˆU‰ŒˆØˆÐN°ÐNÐNÀdÐNÐNÐNÑOÔOÐOØˆÐ.Ñ/Ô/Ð/ØˆÐR°ÐRÐRÐRÑSÔSÐSØˆÐ Ñ!Ô!Ð!Ø—’˜S %Ñ(Ô(ˆØˆÐ8¸EÑBÑCÔCÐCØˆÐ#Ñ$Ô$Ð$Øð 	$ð 	$ˆAØˆDÐ+ÝÔ)¨!¨T°!¬WÑ5Ô5ñ7ñ 8ô 8ð 8å�t˜A”wÑÔð $Ø˜A”w˜v”�Ý˜d¥DÑ)Ô)ð +ØŸ9š9 T™?œ?�DØ��]˜D�]�]Ñ#Ô#Ð#øØˆÐ!Ñ"Ô"Ð"ØˆFŒ×ÒØS�DÐSÐS˜CŸHšH¥SÐ);Ð);¸VÀUÑ%KÔ%KÑLÔLÐSÐSÐSñ	Uô 	Uð 	Uñ 	Uà€CˆÑØ#€CÐÑØ˜!”f€Cˆ
�OÝ
ˆ3ˆvŒ;ÑÔ˜1ÒÐØˆˆF‰Ø��a”ˆ=Ðr   N)r   )Ú__doc__r*   r   ÚversionÚf2py_versionr   r   Úauxfuncsr   r   r   r	   r
   r   Úcrackfortranr   r   rp   r   r   r   ú<module>rv      s·   ðð	ð 	ð Ð Ð Ð Ð Ð àÔ"€à "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WÐ WØ #Ð #Ð #Ð #Ð #Ð #ðð ð ð ð(gð gð gð gð gr   