o
    NiL                  
   @   s  d Z G dd dZdd ZdZe Zdd Zdd	 Zd
d Zdd Z	G dd dZ
G dd d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) Z* Z+Z,dd Z-dd Z.dddZ/e Z0dd  e_1 e+_2 e0_3e0_4e Z5 Z6 Z7 Z8 Z9 Z:Z;dd Z<G dd dZ=da>dd Z?dd  Z@d!d" ZAd#d$ ZBd%d& ZCd'd( ZDd)d* ZEd+d, ZFd-d. ZGdefd/d0ZHG d1d2 d2ZIeI ZJeI ZKeI ZL[IG d3d4 d4ZMG d5d6 d6eNZOeOd7efi ZPG d8d9 d9ePZQG d:d; d;eQZRG d<d= d=eRZSG d>d? d?eQZTG d@dA dAeQZUG dBdC dCeRZVG dDdE dEeSZWdFdG ZXdHdI ZYG dJdK dKeQZZG dLdM dMeZZ[G dNdO dOeZZ\G dPdQ dQeQZ]dRdS Z^dTdU Z_eZe`dVZaeZe`dWZbeZecdXZdeZeedYZfg dZZgg d[Zhg d\Zig d]Zjd^d_d`dYdadbjkZlem ZneZeodcendc< egD ]0ZpelepepZqeZeaeqenep< epddvreprdeseZeadfeq endgep < eZeadheq endiep < qehD ]ZpeZedelepepenep< qeiD ]ZpeZefelepepenep< q[p[qeZesdjZteZddkZueZddlZvegeh ei ej D ]#Zwewdgew diew fD ]Zwewenv r+e[enew ewendmew < qqexdndoD ]ZydpD ]mZzegD ];Zwewdgew diew fD ],Zwewenv rteVendqeydn   eydnkr_drnds ez ew  endqey  drez ew < qIq<ehei D ]'ZweVendqeydn   eydnkrdrnds ez ew  endqey  drez ew < q|q8eVendqeydn   eydnkrdrnds dt endqey  du< ejD ]#ZweVendqeydn   eydnkrdrnds ew  endqey  drew < qŐq4[w[z[yendv dwZ{[ndxdy Z|e]  Z} Z~ZeaebedefgZG dzd{ d{ZG d|d} d}ZG d~d dZdwdlZdwdlZe ejd< eejd< ededejd< edejd dejd< ed Zejd< [[G dd dZeZdS )z3.2.4c                   @   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
   A/home/ubuntu/.local/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::1    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_slice*   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,   




r1   Fc                 C   s   | S r   r
   )xr
   r
   r   _empty_decoratorP      r3   c                  K      t S r   r3   )	arg_typesr
   r
   r   localsS   r4   r8   c                  G   r5   r   r6   pathsr
   r
   r   test_assert_path_existsV   r4   r;   c                  G   r5   r   r6   r9   r
   r
   r   test_fail_if_path_existsY   r4   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	   r2   r
   r
   r   __call__]   r4   z"_EmptyDecoratorAndManager.__call__c                 C      d S r   r
   r	   r
   r
   r   	__enter___   r4   z#_EmptyDecoratorAndManager.__enter__c                 C   r@   r   r
   r	   exc_type	exc_value	tracebackr
   r
   r   __exit__a   r4   z"_EmptyDecoratorAndManager.__exit__N)r   r   r   r?   rB   rG   r
   r
   r
   r   r=   \   s    r=   c                   @   r   )_OptimizationNr   r
   r
   r
   r   rH   d   r   rH   c                 C      t  S r   r=   _r
   r
   r   <lambda>q       rM   c                 C   rI   r   rJ   rK   r
   r
   r   rM   t   rN   c                 C   rI   r   rJ   rK   r
   r
   r   rM   v   rN   NTc                 C   rI   r   rJ   )rL   checkr
   r
   r   rM   x   rN   c                 C   rI   r   rJ   argr
   r
   r   rM   ~   rN   c                 C   r5   r   r6   rK   r
   r
   r   rM      s    c                   @   s(   e Zd Zdd  Z Z Z Z ZZdS )warnc                 C   rI   r   rJ   rK   r
   r
   r   rM      rN   zwarn.<lambda>N)	r   r   r   
undeclaredunreachablemaybe_uninitializedunused
unused_argunused_resultr
   r
   r
   r   rR      s    rR   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%   str_cython_inlineCython.Build.InlinerY   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
   rP   r
   r
   r   sizeof   r4   rq   c                 C   s   | j jS r   )	__class__r   rP   r
   r
   r   typeof      rs   c                 C   s   t t| | gS r   )pointerrl   rP   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   r?      s   z_nogil.__call__c                 C   r@   r   r
   rA   r
   r
   r   rB      r4   z_nogil.__enter__c                 C   s   |d u S r   r
   r	   	exc_classexctbr
   r
   r   rG      rt   z_nogil.__exit__N)r   r   r   __doc__r?   rB   rG   r
   r
   r
   r   r      s
    r   c                   @   s.   e Zd Zd
ddZdd Zdd Zdd	 ZdS )critical_sectionNc                 C   s
   || _ d S r   arg0)r	   r   arg1r
   r
   r   r      s   
zcritical_section.__init__c                 O   s   | j |i |S r   r   )r	   r^   r_   r
   r
   r   r?         zcritical_section.__call__c                 C   r@   r   r
   rA   r
   r
   r   rB      r4   zcritical_section.__enter__c                 C   rp   )NFr
   r   r
   r
   r   rG      r4   zcritical_section.__exit__r   )r   r   r   r   r?   rB   rG   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__      
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   rA   r
   r   
<listcomp>	      z(PointerType.__init__.<locals>.<listcomp>c                    r   r
   r   r   rA   r
   r   r     r   r   )r%   r|   r   _itemslist
ValueErrorr	   r~   r
   rA   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   | j  dS )Nz *)rx   rA   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 | d S r   )_nr   superr   r   rr   r
   r   r   )  s   zArrayType.__init__r   )r   r   r   r   __classcell__r
   r
   r   r   r|   '  s    r|   c                   @      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   keyrQ   r~   r
   r
   r   r   2  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__Q  s   
zStructType.__setattr__N)r   r   r   r   r   r
   r
   r
   r   rz   0  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   Z  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   l  s
   
zUnionType.__setattr__N)r   r   r   r}   r   r   r
   r
   r
   r   r{   X  s    r{   c                   @   r   )ru   c                    s   G  fdddt }|S )Nc                          e Zd Z ZdS )z(pointer.__new__.<locals>.PointerInstanceN)r   r   r   rx   r
   basetyper
   r   PointerInstancex      r   )r   )clsr   r   r
   r   r   __new__w  s   zpointer.__new__c                 C   s   | |S r   r
   )r   r   r
   r
   r   __class_getitem__|  rt   zpointer.__class_getitem__Nr   r   r   r   r   r
   r
   r
   r   ru   u  s    ru   c                   @   r   )r,   c                    s   G  fdddt }|S )Nc                       s   e Zd Z ZZdS )z$array.__new__.<locals>.ArrayInstanceN)r   r   r   rx   r   r
   r   r   r
   r   ArrayInstance  s    r   )r|   )r   r   r   r   r
   r   r   r     s   zarray.__new__c                 C   s   |\}}| ||S r   r
   )r   r.   r   r   r
   r
   r   r     s   
zarray.__class_getitem__Nr   r
   r
   r
   r   r,     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   StructInstance  r   r   )rz   r   )r   r   r   r
   r   r   struct     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	   rQ   r~   r
   r
   r   r?     s   ztypedef.__call__c                 C   s   | j pt| jS r   )r   rZ   rx   rA   r
   r
   r   r     r   ztypedef.__repr__r   )r   r   r   r   r?   r   r1   r   r
   r
   r
   r   rk     s
    
rk   c                       &   e Zd Zd fdd	Zdd Z  ZS )constNc                    $   d|pt | }t || d S )Nzconst reprr   r   r   r   r
   r   r        zconst.__init__c                 C      t |S r   )r   r   r-   r
   r
   r   r     rt   zconst.__class_getitem__r   r   r   r   r   r   r   r
   r
   r   r   r         r   c                       r   )volatileNc                    r   )Nz	volatile r   r   r   r
   r   r     r   zvolatile.__init__c                 C   r   r   )r   r   r
   r
   r   r     rt   zvolatile.__class_getitem__r   r   r
   r
   r   r   r     r   r   c                   @   s   e Zd ZeZdS )
_FusedTypeN)r   r   r   r1   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   const_r      ) r   prL   r  
const_bint_const_bintp_voidr   c                 C   s0   | dkrdd l }|dt t S td| )Ngsr   zQ'gs' is not a publicly exposed name in cython.*. Use vars() or globals() instead.z'cython' has no attribute )warningsrR   DeprecationWarningglobalsr   )r   r  r
   r
   r   __getattr__>  s   r
  c                   @   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   r5   r   )nogil)r	   num_threadsr
   r
   r   r  T  r4   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  W  s   zCythonDotParallel.prangec                 C   rp   rf   r
   rA   r
   r
   r   r  ]  r4   zCythonDotParallel.threadidr   )r   Nr   FNNN)r   r   r   r   __all__r  r  r  r
   r
   r
   r   r  M  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   s   g | _ d | _|| _|| _d S r   )__path____file__r   __package__)r	   moduler
   r
   r   r   g  s   
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   r
  m  s   
z*CythonDotImportedFromElsewhere.__getattr__Nr   r   r   r   r   r
  r
   r
   r
   r   r  c  s    r  c                   @   r  )CythonCImportszN
    Simplistic module mock to make cimports sort-of work in Python code.
    c                 K   s0   g | _ d | _|| _|| _|r| j| d S d S r   )r  r  r   r  r   update)r	   r  
attributesr
   r
   r   r     s   zCythonCImports.__init__c                 C   sl   | dr|drt|| jtdd  }ddlm} z|||p#d W S  ty5   t|}d |_|w )N__zcython.cimports.r   r  )	
startswithendswithr   r  r(   r  r  r  	__cause__)r	   r.   packager  exr
   r
   r   r
    s   zCythonCImports.__getattr__Nr#  r
   r
   r
   r   r$  {  s    r$  zcython.parallelzcython.cimports.libc.mathzcython.cimports.libc)mathzcython.cimports)libcdataclasseszcython.dataclassesc                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )pymutexc                 C   s   dd l }| | _d S rf   )	threadingLock_l)r	   r1  r
   r
   r   r     s   zpymutex.__init__c                 C   
   | j  S r   )r3  acquirerA   r
   r
   r   r5    r   zpymutex.acquirec                 C   r4  r   )r3  releaserA   r
   r
   r   r6    r   zpymutex.releasec                 C   r4  r   )r3  rB   rA   r
   r
   r   rB     r   zpymutex.__enter__c                 C   s   | j |||S r   )r3  rG   rC   r
   r
   r   rG     r   zpymutex.__exit__N)r   r   r   r   r5  r6  rB   rG   r
   r
   r
   r   r0    s    r0  )NT)__version__r   r1   compiledobjectr}   r3   r8   r;   r<   r=   rH   cclassccallcfuncannotation_typingreturns
wraparoundboundscheckinitializedcheck	nonecheckembedsignature	cdivisioncdivision_warningscollection_type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overflowcheck"test_body_needs_exception_handlingfast_getattrc_compile_guard	exceptvaloptimizeformatfold
use_switchunpack_method_callsfinalinternaltype_version_tagno_gc_clearno_gctotal_orderingufuncbindingrR   r[   r`   rb   re   rh   ro   rq   rs   rv   rw   r   r   r  gilwith_gilr   rl   r   r   r   r   r|   rz   r{   ru   r,   r   r   rk   r   r   r   r   r   r+   r   r   r   r   r   r   	int_typesfloat_typescomplex_typesother_typesgetto_reprr	  r  rZ   r   reprnamer)  r*   r   r   r   rm   r   r   r   NULLr
  integralfloatingnumericr   r  r  r$  r-  r  r  r/  r0  pythread_type_lockr
   r
   r
   r   <module>   sf  )

	"	(		









HL:D
