
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a‹S  ã                   @   sÌ   d dl mZmZmZmZmZmZmZmZ d dl	m
Z
mZ d dlZd dlZd dlZeefZdddddd	d
ddddddgZG dd„ deƒZG dd„ dejƒZG dd„ deƒZG dd„ dejƒZG dd„ dƒZdS )é    )ÚgetweakrefcountÚgetweakrefsÚrefÚproxyÚCallableProxyTypeÚ	ProxyTypeÚReferenceTypeÚ_remove_dead_weakref)ÚWeakSetÚ_IterationGuardNr   r   r   r   ÚWeakKeyDictionaryr   r   r   Ú
ProxyTypesÚWeakValueDictionaryr
   Ú
WeakMethodÚfinalizec                       s@   e Zd ZdZddd„Z‡ fdd„Zdd„ Zd	d
„ Zej	Z	‡  Z
S )r   )Ú	_func_refÚ
_meth_typeÚ_aliveÚ__weakref__Nc                    s~   z|j }|j}W n( tk
r8   td t|ƒ¡ƒd ‚Y nX ‡ ‡fdd„}t | ||¡}t||ƒ|_t|ƒ|_	d|_
t|ƒ‰|S )Nz)argument should be a bound method, not {}c                    s&   ˆƒ }|j r"d|_ ˆ d k	r"ˆ |ƒ d S ©NF)r   )ÚargÚself©ÚcallbackZself_wr© ú,/opt/alt/python38/lib64/python3.8/weakref.pyÚ_cb3   s
    zWeakMethod.__new__.<locals>._cbT)Ú__self__Ú__func__ÚAttributeErrorÚ	TypeErrorÚformatÚtyper   Ú__new__r   r   r   )ÚclsZmethr   ÚobjÚfuncr   r   r   r   r   r#   ,   s     
ÿÿ
zWeakMethod.__new__c                    s2   t ƒ  ¡ }|  ¡ }|d ks"|d kr&d S |  ||¡S ©N)ÚsuperÚ__call__r   r   )r   r%   r&   ©Ú	__class__r   r   r)   B   s
    
zWeakMethod.__call__c                 C   s:   t |tƒr6| jr|js| |kS t | |¡o4| j|jkS dS r   )Ú
isinstancer   r   r   Ú__eq__r   ©r   Úotherr   r   r   r-   I   s
    
zWeakMethod.__eq__c                 C   s:   t |tƒr6| jr|js| |k	S t | |¡p4| j|jkS dS ©NT)r,   r   r   r   Ú__ne__r   r.   r   r   r   r1   P   s
    
zWeakMethod.__ne__)N)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r#   r)   r-   r1   r   Ú__hash__Ú__classcell__r   r   r*   r   r   $   s   
c                   @   s¼   e Zd Zd+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eZdd„ Zd,dd„Zdd„ Zdd„ ZeZdd„ Zdd „ Zd!d"„ Zd#d$„ Zd-d%d&„Zd.d'd(„Zd)d*„ ZdS )/r   r   c                K   s>   t | ƒtfdd„}|| _g | _tƒ | _i | _| j|f|Ž d S )Nc                 S   s6   |ƒ }|d k	r2|j r$|j | j¡ n||j| jƒ d S r'   )Ú
_iteratingÚ_pending_removalsÚappendÚkeyÚdata)ÚwrÚselfrefZ_atomic_removalr   r   r   r   Úremoveg   s
    z,WeakValueDictionary.__init__.<locals>.remove)r   r	   Ú_remover9   Úsetr8   r<   Úupdate)r   r/   Úkwr?   r   r   r   Ú__init__f   s    	zWeakValueDictionary.__init__c                 C   s(   | j }| j}|r$| ¡ }t||ƒ qd S r'   )r9   r<   Úpopr	   )r   ÚlÚdr;   r   r   r   Ú_commit_removalsw   s
    z$WeakValueDictionary._commit_removalsc                 C   s4   | j r|  ¡  | j| ƒ }|d kr,t|ƒ‚n|S d S r'   ©r9   rH   r<   ÚKeyError©r   r;   Úor   r   r   Ú__getitem__€   s    
zWeakValueDictionary.__getitem__c                 C   s   | j r|  ¡  | j|= d S r'   )r9   rH   r<   ©r   r;   r   r   r   Ú__delitem__‰   s    zWeakValueDictionary.__delitem__c                 C   s   | j r|  ¡  t| jƒS r'   )r9   rH   Úlenr<   ©r   r   r   r   Ú__len__Ž   s    zWeakValueDictionary.__len__c                 C   s>   | j r|  ¡  z| j| ƒ }W n tk
r4   Y dS X |d k	S r   rI   rK   r   r   r   Ú__contains__“   s    z WeakValueDictionary.__contains__c                 C   s   d| j jt| ƒf S ©Nz<%s at %#x>©r+   r2   ÚidrQ   r   r   r   Ú__repr__œ   s    zWeakValueDictionary.__repr__c                 C   s&   | j r|  ¡  t|| j|ƒ| j|< d S r'   )r9   rH   ÚKeyedRefr@   r<   ©r   r;   Úvaluer   r   r   Ú__setitem__Ÿ   s    zWeakValueDictionary.__setitem__c              	   C   sV   | j r|  ¡  tƒ }t| ƒ�0 | j ¡ D ]\}}|ƒ }|d k	r(|||< q(W 5 Q R X |S r'   )r9   rH   r   r   r<   Úitems)r   Únewr;   r=   rL   r   r   r   Úcopy¤   s    
zWeakValueDictionary.copyc              	   C   sj   ddl m} | jr|  ¡  |  ¡ }t| ƒ�6 | j ¡ D ]$\}}|ƒ }|d k	r6|||||ƒ< q6W 5 Q R X |S ©Nr   )Údeepcopy)r^   r`   r9   rH   r+   r   r<   r\   )r   Úmemor`   r]   r;   r=   rL   r   r   r   Ú__deepcopy__±   s    
z WeakValueDictionary.__deepcopy__Nc                 C   sP   | j r|  ¡  z| j| }W n tk
r4   | Y S X |ƒ }|d krH|S |S d S r'   rI   )r   r;   Údefaultr=   rL   r   r   r   Úget½   s    
zWeakValueDictionary.getc              	   c   sR   | j r|  ¡  t| ƒ�2 | j ¡ D ] \}}|ƒ }|d k	r"||fV  q"W 5 Q R X d S r'   ©r9   rH   r   r<   r\   )r   Úkr=   Úvr   r   r   r\   Ì   s    
zWeakValueDictionary.itemsc              	   c   sJ   | j r|  ¡  t| ƒ�* | j ¡ D ]\}}|ƒ d k	r"|V  q"W 5 Q R X d S r'   re   )r   rf   r=   r   r   r   ÚkeysÕ   s    

zWeakValueDictionary.keysc              	   c   s6   | j r|  ¡  t| ƒ� | j ¡ E d H  W 5 Q R X d S r'   ©r9   rH   r   r<   ÚvaluesrQ   r   r   r   Úitervaluerefsß   s    

z!WeakValueDictionary.itervaluerefsc              	   c   sJ   | j r|  ¡  t| ƒ�* | j ¡ D ]}|ƒ }|d k	r"|V  q"W 5 Q R X d S r'   ri   ©r   r=   r%   r   r   r   rj   î   s    
zWeakValueDictionary.valuesc                 C   s8   | j r|  ¡  | j ¡ \}}|ƒ }|d k	r||fS qd S r'   )r9   rH   r<   Úpopitem)r   r;   r=   rL   r   r   r   rm   ÷   s    zWeakValueDictionary.popitemc                 G   s`   | j r|  ¡  z| j |¡ƒ }W n tk
r8   d }Y nX |d krX|rN|d S t|ƒ‚n|S d S )Nr   )r9   rH   r<   rE   rJ   )r   r;   ÚargsrL   r   r   r   rE      s    

zWeakValueDictionary.popc                 C   s`   z| j | ƒ }W n tk
r(   d }Y nX |d krX| jr@|  ¡  t|| j|ƒ| j |< |S |S d S r'   )r<   rJ   r9   rH   rX   r@   )r   r;   rc   rL   r   r   r   Ú
setdefault  s    
zWeakValueDictionary.setdefaultc                K   sz   | j r|  ¡  | j}|d k	rRt|dƒs.t|ƒ}| ¡ D ]\}}t|| j|ƒ||< q6| ¡ D ]\}}t|| j|ƒ||< qZd S ©Nr\   )r9   rH   r<   ÚhasattrÚdictr\   rX   r@   )r   r/   ÚkwargsrG   r;   rL   r   r   r   rB     s    
zWeakValueDictionary.updatec                 C   s   | j r|  ¡  t| j ¡ ƒS r'   )r9   rH   Úlistr<   rj   rQ   r   r   r   Ú	valuerefs(  s    
zWeakValueDictionary.valuerefs)r   )N)N)N)r2   r3   r4   rD   rH   rM   rO   rR   rS   rW   r[   r^   Ú__copy__rb   rd   r\   rh   Ú__iter__rk   rj   rm   rE   ro   rB   ru   r   r   r   r   r   Z   s,   
			
			

c                       s(   e Zd ZdZdd„ Z‡ fdd„Z‡  ZS )rX   ©r;   c                 C   s   t  | ||¡}||_|S r'   )r   r#   r;   )r"   Úobr   r;   r   r   r   r   r#   C  s    zKeyedRef.__new__c                    s   t ƒ  ||¡ d S r'   )r(   rD   )r   ry   r   r;   r*   r   r   rD   H  s    zKeyedRef.__init__)r2   r3   r4   r5   r#   rD   r7   r   r   r*   r   rX   7  s   
rX   c                   @   s¼   e Zd Zd*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eZdd„ Zd+dd„Zdd„ Zdd„ Zdd„ ZeZdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd,d&d'„Zd-d(d)„ZdS ).r   Nc                 C   sF   i | _ t| ƒfdd„}|| _g | _tƒ | _d| _|d k	rB|  |¡ d S )Nc                 S   s.   |ƒ }|d k	r*|j r"|j | ¡ n|j| = d S r'   )r8   r9   r:   r<   )rf   r>   r   r   r   r   r?   Y  s
    z*WeakKeyDictionary.__init__.<locals>.removeF)r<   r   r@   r9   rA   r8   Ú
_dirty_lenrB   )r   rr   r?   r   r   r   rD   W  s    zWeakKeyDictionary.__init__c                 C   s:   | j }| j}|r6z|| ¡ = W q tk
r2   Y qX qd S r'   )r9   r<   rE   rJ   )r   rF   rG   r   r   r   rH   h  s    z"WeakKeyDictionary._commit_removalsc                    s&   | j ‰ ‡ fdd„| jD ƒ| _d| _d S )Nc                    s   g | ]}|ˆ kr|‘qS r   r   )Ú.0rf   ©rG   r   r   Ú
<listcomp>w  s      z5WeakKeyDictionary._scrub_removals.<locals>.<listcomp>F)r<   r9   rz   rQ   r   r|   r   Ú_scrub_removalsu  s    z!WeakKeyDictionary._scrub_removalsc                 C   s   d| _ | jt|ƒ= d S r0   )rz   r<   r   rN   r   r   r   rO   z  s    zWeakKeyDictionary.__delitem__c                 C   s   | j t|ƒ S r'   )r<   r   rN   r   r   r   rM   ~  s    zWeakKeyDictionary.__getitem__c                 C   s(   | j r| jr|  ¡  t| jƒt| jƒ S r'   )rz   r9   r~   rP   r<   rQ   r   r   r   rR   �  s    zWeakKeyDictionary.__len__c                 C   s   d| j jt| ƒf S rT   rU   rQ   r   r   r   rW   ˆ  s    zWeakKeyDictionary.__repr__c                 C   s   || j t|| jƒ< d S r'   )r<   r   r@   rY   r   r   r   r[   ‹  s    zWeakKeyDictionary.__setitem__c              	   C   sH   t ƒ }t| ƒ�0 | j ¡ D ]\}}|ƒ }|d k	r|||< qW 5 Q R X |S r'   )r   r   r<   r\   )r   r]   r;   rZ   rL   r   r   r   r^   Ž  s    
zWeakKeyDictionary.copyc              	   C   s\   ddl m} |  ¡ }t| ƒ�6 | j ¡ D ]$\}}|ƒ }|d k	r(|||ƒ||< q(W 5 Q R X |S r_   )r^   r`   r+   r   r<   r\   )r   ra   r`   r]   r;   rZ   rL   r   r   r   rb   ™  s    
zWeakKeyDictionary.__deepcopy__c                 C   s   | j  t|ƒ|¡S r'   )r<   rd   r   ©r   r;   rc   r   r   r   rd   £  s    zWeakKeyDictionary.getc                 C   s.   zt |ƒ}W n tk
r"   Y dS X || jkS r   )r   r    r<   )r   r;   r=   r   r   r   rS   ¦  s
    zWeakKeyDictionary.__contains__c              	   c   sD   t | ƒ�2 | j ¡ D ] \}}|ƒ }|d k	r||fV  qW 5 Q R X d S r'   ©r   r<   r\   )r   r=   rZ   r;   r   r   r   r\   ­  s
    
zWeakKeyDictionary.itemsc              	   c   s8   t | ƒ�& | jD ]}|ƒ }|d k	r|V  qW 5 Q R X d S r'   )r   r<   rl   r   r   r   rh   ´  s
    

zWeakKeyDictionary.keysc              	   c   s<   t | ƒ�* | j ¡ D ]\}}|ƒ d k	r|V  qW 5 Q R X d S r'   r€   )r   r=   rZ   r   r   r   rj   ½  s    

zWeakKeyDictionary.valuesc                 C   s
   t | jƒS r'   )rt   r<   rQ   r   r   r   ÚkeyrefsÃ  s    
zWeakKeyDictionary.keyrefsc                 C   s0   d| _ | j ¡ \}}|ƒ }|d k	r||fS qd S r0   )rz   r<   rm   )r   r;   rZ   rL   r   r   r   rm   Ï  s
    zWeakKeyDictionary.popitemc                 G   s   d| _ | jjt|ƒf|žŽ S r0   )rz   r<   rE   r   )r   r;   rn   r   r   r   rE   ×  s    zWeakKeyDictionary.popc                 C   s   | j  t|| jƒ|¡S r'   )r<   ro   r   r@   r   r   r   r   ro   Û  s    zWeakKeyDictionary.setdefaultc                K   s\   | j }|d k	rFt|dƒs$ti ƒ|ƒ}| ¡ D ]\}}||t|| jƒ< q,t|ƒrX|  |¡ d S rp   )r<   rq   r"   r\   r   r@   rP   rB   )r   rr   rs   rG   r;   rZ   r   r   r   rB   Þ  s    
zWeakKeyDictionary.update)N)N)N)N)r2   r3   r4   rD   rH   r~   rO   rM   rR   rW   r[   r^   rv   rb   rd   rS   r\   rh   rw   rj   r�   rm   rE   ro   rB   r   r   r   r   r   L  s,   
	


c                   @   s¤   e Zd ZdZi ZdZe ¡ ZdZ	dZ
G dd„ dƒZdd„ Zde_dd	d
„Zdd„ Zdd„ Zedd„ ƒZedd„ ƒZejdd„ ƒZdd„ Zedd„ ƒZedd„ ƒZdS )r   r   Fc                   @   s   e Zd ZdZdS )zfinalize._Info)Úweakrefr&   rn   rs   ÚatexitÚindexN)r2   r3   r4   r5   r   r   r   r   Ú_Info  s   r…   c                  O   s>  t | ƒdkr| ^}}}} nª| s(tdƒ‚nœd|krDtdt | ƒd  ƒ‚| d¡}t | ƒdkr~| ^}}} dd l}|jdtdd	� nFd
|krštdt | ƒd  ƒ‚| d
¡}| ^}} dd l}|jdtdd	� t| ƒ} |jsìdd l}| 	|j
¡ dt_| ¡ }t||ƒ|_||_| |_|�pd |_d|_t|jƒ|_||j|< dt_d S )Né   z<descriptor '__init__' of 'finalize' object needs an argumentr&   z9finalize expected at least 2 positional arguments, got %dé   é   r   z0Passing 'func' as keyword argument is deprecated)Ú
stacklevelr%   z/Passing 'obj' as keyword argument is deprecatedT)rP   r    rE   ÚwarningsÚwarnÚDeprecationWarningÚtupleÚ_registered_with_atexitrƒ   ÚregisterÚ	_exitfuncr   r…   r   r‚   r&   rn   rs   ÚnextÚ_index_iterr„   Ú	_registryÚ_dirty)rn   rs   r   r%   r&   rŠ   rƒ   Úinfor   r   r   rD     sR    

ÿ

 ÿ
ÿ
 ÿ
zfinalize.__init__z&($self, obj, func, /, *args, **kwargs)Nc                 C   s0   | j  | d ¡}|r,| js,|j|j|jp(i ŽS d S r'   )r“   rE   Ú	_shutdownr&   rn   rs   )r   Ú_r•   r   r   r   r)   1  s    
zfinalize.__call__c                 C   sH   | j  | ¡}|o| ¡ }|d k	rD| j  | d ¡rD||j|j|jp@i fS d S r'   )r“   rd   r‚   rE   r&   rn   rs   ©r   r•   r%   r   r   r   Údetach8  s    zfinalize.detachc                 C   s:   | j  | ¡}|o| ¡ }|d k	r6||j|j|jp2i fS d S r'   )r“   rd   r‚   r&   rn   rs   r˜   r   r   r   Úpeek@  s    zfinalize.peekc                 C   s
   | | j kS r'   )r“   rQ   r   r   r   ÚaliveH  s    zfinalize.alivec                 C   s   | j  | ¡}t|ƒo|jS r'   ©r“   rd   Úboolrƒ   )r   r•   r   r   r   rƒ   M  s    zfinalize.atexitc                 C   s   | j  | ¡}|rt|ƒ|_d S r'   rœ   )r   rZ   r•   r   r   r   rƒ   S  s    c                 C   s^   | j  | ¡}|o| ¡ }|d kr6dt| ƒjt| ƒf S dt| ƒjt| ƒt|ƒjt|ƒf S d S )Nz<%s object at %#x; dead>z!<%s object at %#x; for %r at %#x>)r“   rd   r‚   r"   r2   rV   r˜   r   r   r   rW   Y  s    ÿzfinalize.__repr__c                 C   s2   dd„ | j  ¡ D ƒ}|jdd„ d� dd„ |D ƒS )Nc                 S   s   g | ]\}}|j r||f‘qS r   )rƒ   ©r{   ÚfÚir   r   r   r}   e  s      z-finalize._select_for_exit.<locals>.<listcomp>c                 S   s
   | d j S )Nr‡   )r„   )Úitemr   r   r   Ú<lambda>f  ó    z+finalize._select_for_exit.<locals>.<lambda>rx   c                 S   s   g | ]\}}|‘qS r   r   rž   r   r   r   r}   g  s     )r“   r\   Úsort)r$   ÚLr   r   r   Ú_select_for_exitb  s    zfinalize._select_for_exitc                 C   s¢   d}z„| jr†dd l}| ¡ r(d}| ¡  d }|d ks:t jrH|  ¡ }dt _|sNq†| 	¡ }z
|ƒ  W q, t
k
r‚   tjt ¡ Ž  Y q,X q,W 5 dt _|rœ| ¡  X d S )NFTr   )r   r–   Zenabler“   ÚgcZ	isenabledZdisabler”   r¦   rE   Ú	ExceptionÚsysÚ
excepthookÚexc_info)r$   Zreenable_gcr§   ZpendingrŸ   r   r   r   r�   i  s,    
zfinalize._exitfunc)N)r2   r3   r4   r5   r“   r–   Ú	itertoolsÚcountr’   r”   rŽ   r…   rD   Ú__text_signature__r)   r™   rš   Úpropertyr›   rƒ   ÚsetterrW   Úclassmethodr¦   r�   r   r   r   r   r   é  s.   *



	
)Ú_weakrefr   r   r   r   r   r   r   r	   Z_weakrefsetr
   r   Ú_collections_abcr©   r¬   r   Ú__all__r   ÚMutableMappingr   rX   r   r   r   r   r   r   Ú<module>   s.   (
      ý6 ^ 