U
    eC}                  "   @   s&	  d dl mZ ddlmZ ddlmZmZmZmZ ddl	m
Z
mZ ddlmZ ddlmZ e
dd	Ze
d
d	Ze
ddZe
ddZe
ddZe
ddZde
ddiZG dd deZG dd deZG dd deZG dd deZG dd deZeddddddd edd!d!d"ddd edd#d#dddd edd$d$d%ddd edd&d&d'e
d(dejej e!d)ej d&gddd d*ge"d+d, ej#ej$ej%fD  e"d-d, ej&ej'ej(fD  edd.d.d/e
d0dd1ed2d.d3d4e
d5d	d1ed6d7d8d9ed:d.d.d;ed<d7d.d=ed>d.d.d?ed1ed>d7d.d@ed1ed>dAd.dBed1edCdAd.dDdEed1edEdAd.dDed1edEd7d.dFed1edGd7d3dHe
dIdd1edJd.dKdLedMd.d.dNe
dOdd1edPd7d3dQedRd7d3dSedTd7d.dUedTd.d.dVedWd.dXdYedZd[d.d\ed]d.d.d^ed1ed]d7d.d_ed1g d`da ej)ej*fD  dbda ej+ej,ej-fD  edcd&d&dde
dedejej.e!dfej/d&gdgdhd*edidAd.djedid7d.dke
dldd1edmd.d.dnedod.d.dpedqdAd8dredsd#d.dtdudvedwd7d.dwedxd[d.dxed1g	 Z0dydzg fd{d|g fd}d~g fddg fddedddeddej1deddej1dgfddedddde
ddd1edddde
dd	d1gfddedddde
dd	d1gfddeddd.de
ddd1edddde
dd	d1gfddeddd.dde
dddedddde
dd	d1gfdudeddd3deddddedddde
dd	d1gfddedddde
dd	d1gfddeddd8deddd8deddd8de
ddd1eddd8de
ddd1edddde
dd	d1gfddeddd3deddd3deddd.de
ddd1eddd.de
ddd1eddd.de
ddd1eddd.de
ddd1eddd.de
ddd1eddd.de
ddd1eddd.de
ddd1eddd.de
ddd1eddd.de
ddd1eddd8de
ddd1edddd׃gfddedڃedۃed܃gfddeddd8d߃eddd8de
ddd1eddd8de
ddd1eddd8deddd.dgfddg fddg fddg fddedej2dddejdde3ddddedej4dddejdde3ddddedej5dddejdde3ddddgfgZ6e7dydd}ddddudddddddhZ8dddej9fdej/fdWej5fdej5fdej4fdej2fd ej:fdej;fdej;fdej;fde<ej5dfdej9fgfdddej1fdej1fgfgZ=e Z>dd Z?i a@d	d
 ZAdd ZBdd ZCeC  i ZDdd ZEdd ZFdd ZGd&S (      )absolute_import   )EncodedString)BuiltinScopeStructOrUnionScopeModuleScopeEntry)UtilityCodeTempitaUtilityCode)	Signature)
PyrexTypesZIterNextzObjectHandling.cZGetAttrZGetAttr3z
Builtins.cZPyExecZPyExecGlobalsZGlobalsStopAsyncIterationzCoroutine.cc                   @   s    e Zd ZdddZd	ddZdS )
_BuiltinOverride*NFc                 C   sN   |||  | _ | _| _|| | _| _|| | _| _|
| _|	| _|| _	|| _
d S N)py_namecnamepy_equivargsret_type	func_typesigbuiltin_return_typeis_strict_signatureutility_codenogil)selfr   r   r   r   r   r   r   r   r   r   r    r   ;/tmp/pip-unpacked-wheel-7k3cqui1/Cython/Compiler/Builtin.py__init__   s    z_BuiltinOverride.__init__c                 C   sN   |d kr"t | j| j| jd}d|_||}| jr8d|_| jrJt| j |_	|S )N)r   FT)
r   r   r   r   exception_checkZfunction_typer   r   builtin_typesreturn_type)r   r   self_argr   r   r   r   build_func_type+   s    
z _BuiltinOverride.build_func_type)r   NNNFNN)NN)__name__
__module____qualname__r   r$   r   r   r   r   r      s             
r   c                   @   s   e Zd ZdddZdd ZdS )BuiltinAttributeNc                 C   s    || _ |p|| _|| _|| _d S r   )r   r   field_type_name
field_type)r   r   r   r*   r)   r   r   r   r   8   s    
zBuiltinAttribute.__init__c                 C   sH   | j d k	rt| j j}n| jp$tj}|j| j	| j
|d d}d|_d S )NprivateT)r)   builtin_scopelookuptyper*   r   py_object_typescopeZdeclarer   r   is_variable)r   	self_typer*   entryr   r   r   declare_in_type>   s
    
z BuiltinAttribute.declare_in_type)NNNr%   r&   r'   r   r4   r   r   r   r   r(   7   s   
r(   c                   @   s   e Zd Zdd ZdS )BuiltinFunctionc                 C   s>   | j | j }}|d kr | |}|| j|| j| j| j d S r   )r   r   r$   declare_builtin_cfunctionr   r   r   r   )r   r0   r   r   r   r   r   declare_in_scopeI   s    
 z BuiltinFunction.declare_in_scopeN)r%   r&   r'   r8   r   r   r   r   r6   H   s   r6   c                   @   s   e Zd Zdd ZdS )BuiltinMethodc                 C   sZ   | j | j }}|d kr<td|d }d|_d|_| ||}|jj| j	|| j
| jd d S )N Tr   )r   r   r   CFuncTypeArgZnot_noneZaccept_builtin_subtypesr$   r0   r7   r   r   r   )r   r2   Zmethod_typer   r#   r   r   r   r4   R   s       zBuiltinMethod.declare_in_typeN)r%   r&   r'   r4   r   r   r   r   r9   Q   s   r9   c                   @   s   e Zd ZdddZdd ZdS )BuiltinPropertyNc                 C   s(   || _ || _|| _|| _|| _|| _d S r   )r   property_type
call_cnamer   exception_valuer    )r   r   r>   r?   r@   r    r   r   r   r   r   `   s    zBuiltinProperty.__init__c                 C   s(   |j j| j| j| j| j| j| jd d S )Nr@   r    r   )r0   Zdeclare_cpropertyr   r>   r?   r@   r    r   )r   r2   r   r   r   r4   i   s    zBuiltinProperty.declare_in_type)NNNr5   r   r   r   r   r=   ^   s
        
	r=   absdfabsTr   r   fZfabsfilZlabsNZ__Pyx_abs_longlongZabs_longlongarg)r   r   c                 c   sD   | ]<}t d ddd| tj|td|dgddddV  qdS )rB   Nz/*abs_{0}*/rI   TrE   r   )r6   formatZspecialization_namer   	CFuncTyper<   .0tr   r   r   	<genexpr>   s    rP   c                 c   sD   | ]<}t d ddd|jtj|jtd|dgddddV  qdS )rB   Nz__Pyx_c_abs{0}rI   TrE   rJ   )r6   rK   Z
funcsuffixr   rL   Z	real_typer<   rM   r   r   r   rP      s    OZ__Pyx_PyNumber_AbsoluteZpy_absr;   callablebZ__Pyx_PyCallable_CheckZCallableCheckdelattrZOOrZPyObject_DelAttrdirZPyObject_DirdivmodZPyNumber_DivmodexecZ__Pyx_PyExecGlobalsZ__Pyx_PyExec2ZOOOZ__Pyx_PyExec3Zgetattr3Z__Pyx_GetAttr3getattrZ__Pyx_GetAttrhasattrZ__Pyx_HasAttrZHasAttrhashhZPyObject_HashinternZ__Pyx_InternZIntern
isinstanceZPyObject_IsInstance
issubclassZPyObject_IsSubclassiterZPyCallIter_NewZPyObject_GetIterlenzZPyObject_Lengthlocalsr:   Z__pyx_localsnextZ__Pyx_PyIter_NextZ__Pyx_PyIter_Next2c                 C   s8   g | ]0}t d dddtjtjtd|dgdddqS )ordNZ__Pyx_long_castcTr   rJ   )r6   r   rL   c_long_typer<   rN   Zc_typer   r   r   
<listcomp>   s   
 rj   c                 C   s8   g | ]0}t d dddtjtjtd|dgdddqS )re   NZ__Pyx_uchar_castrf   Trg   rJ   )r6   r   rL   c_uchar_typer<   ri   r   r   r   rj      s   
 re   Z__Pyx_PyObject_OrdZ
object_ordrf   z(long)(Py_UCS4)-1)r@   powZPyNumber_PowerZ__Pyx_PyNumber_Power2Zpow2reloadZPyImport_ReloadModulereprZPyObject_ReprsetattrZPyObject_SetAttrunichrZPyUnicode_FromOrdinalunicode)r   Z__Pyx_PyObject_AppendZ__Pyx_Globalsr.   ZPyType_TypeintZ
PyInt_TypelongZPyLong_TypefloatZPyFloat_TypecomplexZPyComplex_TypecvalZ
Py_complex)r)   realz	cval.real)r*   imagz	cval.imag
basestringZPyBaseString_TypejoinZTOTZ__Pyx_PyBaseString_JoinZ
StringJoinzStringTools.c__mul__ZTzZ__Pyx_PySequence_MultiplyZPySequenceMultiply	bytearrayZPyByteArray_TypebytesZPyBytes_TypeZ__Pyx_PyBytes_JoinstrZPyString_TypeZ__Pyx_PyString_Join)r   r   ZPyUnicode_Type__contains__ZPyUnicode_ContainsZPyUnicode_JointupleZPyTuple_TypelistZPyList_TypeinsertZTzOZPyList_InsertreverseZPyList_ReverseappendZ__Pyx_PyList_AppendZ
ListAppendz
Optimize.cextendZ__Pyx_PyList_ExtendZ
ListExtenddictZPyDict_TypeZPyDict_ContainsZhas_keyitemsZ__Pyx_PyDict_ItemsZpy_dict_itemskeysZ__Pyx_PyDict_KeysZpy_dict_keysvaluesZ__Pyx_PyDict_ValuesZpy_dict_values	iteritemsZ__Pyx_PyDict_IterItemsZpy_dict_iteritemsiterkeysZ__Pyx_PyDict_IterKeysZpy_dict_iterkeys
itervaluesZ__Pyx_PyDict_IterValuesZpy_dict_itervalues	viewitemsZ__Pyx_PyDict_ViewItemsZpy_dict_viewitemsviewkeysZ__Pyx_PyDict_ViewKeysZpy_dict_viewkeys
viewvaluesZ__Pyx_PyDict_ViewValuesZpy_dict_viewvaluesclearZ__Pyx_PyDict_ClearZpy_dict_clearcopyZPyDict_CopysliceZPySlice_TypestartstopstepsetZ
PySet_TypeZPySet_CleardiscardZ__Pyx_PySet_DiscardZpy_set_discardremoveZ__Pyx_PySet_RemoveZpy_set_removeaddZ	PySet_AddpopZ	PySet_Pop	frozensetZPyFrozenSet_Type	Exceptionz#((PyTypeObject*)PyExc_Exception)[0]z2((PyTypeObject*)__Pyx_PyExc_StopAsyncIteration)[0]
memoryviewZPyMemoryView_TypendimZ__Pyx_PyMemoryView_Get_ndimz-1Zmemoryview_get_from_buffer)name)contextrA   readonlyZ__Pyx_PyMemoryView_Get_readonlyitemsizeZ__Pyx_PyMemoryView_Get_itemsizebool	Py_bufferbufobjrK   shapestrides
suboffsetsZ
smalltable   Zinternalc                  C   s   t D ]} | t qd S r   )builtin_function_tabler8   r,   )Zbfr   r   r   init_builtin_funcs  s    r   c                  C   s   t D ]\} }}t| }| dkr&d}nD| dkr4d}n6| dkrBd }n(| dkrPd}n| dkr^d}nd	|   }tj}| d
krtj}n| dkrtj}tj	| ||||d}|t
| < |D ]}|| qqd S )Nr   ZPySetObjectr}   ZPyByteArrayObjectr   r   ZPyBaseExceptionObjectr   z
Py%sObject)r   r   r   r   r   )
type_class)builtin_types_tablebuiltin_utility_codeget
capitalizer   ZBuiltinObjectTypeZ BuiltinTypeConstructorObjectTypeZPythonTupleTypeConstructorr,   Zdeclare_builtin_typer!   r4   )r   r   methodsZutilityZobjstruct_cnamer   Zthe_typemethodr   r   r   init_builtin_types  s0    
r   c               	   C   sT   t D ]J\} }}t| }|D ]\}}|j||d |dd qtj| d|dd |d qd S )NT)Zallow_pyobjectstructr   )r   )builtin_structs_tabler   declare_varr,   Zdeclare_struct_or_union)r   r   Zattribute_typesr0   Zattribute_nameZattribute_typer   r   r   init_builtin_structs  s    
      r   c                  C   sh  t   t  t  tjdttjd ddd} t	dd| _
tdjatdjatd	jatd
jatdjatdjatdjatdjatdjatdjatdjatdjatdjatdjatdjatdjatdjatdjattttttttfatjt_ ttj_ tj!t_ ttj!_ tj"t_ ttj"_ tdja#d S )N	__debug__z__pyx_assertions_enabled()T)posr   Zis_cdefZAssertionsEnabledzExceptions.cr.   r   r   r   r   r   r   r~   r   rq   ry   r}   r   rt   rr   rs   r   ru   r   )$r   r   r   r,   r   r   Zc_const_typec_bint_typer	   load_cachedr   r-   r.   Z	type_type	list_type
tuple_type	dict_typeset_typefrozenset_typeZ
slice_typeZ
bytes_typeZstr_typeZunicode_typeZbasestring_typeZbytearray_typeZmemoryview_typeZ
float_typeZint_typeZ	long_typeZ	bool_typeZcomplex_typeZsequence_typesZequivalent_typec_double_typec_double_complex_typeZpy_buffer_type)r3   r   r   r   init_builtins  sZ     
  r   c                 C   s  t | }|r|S | dkrt| d d }dtfdtfdtfdtfdtffD ]T\}}t|}|j	||d d}t
|d tj}d|_d|_||_||_d	| |f |_qJd
D ]b}t|}ttd| }|j	||d d}t
|d tj}d|_d|_||_||_d	| |f |_q|t | < n| dkrt| d d }ttd}td}|j	||d d}t
|d tj}d|_||_||_d|  |_dD ]}|jt|tjd d q||t | < n@| dkrt| d d }dD ]}|jt|tjd d q|t | < |S )NtypingDictListTupleSet	FrozenSet)r   Tz%s.%s)ClassVarOptionalztyping.Zdataclasseszdataclasses.InitVarZInitVarz
%s.InitVar)Z	dataclassfield	functools)total_ordering)_known_module_scopesr   r   r   r   r   r   r   r   Zdeclare_typer   r   r/   Zis_pyglobalr1   r0   Zas_variableknown_standard_library_importZSpecialPythonTypeConstructorr   )module_namemodr   tpr3   Z	var_entryZindexed_typeZinitvar_stringr   r   r   'get_known_standard_library_module_scope*  sb    






r   c                 C   sT   |  d}t|d }|dd  }t|dkr2d S t|}|rP|rP||d S d S )N.r   r   )splitr   ra   r   Zlookup_here)Zqualified_nameZ
name_partsr   restr   r   r   r    get_known_standard_library_entryb  s    
r   c                 C   s|   g }d }| j r"|| j | j} q| jrx|| j}|rx|jrxt|jrP|j}n(t	|j}|rx||j d
t|}|S )Nr   )Zis_attributer   	attributer   Zis_namer-   r   r   r   r   rz   reversed)nodeenvZqualified_name_partsZ
known_namer3   Zstandard_envr   r   r   'exprnode_to_known_standard_library_namer  s&    
r   )H
__future__r   ZStringEncodingr   ZSymtabr   r   r   r   ZCoder	   r
   Z	TypeSlotsr   r:   r   loadZiter_next_utility_codeZgetattr_utility_codeZgetattr3_utility_codeZpyexec_utility_codeZpyexec_globals_utility_codeZglobals_utility_coder   r   objectr   r(   r6   r9   r=   rL   Zc_longlong_typer<   r   Zc_uint_typeZc_ulong_typeZc_ulonglong_typeZc_float_complex_typer   Zc_longdouble_complex_typeZc_py_ucs4_typeZc_py_unicode_typeZc_char_typeZc_schar_typerk   rh   r/   r   r   Z
c_int_typer   r   Zc_py_ssize_t_typer   r   Z#types_that_construct_their_instanceZc_void_ptr_typeZc_char_ptr_typeZc_py_ssize_t_ptr_typeZ
CArrayTyper   r,   r   r!   r   r   r   r   r   r   r   r   r   r   r   <module>   s   
	
 
 
 
 

 #














W
]d



	
 !















































  
  
             





=8