o
    "gi                     @   s  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	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Z d'd( Z!d)d* Z"d+d, Z#d-d. Z$d/d0 Z%d1d2 Z&d3d4 Z'd5d6 Z(d7d8 Z)d9d: Z*d;d< Z+d=d> Z,d?d@ Z-dAdB Z.dCdD Z/dEdF Z0dGdH Z1dIdJ Z2dKdL Z3dMdN Z4dOdP Z5dQdR Z6dSdT Z7dUdV Z8dWdX Z9dYdZ Z:d[d\ Z;d]d^ Z<d_d` Z=dadb Z>dcdd Z?dedf Z@dgdh ZAdidj ZBdkdl ZCdmdn ZDdodp ZEdqdr ZFdsdt ZGdudv ZHdwdx ZIdydz ZJd{d| ZKd}d~ ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_eQdeRdeSdeTdeWdeVdeLde[de]de^de_diZ`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhdd ZiddÄ Zjddń ZkddǄ ZlddɄ ZmG dd˄ denZoG dd̈́ d̓Zpddτ Zqddф Zrddӄ ZsddՄ Ztddׄ Zud ddلZvddۄ Zwi fdd݄Zxdd߄ Zydd Zzdd Z{dd Z|dd Z}dd Z~dd Zdd Zdd ZdddZdd Zi fddZedejjZedejjZdd Zdd Zddd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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                 C   s    t ddrtj|  d S d S )Nverboser   )optionsgetsysstdoutwrite)t rl   U/var/www/html/ecg_monitoring/venv/lib/python3.10/site-packages/numpy/f2py/auxfuncs.pyr\   <   s   r\   c                 C   s   dt v S )Ncapi)debugoptionsvarrl   rl   rm   r   A      r   c                 C      d| v o| d dkot |  S Ntypespec	characterr(   rp   rl   rl   rm   _ischaracterE      rx   c                 C   rs   rt   rw   rp   rl   rl   rm   	_isstringJ   ry   rz   c                 C   s   t | od| vS Ncharselectorrx   rp   rl   rl   rm   r    O      r    c                 C      t | ot|  S Nr    r   rp   rl   rl   rm   r   S      r   c                 C      t | ot| S r   r   rp   rl   rl   rm   r   W   r~   r   c                 C   s   t | od| v S r{   r}   rp   rl   rl   rm   rL   [   r~   rL   c                 C   r   r   rL   r   rp   rl   rl   rm   rJ   _   r   rJ   c                 C   r   r   r   rp   rl   rl   rm   rK   c   r~   rK   c                 C   s   t | o| d d dkS )N	dimensionz(*))rK   rp   rl   rl   rm   r   g   s   r   c                 C   s   d| v ot |  S Nr   rw   rp   rl   rl   rm   r   m   r   r   c                 C   s   t | pt| pt|  S r   )r   rJ   r(   rp   rl   rl   rm   rH   q   s   rH   c                 C      t | o
| ddv S Nru   )complexzdouble complexrH   rg   rp   rl   rl   rm   r!   u      r!   c                 C      t | o
| ddkS )Nru   logicalr   rp   rl   rl   rm   r:   z      r:   c                 C   r   )Nru   integerr   rp   rl   rl   rm   r-   ~   r   r-   c                 C   r   )Nru   realr   rp   rl   rl   rm   isreal   r   r   c                 C   sH   z| d d W S  t y#   z	| d d W  Y S  t y"   Y Y d S w w )Nkindselector*kindKeyErrorrp   rl   rl   rm   get_kind   s   r   c                 C   s$   |  ddkot| dkot|  S Nru   r   1)rg   r   r   rp   rl   rl   rm   r+      s
   
r+   c                 C   s*   t | sdS | ddvrdS t| dkS )Nr   ru   r   r   8rH   rg   r   rp   rl   rl   rm   r?      
   r?   c                 C   *   t | sdS | ddkrdS t| dkS )Nr   ru   r   -1r   rp   rl   rl   rm   rS      r   rS   c                 C   r   )Nr   ru   r   -2r   rp   rl   rl   rm   rW      r   rW   c                 C   r   )Nr   ru   r   -4r   rp   rl   rl   rm   rR      r   rR   c                 C   r   )Nr   ru   r   -8r   rp   rl   rl   rm   rU      r   rU   c                 C   *   t | sdS | ddksdS t| dkS )Nr   ru   r   r   r   rp   rl   rl   rm   r&      r   r&   c                 C   r   )Nr   ru   r   16r   rp   rl   rl   rm   r=      r   r=   c                 C   s   t | sdS t| dkS )Nr   32)r!   r   rp   rl   rl   rm   r<      s   r<   c                 C   r   r   )r   rg   rp   rl   rl   rm   r#      r   r#   c                 C   s"   t | o| ddkot| dkS r   r   rg   r   rp   rl   rl   rm   r,         
r,   c                 C   "   t | o| ddv ot| dkS )Nru   r   r   r   rp   rl   rl   rm   rT      r   rT   c                 C   r   )Nru   r   r   r   rp   rl   rl   rm   rX      r   rX   c                 C   r   )Nru   r   r   r   rp   rl   rl   rm   isunsignedarray   r   r   c                 C   r   )Nru   r   r   r   rp   rl   rl   rm   rV      r   rV   c                 C   r   )Nru   r   r   r   rp   rl   rl   rm   issigned_chararray   r   r   c                 C   r   )Nru   r   2r   rp   rl   rl   rm   issigned_shortarray   r   r   c                 C   r   )Nru   r   4r   rp   rl   rl   rm   issigned_array   r   r   c                 C   r   )Nru   r   r   r   rp   rl   rl   rm   rI      r   rI   c                 C      d| v o	d| d v S )Nattrspecallocatablerl   rp   rl   rl   rm   r        r   c                 C   s   d| vpt |  S r   )rJ   rp   rl   rl   rm   	ismutable	  r   r   c                 C      d| v S )N
modulenamerl   routrl   rl   rm   rB     rr   rB   c                 C      d| v o	d| d kS )Nblockmodulerl   r   rl   rl   rm   rA     r   rA   c                 C   r   )Nr   functionrl   r   rl   rl   rm   r)     r   r)   c                 C   s"   t | rdS tot| ot|  S Nr   )r/   	wrapfuncsr)   r(   r   rl   rl   rm   r*     s   r*   c                 C   r   )Nr   
subroutinerl   r   rl   rl   rm   rN     r   rN   c                 C   s   t | rdS t| ot| S r   )r/   rN   hasassumedshaper   rl   rl   rm   rP   #     rP   c                 C      d|  dg v S )Nvaluer   rg   rp   rl   rl   rm   ra   (  r~   ra   c                 C   sV   |  drdS | d D ]}| d  |i  dg D ]}|dkr'd| d<   dS qqdS )Nr   Targsvarsr   :Fr   )r   adrl   rl   rm   r   ,  s   
r   c                 C      t | pt| S r   )rB   r   r   rl   rl   rm   requiresf90wrapper7  r~   r   c                 C   r   r   )r)   rN   r   rl   rl   rm   rG   ;  r~   rG   c                 C   F   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   rl   rl   rm   r;   ?     
r;   c                 C   r   r   )r)   r?   r   rl   rl   rm   r@   K  r   r@   c                 C   r   r   )r)   r=   r   rl   rl   rm   r>   W  r   r>   c                 C   r   r   )r)   r!   r   rl   rl   rm   r$   c  r   r$   c                 C   s   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   rl   rl   rm   r%   o  s   r%   c                 C   r   r   )r)   rJ   r   rl   rl   rm   rM   }  r   rM   c                 C      d| v o| d S )N	externalsrl   r   rl   rl   rm   r     r~   r   c                 C   r   )Nf2pyenhancements
threadsaferl   r   rl   rl   rm   rQ     s   
rQ   c                 C   r   )Nr   rl   r   rl   rl   rm   hasvariables  r~   r   c                 C   s(   d| v od| d v od| d vot | S )Nr   optionalrequired)r7   rp   rl   rl   rm   rC     s
   
rC   c                 C   r   )Nr   externalrl   rp   rl   rl   rm   r(     r   r(   c                    sH   d d|   v r tdd | d D r" fdd| d D d S d S d S )Nz	\((.*?)\)r   c                 s   s    | ]}d |v V  qdS )r   Nrl   ).0srl   rl   rm   	<genexpr>  s    zgetdimension.<locals>.<genexpr>c                    s   g | ]}t  |qS rl   )refindall)r   v
dimpatternrl   rm   
<listcomp>      z getdimension.<locals>.<listcomp>r   )keysanyrp   rl   r   rm   r     s   r   c                 C   s   t |  ot| S r   )rC   r7   rp   rl   rl   rm   rF     r   rF   c                    s   h d}t  fdd|D S )N>   pymethoddefcallstatementcallprotoargumentc                 3   s    | ]	}|   v V  qd S r   lower)r   	directive	f2py_linerl   rm   r     s    z$iscstyledirective.<locals>.<genexpr>)r   )r   
directivesrl   r   rm   r"     s   r"   c                 C   sp   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 r6dS dS )
Nintentr   hider   inplaceinoutinoutoutinrl   rp   rl   rl   rm   r4     s   r4   c                 C   sD   d| v o!d| 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   rl   rp   rl   rl   rm   r5     s   



r5   c                 C   r   )Nr   r   r   rp   rl   rl   rm   r8     r~   r8   c                 C   s<   d| v od| d v pd| d v od| d vot tt|  S )Nr   r   r   r   )r[   r5   r6   rp   rl   rl   rm   r3     s   r3   c                 C   s
   t |  S r   )r3   rp   rl   rl   rm   r7        
r7   c                 C   r   )Ncr   r   rp   rl   rl   rm   r/     r~   r/   c                 C   r   )Ncacher   r   rp   rl   rl   rm   isintent_cache  r~   r   c                 C   r   )Ncopyr   r   rp   rl   rl   rm   r1     r~   r1   c                 C   r   )N	overwriter   r   rp   rl   rl   rm   r9     r~   r9   c                 C   r   )Ncallbackr   r   rp   rl   rl   rm   r0     r~   r0   c                 C   r   )Nr   r   r   rp   rl   rl   rm   r6     r~   r6   c                 C   r   )Nauxr   r   rp   rl   rl   rm   r.     r~   r.   c                 C   r   )Naligned4r   r   rp   rl   rl   rm   isintent_aligned4  r~   r   c                 C   r   )Naligned8r   r   rp   rl   rl   rm   isintent_aligned8  r~   r  c                 C   r   )N	aligned16r   r   rp   rl   rl   rm   isintent_aligned16  r~   r  	INTENT_ININTENT_INOUT
INTENT_OUTINTENT_HIDEINTENT_CACHEINTENT_COPTIONALINTENT_INPLACEINTENT_ALIGNED4INTENT_ALIGNED8INTENT_ALIGNED16c                 C   r   )Nr   privaterl   rp   rl   rl   rm   rD     r   rD   c                 C   s4   t | dkrd| v r| d d dv rd}|S d}|S )Nr   r   r   )publicr  FTlen)rq   is_varrl   rl   rm   rE     s   rE   c                 C   r   )N=rl   rp   rl   rl   rm   r     rr   r   c                 C   s   t | sdS | d d dv S )Nr   r  )"')r   rp   rl   rl   rm   hasinitvalueasstring  r   r  c                 C   r   )Nnoterl   rp   rl   rl   rm   r     rr   r   c                 C   r   r   )r)   r   r   rl   rl   rm   r   #  r   r   c                 C   r   )Ncommonrl   r   rl   rl   rm   r   /  rr   r   c                 C   s4   t | rdS t| r| d D ]	}t|r dS qdS )Nr   bodyr   )r   r   rd   )r   brl   rl   rm   rd   3  s   rd   c                 C   s8   t | rdS t| sdS | d D ]	}t|r dS qdS )Nr   r   r  )rA   r   containsmodule)r   r  rl   rl   rm   r  =  s   r  c                 C   r   )Nr  rl   r   rl   rl   rm   r   H  rr   r   c                 C   s   t | d uS r   )r   r   rl   rl   rm   r   L  s   r   c                 C      dS )Nr   rl   rp   rl   rl   rm   istrueP     r  c                 C   r  r   rl   rp   rl   rl   rm   isfalseT  r  r   c                   @   s   e Zd ZdS )	F2PYErrorN)__name__
__module____qualname__rl   rl   rl   rm   r!  X  s    r!  c                   @   s   e Zd Zdd Zdd ZdS )r`   c                 C   s
   || _ d S r   )mess)selfr%  rl   rl   rm   __init__^  r   zthrow_error.__init__c                 C   s   d|| j f }t|)Nz

  var = %s
  Message: %s
)r%  r!  )r&  rq   r%  rl   rl   rm   __call__a  s   zthrow_error.__call__N)r"  r#  r$  r'  r(  rl   rl   rl   rm   r`   \  s    r`   c                  G   N   dg }}t t| D ]}d|||f }|d|  qtd|d|f S )Nlambda v%s,f%d=f[%d]f%d(v)%s:%sz and ranger  appendevaljoinfl1l2irl   rl   rm   rY   f  
   
rY   c                  G   r)  )Nr*  r+  r,  r-  z or r.  r3  rl   rl   rm   r[   n  r8  r[   c                 C   s   t dS )Nzlambda v,f=f:not f(v))r1  )r4  rl   rl   rm   rZ   v  rr   rZ   c                 C   s(   z	| d d dkW S  t y   Y dS w )Nr   fortranname r   r   r   rl   rl   rm   r'   z  s
   r'   c                 C   sT   z| d d }|dkrt |std| d   t W |S  t y)   | d }Y |S w )Nr   r9  r:  z"Failed to use fortranname from %s
r   )r   r   )r   r   rl   rl   rm   r     s   
r   c                 C   s
  z	| d  |}W n
 ty   Y d S w |sd S |dkr#t|tr#d S t|tr4|t|kr0d S || }|d d dkr|rQd| d t| d |dd   }n|dd  }|dd  dkry|rq|d d d	 t| d
 }|S |d d }|S td|t|f  |S )Nr   r      z'''z
	/* start z multiline (z) */
z
	/* end multiline (z)*/z-%s multiline block should end with `'''`: %s
)rg   r   
isinstancestrlistr  reprr   )r   	blocknamecommentcounterrrl   rl   rm   getmultilineblock  sF   


rE  c                 C   
   t | dS )Nr   rE  r   rl   rl   rm   r     r   r   c           
      C   s  t | ddd}|r|S t| rtd d S ddlm} g g }}tttt| r0|	ddg | d	 D ]J}| d
 | }t
|rAq4||v rL|| d }n-||}ttttt|r[nt|r`nt|sh|d }t|stt|stt|ry|d || q4d|| }	|	sd}	|	S )Nr   r   )rB  z<warning: callstatement is defined without callprotoargument
r   )getctypezchar*size_tr   r   _typedefr   ,void)rE  r   r\   	capi_mapsrH  rY   rM   rZ   r*   extendr0   r/   r[   rH   r!   rJ   ra   r   rK   r0  r2  )
r   cb_maprD  rH  	arg_types
arg_types2nrq   ctype
proto_argsrl   rl   rm   r     sH   

r   c                 C   rF  )NusercoderG  r   rl   rl   rm   r     r   r   c                 C   s   t | dddS )NrU  r   )rC  rG  r   rl   rl   rm   r     s   r   c                 C   rF  )Nr   rG  r   rl   rl   rm   r     r   r   c                 C   sv   g g }}d| v r7| d }d| v r3| d D ]}||v r | | q|D ]}||vr.| | q#||fS | d }||fS )Nr   sortvars)r0  )r   sortargsr   r   rl   rl   rm   getargs  s   


rX  c                    s   g  dg }  fddd  D }|   dv rAd D ]}| v r.|| q# D ]}||vr<|| q1 |fS |d  } |fS )Nr   c                    s(   g | ]}t d  | r| vr|qS )r   )r.   )r   r   r   r   rl   rm   r     s    zgetargs2.<locals>.<listcomp>r   rV  )rg   r   r0  )r   rW  auxvarsr   rl   rY  rm   r     s   

r   c                 C   s<   d| vrd S d }| d dkr| d | d f}| d  |d S )Nf2pymultilinesr   zpython moduler   r   )r   krl   rl   rm   r     s   r   c                 C   s*   dt |  d d }d|d | |d f S )NP         z/*%s %s %s*/r   r  )r   lnrl   rl   rm   r
     s   r
   c                 C   s$   t | trttfdd| g S | gS )Nc                 S   s   | || S r   rl   )xyr4  rl   rl   rm   <lambda>  s    zflatlist.<locals>.<lambda>)r=  r?  r   flatlist)lstrl   rl   rm   rd    s   
rd  c                 C   s    | r| d dkr| d d S | S )Nr   rK  rl   )r   rl   rl   rm   r_     s   r_   r:  c              	      s   t  trfdd D S t tr fddD S dt   D ];}|dkr-q&d v r>| d v r> d | }n}t  | trWd| |t | q&d|  | q&S )Nc                    s   g | ]}t | qS rl   r]   r   _m)
defaultsepr>  rl   rm   r   !  r   zreplace.<locals>.<listcomp>c                    s   g | ]}t | qS rl   rf  rg  )r   ri  rl   rm   r   #  r   r_  separatorsforz#%s#)r=  r?  r   r]   r2  rd  )r>  r   ri  r\  seprl   )r   ri  r>  rm   r]     s   

 r]   c                 C   s(  t |tr|D ]}t| |} q| S | D ]|}|d dkrq|| v rt | | tr0| | g| |< t | | trSt || trI| | ||  | |< q| | ||  qt | | trt || tr|dkr||  D ]}|| | vr}|| | | | |< qkqt| | || | |< q|| | |< q| S )Nr   _rj  )r=  r?  r	   r   r>  r0  dict)rdarr   r\  k1rl   rl   rm   r	   2  s4   
r	   c                 C   s  i }t | tr | D ]}t|||}t||}d|v r |S q	|S d| v r,| d |s,|S d| v rEtd| d i||}d|v rEt|d  |  D ]}|dkrV| | ||< qIt | | trgt| | |||< nt | | trg ||< | | D ]}t||i||}	||	v r|| 	|	|  qvn|d dkrqIt | | t
rg ||< | |  D ]l}
t |
tjr|
|rt | | |
 tr| | |
 D ]$}t |t
rtd|i||}d|v r|d }nd	}|| 	t|| qq| | |
 }t |t
r
td|i|}d|v r|d }nd	}|| 	t|| qn
td
t| |   t || trCt|| dkr9|| d ||< || g krC||= qI|S )N_break_checkneedneedsrj  r   rl  	supertextr:  zapplyrules: ignoring rule %s.
r   )r=  r?  r   r	   r   append_needsr   r>  r]   r0  rm  typesFunctionTyper   r@  r  )rulesr   rq   retrD  rrresr\  r7  ro  rp  rl   rl   rm   r   O  s|   



	

r   z%\s*python\s*module\s*(?P<name>[\w_]+)z4\s*python\s*module\s*(?P<name>[\w_]*?__user__[\w_]*)c                 C   sp   d }t | (}|D ]}t|}|rt|rq	|d} n	q	W d    |S W d    |S 1 s1w   Y  |S )Nr   )open_f2py_module_name_match_f2py_user_module_name_matchgroup)sourcer   r4  linemrl   rl   rm   rO     s$   



rO   c                 C   sL   g }| d D ]}|d D ]}| dr"|dd | d D  qq|S )Nr  usec                 S   s   g | ]}d |vr|qS )__rl   )r   ra  rl   rl   rm   r     r   z getuseblocks.<locals>.<listcomp>)rg   rN  r   )pymodall_usesinnermodblockrl   rl   rm   rb     s   
rb   Fc                 C   s   g }i }|  D ]\}}dd |  D }||| < q|  D ]U\}}|| vr,i | |< |  D ]D\}	}
|
|v rc|	| | v rLtd||	| | |	 |
f  |
| | |	< |r]td||	|
f  ||
 q0|rttd||	|
|
t| f  q0q | |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                 S   s   i | ]	\}}|  |qS rl   r   )r   rp  v1rl   rl   rm   
<dictcomp>  s    z'process_f2cmap_dict.<locals>.<dictcomp>z3	Warning: redefinition of {'%s':{'%s':'%s'->'%s'}}
z	Mapping "%s(kind=%s)" to "%s"
z5	Ignoring map {'%s':{'%s':'%s'}}: '%s' must be in %s
)itemsr   r\   r0  r   r?  r   )
f2cmap_allnew_mapc2py_mapre   f2cmap_mappednew_map_lowerr\  d1d1_lowerrp  r  rl   rl   rm   rc     s:   &rc   )r   r   )r:  )F)__doc__pprintrh   r   rw  	functoolsr   r:  r   r   r   __all__versionf2py_versionr^   rf   ro   r   r\   r   rx   rz   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   r"   r4   r5   r8   r3   r7   r/   r   r1   r9   r0   r6   r.   r   r  r  r2   rD   rE   r   r  r   r   r   rd   r  r   r   r  r   	Exceptionr!  r`   rY   r[   rZ   r'   r   rE  r   r   r   r   r   rX  r   r   r
   rd  r_   r]   r	   r   compileImatchr~  r  rO   rb   rc   rl   rl   rl   rm   <module>   s,   

	

'	=