a �DOg-�@s(ddlmZdd�ZGdd�de�ZdS)�)�WeakSetcCstjS�N)�ABCMeta�_abc_invalidation_counter�rr�/usr/lib64/python3.9/_py_abc.py�get_cache_tokensrcsReZdZdZ�fdd�Zdd�Zddd�Zd d �Zd d �Zd d�Z dd�Z �Z S)rrc  s�t�j||||fi|��}dd�|��D�}|D]:}t|dt��D]&}t||d�}t|dd�rB|�|�qBq0t|�|_t�|_ t�|_ t�|_ t j |_|S)NcSs h|]\}}t|dd�r|�qS)�__isabstractmethod__F)�getattr)�.0�name�valuerrr� &s �z"ABCMeta.__new__..�__abstractmethods__r F)�super�__new__�itemsr �set�add� frozensetrr� _abc_registry� _abc_cache�_abc_negative_cacherr�_abc_negative_cache_version) �mclsr �bases� namespace�kwargs�clsZ abstracts�baser �� __class__rrr#s�   zABCMeta.__new__cCsPt|t�std��t||�r |St||�r2td��|j�|�tjd7_|S)NzCan only register classesz'Refusing to create an inheritance cycle�) � isinstance�type� TypeError� issubclass� RuntimeErrorrrrr)r�subclassrrr�register6s    zABCMeta.registerNcCs|td|j�d|j��|d�tdt���|d�|jD]@}|�d�r6t||�}t|t�r`t |�}t|�d|��|d�q6dS)NzClass: �.)�filezInv. counter: �_abc_z: ) �print� __module__� __qualname__r�__dict__� startswithr r#rr)rr+r r rrr�_dump_registryHs    zABCMeta._dump_registrycCs|j��dSr)r�clear�rrrr�_abc_registry_clearSszABCMeta._abc_registry_clearcCs|j��|j��dSr)rr3rr4rrr�_abc_caches_clearWs zABCMeta._abc_caches_clearcsb|j}|�jvrdSt|�}||urH�jtjkr>|�jvr>dS��|�St�fdd�||fD��S)NTFc3s|]}��|�VqdSr)�__subclasscheck__)r �cr4rr� j�z,ABCMeta.__instancecheck__..) r!rr$rrrrr7�any)r�instancer(Zsubtyperr4r�__instancecheck__\s �� zABCMeta.__instancecheck__cCst|t�std��||jvr dS|jtjkr>t�|_tj|_n||jvrLdS|� |�}|t ur�|rp|j� |�n |j� |�|S|t |dd�vr�|j� |�dS|j D] }t||�r�|j� |�dSq�|��D] }t||�r�|j� |�dSq�|j� |�dS)Nz"issubclass() arg 1 must be a classTF�__mro__r)r#r$r%rrrrrr�__subclasshook__�NotImplementedrr rr&�__subclasses__)rr(�okZrclsZsclsrrrr7ls8               zABCMeta.__subclasscheck__)N) �__name__r.r/rrr)r2r5r6r=r7� __classcell__rrr rrs  rN)� _weakrefsetrrr$rrrrr�s