U
    wy]%                     @   s  d dl Z dd ZeeZedd ZeejZeejZee j	Z
dd Zee Zdd	 Zee Zd
d Ze ZeeZe  dd Ze ZeeZG dd dZee jZeeZeg jZeejZee jZee j!Z"ee#jd Z$ee Z%ze&W n: e&k
r>   e ' d Z(ee(Z)ee(j*Z+dZ([(Y nX eejZ,eej-Z.[ [[[[[d#ddZ/dd Z0d$ddZ1dd Z2G dd dZ3G dd dZ4dd  Z5d!d" e6 D Z7dS )%    Nc                   C   s   d S N r   r   r   B/home/stadmin/Documents/SimTableSoftware/Python-3.8.0/Lib/types.py_f       r   c                   C   s   d S r   r   r   r   r   r   <lambda>   r   r   c                     s   d  fdd} | j d S )N   c                      s   d S r   r   r   ar   r   f   s    z_cell_factory.<locals>.fr   )__closure__)r   r   r	   r   _cell_factory   s    r   c                   c   s
   dV  d S )Nr   r   r   r   r   r   _g   s    r   c                      s   d S r   r   r   r   r   r   _c   r   r   c                   C  s
   d V  d S r   r   r   r   r   r   _ag"   s    r   c                   @   s   e Zd Zdd ZdS )_Cc                 C   s   d S r   r   selfr   r   r   _m(   r   z_C._mN)__name__
__module____qualname__r   r   r   r   r   r   '   s   r   fromkeys   r   c                 C   sJ   t |}t| ||\}}}|d k	r*|| ||k	r:||d< || ||f|S )NZ__orig_bases__)resolve_basesprepare_class)namebaseskwdsZ	exec_bodyZresolved_basesmetansr   r   r   	new_classE   s    r!   c                 C   s   t | }d}d}t| D ]j\}}t|tr,qt|ds8q|| }d}t|tsZtdq|||| || d < |t|d 7 }q|s| S t|S )NFr   __mro_entries__Tz#__mro_entries__ must return a tupler   )	list	enumerate
isinstancetypehasattrr"   tuple	TypeErrorlen)r   Z	new_basesZupdatedZshiftibaseZnew_baser   r   r   r   O   s"    




r   c                 C   s~   |d kri }nt |}d|kr*|d}n|r<t|d }nt}t|trTt||}t|drp|j| |f|}ni }|||fS )N	metaclassr   __prepare__)dictpopr&   r%   _calculate_metar'   r.   )r   r   r   r   r    r   r   r   r   d   s    


r   c                 C   s>   | }|D ]0}t |}t||r qt||r0|}qtdq|S )Nzxmetaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases)r&   
issubclassr)   )r   r   Zwinnerr,   Z	base_metar   r   r   r1      s    


r1   c                   @   sH   e Zd ZdddZdddZdd Zdd	 Zd
d Zdd Zdd Z	dS )DynamicClassAttributeNc                 C   s>   || _ || _|| _|p|j| _|d k| _tt|dd| _d S )N__isabstractmethod__F)fgetfsetfdel__doc__overwrite_docboolgetattrr4   )r   r5   r6   r7   Zdocr   r   r   __init__   s    
zDynamicClassAttribute.__init__c                 C   s6   |d kr| j r| S t n| jd kr,td| |S )Nzunreadable attribute)r4   AttributeErrorr5   )r   instanceZ
ownerclassr   r   r   __get__   s    
zDynamicClassAttribute.__get__c                 C   s"   | j d krtd|  || d S )Nzcan't set attribute)r6   r=   )r   r>   valuer   r   r   __set__   s    
zDynamicClassAttribute.__set__c                 C   s    | j d krtd|  | d S )Nzcan't delete attribute)r7   r=   )r   r>   r   r   r   
__delete__   s    
z DynamicClassAttribute.__delete__c                 C   s8   | j r|jnd }t| || j| j|p(| j}| j |_ |S r   )r9   r8   r&   r6   r7   )r   r5   Zfdocresultr   r   r   getter   s    zDynamicClassAttribute.getterc                 C   s$   t | | j|| j| j}| j|_|S r   )r&   r5   r7   r8   r9   )r   r6   rC   r   r   r   setter   s    zDynamicClassAttribute.setterc                 C   s$   t | | j| j|| j}| j|_|S r   )r&   r5   r6   r8   r9   )r   r7   rC   r   r   r   deleter   s    zDynamicClassAttribute.deleter)NNNN)N)
r   r   r   r<   r?   rA   rB   rD   rE   rF   r   r   r   r   r3      s   


	r3   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zed	d
 Zedd Z	edd Z
edd ZeZe	Ze
ZeZdd Zdd ZeZdS )_GeneratorWrapperc                 C   s2   || _ |jtk| _t|dd | _t|dd | _d S )Nr   r   )_GeneratorWrapper__wrapped	__class__GeneratorType_GeneratorWrapper__isgenr;   r   r   )r   Zgenr   r   r   r<      s    z_GeneratorWrapper.__init__c                 C   s   | j |S r   )rH   send)r   valr   r   r   rL      s    z_GeneratorWrapper.sendc                 G   s   | j j|f| S r   )rH   throw)r   Ztprestr   r   r   rN      s    z_GeneratorWrapper.throwc                 C   s
   | j  S r   )rH   closer   r   r   r   rP      s    z_GeneratorWrapper.closec                 C   s   | j jS r   )rH   gi_coder   r   r   r   rQ      s    z_GeneratorWrapper.gi_codec                 C   s   | j jS r   )rH   gi_framer   r   r   r   rR      s    z_GeneratorWrapper.gi_framec                 C   s   | j jS r   )rH   
gi_runningr   r   r   r   rS      s    z_GeneratorWrapper.gi_runningc                 C   s   | j jS r   )rH   gi_yieldfromr   r   r   r   rT      s    z_GeneratorWrapper.gi_yieldfromc                 C   s
   t | jS r   )nextrH   r   r   r   r   __next__   s    z_GeneratorWrapper.__next__c                 C   s   | j r| jS | S r   )rK   rH   r   r   r   r   __iter__   s    z_GeneratorWrapper.__iter__N)r   r   r   r<   rL   rN   rP   propertyrQ   rR   rS   rT   cr_codecr_frame
cr_runningcr_awaitrV   rW   	__await__r   r   r   r   rG      s&   



rG   c                    s   t stdjtkrftdd jtkrfjj}|d@ r@S |d@ rfj}|j|jdB d_S dd l	}dd l
 | fdd	}|S )
Nz$types.coroutine() expects a callable__code__i         )co_flagsr   c                     sR   | |}|j tks*|j tkr.|jjd@ r.|S t| jrNt| jsNt|S |S )Nr`   )	rI   CoroutineTyperJ   rQ   ra   r%   Z	GeneratorZ	CoroutinerG   )argskwargscoro_collections_abcfuncr   r   wrapped  s    



zcoroutine.<locals>.wrapped)callabler)   rI   FunctionTyper;   CodeTyper^   ra   replace	functoolsrg   Zwraps)rh   ra   Zcorn   ri   r   rf   r   	coroutine   s"    
ro   c                 C   s    g | ]}|d d dkr|qS )Nr   _r   ).0nr   r   r   
<listcomp>(  s      rs   )r   NN)r   N)8sysr   r&   rk   Z
LambdaTyper^   rl   __dict__MappingProxyTypeimplementationZSimpleNamespacer   ZCellTyper   rJ   r   rb   rP   r   ZAsyncGeneratorTyper   r   Z
MethodTyper*   ZBuiltinFunctionTypeappendZBuiltinMethodTypeobjectr<   ZWrapperDescriptorType__str__ZMethodWrapperTypestrjoinZMethodDescriptorTyper/   ZClassMethodDescriptorTypeZ
ModuleTyper)   exc_infotbZTracebackTypetb_frameZ	FrameTypeZGetSetDescriptorType__globals__ZMemberDescriptorTyper!   r   r   r1   r3   rG   ro   globals__all__r   r   r   r   <module>   sZ   








 




 :%4