HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/numpy/f2py/__pycache__/_src_pyf.cpython-310.pyc
o

���g��@s�ddlZ	e�dej�Ze�dej�Ze�dej�Zdd�Ze�d�Ze�d�Ze�d	�Z	d
d�Z
dd
�Ze�d�Zdd�Z
dd�Ze�d�Zdd�Zdd�Ze�dej�Zdd�Zdd�Ze
d�ZdS)�Nz2(\n|\A)((     (\$|\*))|)\s*(subroutine|function)\bz+\n\s*end\s*(subroutine|function)\b.*(\n|\Z)z\n     (\$|\*)\s*function\bcCs�g}d}	t�||�}|dur	|S|��}t�|||���r:	|�d||�}|dkr,n|}|||d�dkr9nq |d7}t�||���}|rN|��dpQt|�}}|�	||f�q)	z� Return a list of tuples for each function or subroutine each
    tuple is the start and end of a subroutine or function to be
    expanded.
    rTN�
����z
     $�)
�routine_start_re�search�start�function_start_re�match�end�rfind�routine_end_re�len�append)�astr�spanlist�ind�mr�ir�r�>/usr/local/lib/python3.10/dist-packages/numpy/f2py/_src_pyf.py�parse_structure6s,���rz<\s*(\w[\w\d]*)\s*>z<\s*(\w[\w\d]*)\s*=\s*(.*?)\s*>z<\s*((.*?))\s*>cCsPt�|�}i}|D]}|d��pt|�}|d�dd�}t|�}|||<q	|S)Nrr�\,�@comma@)�named_re�findall�strip�
unique_key�replace�conv)r�reps�names�rep�name�repl�thelistrrr�find_repl_patternsUs

r&cCs"t|�}t�td|�d}||fS)N�r)r&�re�subnr)rr!rrr�find_and_remove_repl_patterns_sr*z\A\\(?P<index>\d+)\ZcCs`|�d�}dd�|D�}tt|��D]}t�||�}|r*t|�d��}||||<qd�|�S)N�,cSsg|]}|���qSr)r)�.0�xrrr�
<listcomp>gszconv.<locals>.<listcomp>�index)�split�ranger�item_rer
�int�group�join)r�b�lrr�jrrrres
�
rcCs>t|���}d}d}|sd|}||vr|d7}nd}|r|S)z( Obtain a unique key given a dictionary.Frz__l%sT)�list�keys)�adict�allkeys�done�n�newkeyrrrros
�rz\A\s*(\w[\w\d]*)\s*\Zc	sh|�dd�}|�dd�}t|��t�d|�}�fdd�}t�||�}d}d}i�t�|�D]Z}|�vr���||�|d��}|durGtd|��||vrT|�	d	�sT|||<d
d�|�
d�D�}t|�}|duro|}|�|<|}q-||krx|�|<q-td
�
|d��|�||��q-�s�|S��fdd�}	d}
t|�D]�|
t�|	|�d7}
q�|
�dd�}
|
�dd�}
|
S)Nz\>z@rightarrow@z\<z@leftarrow@z<\1>csjt|�d��dd��}t�|�rd|Sd}���D]
}�||kr$|}q|dur1t��}|�|<d|S)Nrrrz<%s>)rr4r�template_name_rer
r:r)�mobjr%r#�key)�lnamesrr�listrepl�s
�zexpand_sub.<locals>.listreplzNo replicates found for <%s>�_cSsg|]}|�dd��qS)rr+)r)r,rrrrr.�szexpand_sub.<locals>.<listcomp>r+zHMismatch in number of replacements (base <{}={}>) for <{}={}>. Ignoring.cs$|�d�}��|�d|g��S)Nr)r4�get)rAr#)�k�rulesrr�namerepl�s
zexpand_sub.<locals>.namereplr'z

�>�<)rr&r�sub�list_re�template_rerrF�
ValueError�
startswithr0r�print�formatr5r1)�substrr!rD�numsubs�	base_rule�rr%�rule�numrI�newstrr)rGrCrHr�
expand_sub~sJ

��rZc	Cs�|}d}t|�}d}i}|�t�|D]*}t|||d��\}}||7}|�|�|t||d|d�|�7}|d}q|||d�7}|S)Nr'rr)r�update�_special_namesr*rZ)	�allstrrY�writestr�struct�oldendr!rL�
cleanedstr�defsrrr�process_str�s


rcz8(\n|\A)\s*include\s*['\"](?P<name>[\w\d./\\]+\.src)['\"]cCs�tj�|�}t|��B}g}|D]4}t�|�}|r>|�d�}tj�|�s*tj�||�}tj�	|�r8|�
t|��q|�|�q|�|�qWd�|S1sOwY|S)Nr#)
�os�path�dirname�open�include_src_rer
r4�isabsr5�isfile�extend�resolve_includesr)�source�d�fid�lines�liner�fnrrrrl�s$


�
��rlcCst|�}td�|��S)Nr')rlrcr5)rmrprrr�process_file�srsz�
<_c=s,d,c,z>
<_t=real,double precision,complex,double complex>
<prefix=s,d,c,z>
<ftype=real,double precision,complex,double complex>
<ctype=float,double,complex_float,complex_double>
<ftypereal=real,double precision,\0,\1>
<ctypereal=float,double,\0,\1>
)r(�compile�Irr
r	rrNrrMr&r*r2rrr@rZrcrhrlrsr\rrrr�<module>s*-






;