U
e5d� � @ s� d d� Z G dd� de�ZG dd� de�ZG dd� de�Zz,dd lmZm Z m
Z
mZmZm
Z
mZmZ W n* ek
r� dd
lmZmZ de_Y nX G dd
� d
e�ZG dd� ded�ZdS )c C s
d| _ | S �NT)�__isabstractmethod__)�funcobj� r �/usr/lib64/python3.8/abc.py�abstractmethod s r c s e Zd ZdZ� fdd�Z� ZS )�abstractclassmethodTc s d|_ t� �|� d S r �r �super�__init__��self�callable�� __class__r r r
$ s zabstractclassmethod.__init__��__name__�
__module__�__qualname__r r
�
__classcell__r r r r r s r c s e Zd ZdZ� fdd�Z� ZS )�abstractstaticmethodTc s d|_ t� �|� d S r r r r r r r
1 s zabstractstaticmethod.__init__r r r r r r ) s r c @ s e Zd ZdZdS )�abstractpropertyTN)r r r r r r r r r 6 s r � )�get_cache_token� _abc_init�
_abc_register�_abc_instancecheck�_abc_subclasscheck� _get_dump�_reset_registry�
_reset_caches)�ABCMetar �abcc sN e Zd Z� fdd�Zdd� Zdd� Zdd� Zdd
d�Zdd
� Zdd� Z � Z
S )r c s" t � j| |||f|�}t|� |S �N)r �__new__r )�mcls�name�bases� namespace�kwargs�clsr r r r# T s zABCMeta.__new__c C s
t | |�S r" )r �r) �subclassr r r �registerY s zABCMeta.registerc C s
t | |�S r" )r )r) �instancer r r �__instancecheck__` s zABCMeta.__instancecheck__c C s
t | |�S r" )r r* r r r �__subclasscheck__d s zABCMeta.__subclasscheck__Nc C s� t d| j� d| j� �|d� t dt� � �|d� t| �\}}}}t d|��|d� t d|��|d� t d|��|d� t d|��|d� d S ) NzClass: �.)�filezInv. counter: z_abc_registry: z_abc_cache: z_abc_negative_cache: z_abc_negative_cache_version: )�printr r r r )r) r1 �
_abc_registry�
_abc_cache�_abc_negative_cache�_abc_negative_cache_versionr r r �_dump_registryh s �
�zABCMeta._dump_registryc C s t | � d S r" )r �r) r r r �_abc_registry_cleart s zABCMeta._abc_registry_clearc C s t | � d S r" )r r8 r r r �_abc_caches_clearx s zABCMeta._abc_caches_clear)N)r r r r# r, r. r/ r7 r9 r: r r r r r r G s
r c @ s e Zd ZdZdS )�ABCr N)r r r � __slots__r r r r r; } s r; )� metaclassN)r �classmethodr �staticmethodr �propertyr �_abcr r r r r r r r �ImportErrorZ_py_abcr r �typer; r r r r �