o
    f~C                     @   s  d dl mZ dZzd dlmZ W n ey   eZY nw G dd deZdd Z	dZ
e Zd	d
 Zdd Zdd Zdd ZG dd deZG dd deZe  Z ZZdd  Z Z Z Z Z Z Z Z Z Z Z Z  Z! Z" Z# Z$ Z% Z& Z' Z( Z) Z* Z+ Z, Z- Z.Z/dd Z0d}ddZ1dd Z2e Z3dd  e_4 e2_5 e3_6e3_7e Z8 Z9 Z: Z; Z< Z=Z>dd Z?G dd dZ@daAd d! ZBd"d# ZCd$d% ZDd&d' ZEd(d) ZFd*d+ ZGd,d- ZHd.d/ ZId0d1 ZJdefd2d3ZKG d4d5 d5eZLeL ZMeL ZNeL ZO[LG d6d7 d7ePZQeQd8efi ZRG d9d: d:eRZSG d;d< d<eSZTG d=d> d>eTZUG d?d@ d@eSZVG dAdB dBeSZWdCdD ZXdEdF ZYdGdH ZZdIdJ Z[G dKdL dLeSZ\G dMdN dNeSZ]dOdP Z^dQdR Z_e\e`dSZaze\ebdTZcW n edy|   e\e`dTZcY nw e\eedUZfe\egdVZhg dWZig dXZjg dYZkg dZZld[d\d]dVd^d_jmZneo Zpzd dlZqW n ey   d dlqZqY nw e\ereqd`ed`epd`< [qeiD ]0ZsenesesZte\eaetepes< esdavresudbse\eadcet epddes < e\eadeet epdfes < qejD ]Zse\efenesesepes< qekD ]Zse\ehenesesepes< q	e\evdgZwe\ddhZxe\ddiZyeiD ]DZze{djdkD ];Z|epez }e|epdldme| ezf < ddez epv riepddez  }e|epdndme| ezf < epdfez  }e|epdodme| ezf < q/q(ejek el D ]Zze{djdkD ]Z|epez }e|epdldme| ezf < qzqs[z[|epdp d Z~e]  Z ZZeaecefehgZG dqdr dreZG dsdt dteZG dudv dveZd dlZd dlZe ejdw< edxejdx< edyejdy< eejdz< ed{ Zejd|< [[dS )~    )absolute_importz3.0.11)
basestringc                   @   s,   e Zd ZdZdgZ		d	ddZdd ZdS )

_ArrayTypeTdtypeFNc                 C   s0   || _ || _|| _|| _|p|p|| _|| _d S N)r   ndimis_c_contigis_f_contiginner_contigbroadcasting)selfr   r   r   r	   r
   r    r   I/var/www/html/mig_web/myenv/lib/python3.10/site-packages/Cython/Shadow.py__init__   s   
z_ArrayType.__init__c                 C   s>   dg| j  }| jrd|d< n| jrd|d< d| jd|f S )N:z::1r   z%s[%s]z, )r   r   r	   r   join)r   axesr   r   r   __repr__   s   
z_ArrayType.__repr__)FFFN)__name__
__module____qualname__is_arraysubtypesr   r   r   r   r   r   r      s    
	r   c                    s   G dd dt   fdd}t|trNd}t|D ]"\}}|| |jr4|s0|dt|d fvr4 d|jdkr;|}qt| t||t|d k|dkd	S t|tra|| t| dt|jd
S t	||ksiJ t
| |S )z
    Support array type creation by slicing, e.g. double[:, :] specifies
    a 2D strided array of doubles. The syntax is the same as for
    Cython memoryviews.
    c                   @      e Zd ZdS )z,index_type.<locals>.InvalidTypeSpecificationNr   r   r   r   r   r   r   InvalidTypeSpecification-       r   c                    s"   | j s| js| jdvr dd S )NN   zDOnly a step of 1 may be provided to indicate C or Fortran contiguity)startstopstep)sr   r   r   verify_slice0   s
   z index_type.<locals>.verify_sliceNr   r   zHStep may only be provided once, and only in the first or last dimension.)r   r	   )r   )	Exception
isinstancetuple	enumerater"   lenr   sliceboolintarray)	base_typeitemr%   step_idxidxr#   r   r$   r   
index_type'   s,   




r3   Fc                 C   s   | S r   r   )xr   r   r   _empty_decoratorV      r5   c                  K      t S r   r5   )	arg_typesr   r   r   localsY   r6   r:   c                  G   r7   r   r8   pathsr   r   r   test_assert_path_exists\   r6   r=   c                  G   r7   r   r8   r;   r   r   r   test_fail_if_path_exists_   r6   r>   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )_EmptyDecoratorAndManagerc                 C   s   |S r   r   r   r4   r   r   r   __call__c   r6   z"_EmptyDecoratorAndManager.__call__c                 C      d S r   r   r   r   r   r   	__enter__e   r6   z#_EmptyDecoratorAndManager.__enter__c                 C   rB   r   r   )r   exc_type	exc_value	tracebackr   r   r   __exit__g   r6   z"_EmptyDecoratorAndManager.__exit__N)r   r   r   rA   rD   rH   r   r   r   r   r?   b   s    r?   c                   @   r   )_OptimizationNr   r   r   r   r   rI   j   r   rI   c                 C      t  S r   r?   _r   r   r   <lambda>v       rN   c                 C   rJ   r   rK   rL   r   r   r   rN   y   rO   NTc                 C   rJ   r   rK   )rM   checkr   r   r   rN   {   rO   c                 C   rJ   r   rK   rL   r   r   r   rN   }   rO   c                 C   rJ   r   rK   argr   r   r   rN      rO   c                 C   r7   r   r8   rL   r   r   r   rN      s    c                   @   s(   e Zd Zdd  Z Z Z Z ZZdS )warnc                 C   rJ   r   rK   rL   r   r   r   rN      rO   zwarn.<lambda>N)	r   r   r   
undeclaredunreachablemaybe_uninitializedunused
unused_argunused_resultr   r   r   r   rS      s    rS   c                 O   s\   t | trtd u rddlma t| g|R i |S t|t|  kr)dks,J  J | S )Nr   )cython_inline)r'   r   _cython_inlineCython.Build.InlinerZ   r*   )fargskwdsr   r   r   inline   s   
$r`   c                 C   s   ddl m} || S )Nr   )RuntimeCompiledFunction)r\   ra   )r]   ra   r   r   r   compile   s   rb   c                 C   s4   | dk r
|  } | }|dk r| | d | S | | S )Nr   r   r   )abr   r   r   cdiv   s   re   c                 C   s$   | | }| | dk r|r||8 }|S Nr   r   )rc   rd   rr   r   r   cmod   s   rh   c                 O   sf   | dd  |r
J t| tr| | S t| tr/t|dks+|d d u s/t|d | s/| | S |d S )N	typecheckr   r   )popr'   typedeftyper*   )tr^   kwargsr   r   r   cast   s   

&ro   c                 C      dS r   r   rQ   r   r   r   sizeof   r6   rq   c                 C   s   | j jS r   )	__class__r   rQ   r   r   r   typeof      rs   c                 C   s   t t| | gS r   )pointerrl   rQ   r   r   r   address   s   rv   c                 C   s.   t | tr
t| jS t | tot| tttfS r   )	r'   rk   _is_value_type	_basetyperl   
issubclass
StructType	UnionType	ArrayType)rm   r   r   r   rw      s   

rw   c                 K   s$   |t ur	t| |S t| r|  S d S r   )_Unspecifiedro   rw   )rm   valuer_   r   r   r   declare   s
   
r   c                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	_nogilz=Support for 'with nogil' statement and @nogil decorator.
    c                 C   s   t |r|S | S r   )callabler@   r   r   r   rA      s   z_nogil.__call__c                 C   rB   r   r   rC   r   r   r   rD      r6   z_nogil.__enter__c                 C   s   |d u S r   r   )r   	exc_classexctbr   r   r   rH      rt   z_nogil.__exit__N)r   r   r   __doc__rA   rD   rH   r   r   r   r   r      s
    r   c                   @   s   e Zd Zdd ZdS )CythonMetaTypec                 C   s
   t | |S r   )r.   )rl   ixr   r   r   __getitem__   s   
zCythonMetaType.__getitem__N)r   r   r   r   r   r   r   r   r      s    r   CythonTypeObjectc                   @   s   e Zd ZdddZdS )
CythonTyper   c                 C   s   t |D ]}t| } q| S r   )rangeru   )r   nir   r   r   _pointer   s   
zCythonType._pointerN)r   )r   r   r   r   r   r   r   r   r      s    r   c                   @   s6   e Zd ZdddZdd Zdd Zdd	 Zd
d ZdS )PointerTypeNc                    sh   t |ttfr fdd|jD  _d S t |tr% fdd|D  _d S |d u s-|dkr2g  _d S t)Nc                       g | ]}t  j|qS r   ro   rx   .0rc   rC   r   r   
<listcomp>       z(PointerType.__init__.<locals>.<listcomp>c                    r   r   r   r   rC   r   r   r     r   r   )r'   r|   r   _itemslist
ValueErrorr   r~   r   rC   r   r      s   

zPointerType.__init__c                 C   s   |dk rt d| j| S Nr   z"negative indexing not allowed in C)
IndexErrorr   )r   r   r   r   r   r     s   
zPointerType.__getitem__c                 C   s&   |dk rt dt| j|| j|< d S r   )r   ro   rx   r   )r   r   r~   r   r   r   __setitem__  s   zPointerType.__setitem__c                 C   s6   |d u r	| j s	dS t| t|krdS | j  o|j  S )NTF)r   rl   r   r   r   r   __eq__  s
   zPointerType.__eq__c                 C   s   d| j f S )Nz%s *)rx   rC   r   r   r   r     s   zPointerType.__repr__r   )r   r   r   r   r   r   r   r   r   r   r   r   r      s    

r   c                       s   e Zd Zd fdd	Z  ZS )r|   Nc                    s.   |d u rd g| j  | _d S tt| | d S r   )_nr   superr|   r   r   rr   r   r   r     s   zArrayType.__init__r   )r   r   r   r   __classcell__r   r   r   r   r|     s    r|   c                   @   s   e Zd Zdd Zdd ZdS )rz   c                 O   s&  |s|sd S |r|rt d|r t|dkr d|v r |d}nMt|dkr8t|d t| u r8|d d}}n5|rMt| j|D ]
\}}t| || q@d S | D ]\}}|| jvrdt d| jj	|f t| || qQd S |rst dt|t| urt d| |j
 D ]
\}}t| || qd S )	Nz4Cannot accept both positional and keyword arguments.r   	cast_fromr   r   z#Invalid struct attribute for %s: %s-Cannot accept keyword arguments when casting.Cannot cast from %s)r   r*   rj   rl   zip_memberssetattritemsrr   r   __dict__)r   posargsdatar   keyrR   r~   r   r   r   r   (  s4    
zStructType.__init__c                 C   s0   || j v rt| j | || j|< d S td| )NzStruct has no member '%s')r   ro   r   AttributeErrorr   r   r~   r   r   r   __setattr__G  s   
zStructType.__setattr__N)r   r   r   r   r   r   r   r   r   rz   &  s    rz   c                   @   s    e Zd ZefddZdd ZdS )r{   c                 K   s   |t ur(t|dkrtdt|tr|}nt|t| u r"|j}ntd| |}t|dkr4td| D ]
\}}t	| || q8d S )Nr   r   r   r   z)Union can only store one field at a time.)
r}   r*   r   r'   dictrl   r   r   r   r   )r   r   r   datadictr   r~   r   r   r   r   P  s   
zUnionType.__init__c                 C   sJ   |dkrt | || d S || jv r|t| j| |i| _d S td| )Nr   zUnion has no member '%s')r   r   r   ro   r   r   r   r   r   r   r   b  s
   
zUnionType.__setattr__N)r   r   r   r}   r   r   r   r   r   r   r{   N  s    r{   c                    s   G  fdddt }|S )Nc                          e Zd Z ZdS )z pointer.<locals>.PointerInstanceN)r   r   r   rx   r   basetyper   r   PointerInstancek      r   )r   )r   r   r   r   r   ru   j  s   ru   c                    s   G  fdddt }|S )Nc                       s   e Zd Z ZZdS )zarray.<locals>.ArrayInstanceN)r   r   r   rx   r   r   r   r   r   r   ArrayInstancep  s    r   )r|   )r   r   r   r   r   r   r.   o  s   r.   c                     .   G  fdddt } D ]}t||d  q|S )Nc                       r   )zstruct.<locals>.StructInstanceNr   r   r   r   r   membersr   r   StructInstancev  r   r   )rz   r   )r   r   r   r   r   r   structu     r   c                     r   )Nc                       r   )zunion.<locals>.UnionInstanceNr   r   r   r   r   UnionInstance}  r   r   )r{   r   )r   r   r   r   r   r   union|  r   r   c                   @   s*   e Zd ZdddZdd Zdd ZeZdS )	rk   Nc                 C   s   || _ || _d S r   )rx   name)r   rl   r   r   r   r   r     s   
ztypedef.__init__c                 G   s   t | jg|R  }|S r   r   )r   rR   r~   r   r   r   rA     s   ztypedef.__call__c                 C   s   | j pt| jS r   )r   strrx   rC   r   r   r   r     s   ztypedef.__repr__r   )r   r   r   r   rA   r   r3   r   r   r   r   r   rk     s
    
rk   c                   @   s   e Zd ZeZdS )
_FusedTypeN)r   r   r   r3   r   r   r   r   r   r     r   r   c                  G   sH   | st dd}| D ]}|ttttfvr t S t||kr!|}q
|S )Nz&Expected at least one type as argumentr   )	TypeErrorpy_intpy_longpy_float
py_complextype_orderingindexr   )r^   rankrl   result_typer   r   r   
fused_type  s   
r   c                 C   s   t d)zCPerhaps this should be implemented in a TreeFragment in Cython codezyet to be implemented)r&   )
signaturesr^   rn   r   r   r   _specialized_from_args  s   r   r-   longfloatzdouble complex)charshort
Py_UNICODEr-   Py_UCS4r   longlong	Py_hash_t
Py_ssize_tsize_tssize_t	ptrdiff_t)
longdoubledoubler   )longdoublecomplexdoublecomplexfloatcomplexcomplex)bintvoidPy_tss_tz	long longzlong doublezlong double complexzfloat complex)r   r   r   r   r   unicode)r   r   r   r   r   z	unsigned uzsigned r#   r   r   r   r      z%s_%spz%s_u%sz%s_s%sp_voidc                   @   s4   e Zd ZdZg dZdddZdd	d
Zdd ZdS )CythonDotParallelz%
    The cython.parallel module.
    )parallelprangethreadidNc                 C   r7   r   )nogil)r   num_threadsr   r   r   r     r6   zCythonDotParallel.parallelr   r   Fc                 C   s   |d u r|}d}t |||S rf   )r   )r   r    r!   r"   r   schedule	chunksizer   r   r   r   r     s   zCythonDotParallel.prangec                 C   rp   rf   r   rC   r   r   r   r   $  r6   zCythonDotParallel.threadidr   )r   Nr   FNNN)r   r   r   r   __all__r   r   r   r   r   r   r   r     s    

r   c                   @       e Zd ZdZdd Zdd ZdS )CythonDotImportedFromElsewherezW
    cython.dataclasses just shadows the standard library modules of the same name
    c                 C      g | _ d | _|| _|| _d S r   __path____file__r   __package__r   moduler   r   r   r   .     
z'CythonDotImportedFromElsewhere.__init__c                 C   s^   ddl m} dd l}z|| j}W n ty!   td|| jf w ||jd| j < t||S )Nr   )import_modulez3%s: the standard library module %s is not availablez	cython.%s)	importlibr   sysr   ImportErrorr   modulesgetattr)r   attrr   r   modr   r   r   __getattr__4  s   
z*CythonDotImportedFromElsewhere.__getattr__Nr   r   r   r   r   r  r   r   r   r   r   *      r   c                   @   r   )CythonCImportszN
    Simplistic module mock to make cimports sort-of work in Python code.
    c                 C   r   r   r   r   r   r   r   r   F  r   zCythonCImports.__init__c                 C   sZ   | dr|drt|zt|W S  ty,   dd l}t|}|jdkr*d |_|w )N__r   )   r   )
startswithendswithr   
__import__r  r   version_info	__cause__)r   r0   r   exr   r   r   r  L  s   

zCythonCImports.__getattr__Nr  r   r   r   r   r	  B  r  r	  zcython.parallelzcython.cimportszcython.cimports.libczcython.cimports.libc.mathdataclasseszcython.dataclasses)NT)
__future__r   __version____builtin__r   r  r   objectr   r3   compiledr}   r5   r:   r=   r>   r?   rI   cclassccallcfuncannotation_typingreturns
wraparoundboundscheckinitializedcheck	nonecheckembedsignature	cdivisioncdivision_warningsalways_allow_keywordsprofile	linetraceinfer_typesunraisable_tracebacksfreelistauto_picklecpowtrashcan
auto_cpdefc_api_binop_methodsallow_none_for_extension_argscallspecshow_performance_hints
cpp_locals
py2_importiterable_coroutineremove_unreachablefast_getattr	exceptvaloverflowcheckoptimizeformatfold
use_switchunpack_method_callsfinalinternaltype_version_tagno_gc_clearno_gctotal_orderingufuncbindingrS   r[   r`   rb   re   rh   ro   rq   rs   rv   rw   r   r   r   gilwith_gilrl   r   r   r   r   r|   rz   r{   ru   r.   r   r   rk   r   r   r   r-   r   r   r   	NameErrorr   r   r   r   	int_typesfloat_typescomplex_typesother_typesgetto_reprglobalsgsbuiltinsr  r   reprnamer  r,   r   r   r   rm   r   r   r   NULLintegralfloatingnumericr   r   r   r	  mathr   r  r  r   r   r   r   <module>   sX  )	
	!	(






"""
