B
    u9a                 @   s   d d Z G dd deZG dd deZG dd deZy,dd	lmZm	Z	m
Z
mZmZmZmZmZ W n* ek
r   dd
lmZmZ de_Y nX G dd deZG dd dedZdS )c             C   s
   d| _ | S )NT)__isabstractmethod__)funcobj r   /usr/lib/python3.7/abc.pyabstractmethod   s    r   c                   s    e Zd ZdZ fddZ  ZS )abstractclassmethodTc                s   d|_ t | d S )NT)r   super__init__)selfcallable)	__class__r   r   r   -   s    zabstractclassmethod.__init__)__name__
__module____qualname__r   r   __classcell__r   r   )r   r   r      s   r   c                   s    e Zd ZdZ fddZ  ZS )abstractstaticmethodTc                s   d|_ t | d S )NT)r   r   r   )r	   r
   )r   r   r   r   D   s    zabstractstaticmethod.__init__)r   r   r   r   r   r   r   r   )r   r   r   2   s   r   c               @   s   e Zd ZdZdS )abstractpropertyTN)r   r   r   r   r   r   r   r   r   I   s   r       )get_cache_token	_abc_init_abc_register_abc_instancecheck_abc_subclasscheck	_get_dump_reset_registry_reset_caches)ABCMetar   abcc                   sN   e Zd Z fddZdd Zdd Zdd Zdd
dZdd Zdd Z	  Z
S )r   c                s"   t  j| |||f|}t| |S )N)r   __new__r   )mclsnamebases	namespacekwargscls)r   r   r   r   }   s    zABCMeta.__new__c             C   s
   t | |S )N)r   )r#   subclassr   r   r   register   s    zABCMeta.registerc             C   s
   t | |S )N)r   )r#   instancer   r   r   __instancecheck__   s    zABCMeta.__instancecheck__c             C   s
   t | |S )N)r   )r#   r$   r   r   r   __subclasscheck__   s    zABCMeta.__subclasscheck__Nc             C   s   t d| j d| j |d t dt  |d t| \}}}}t d||d t d||d t d||d t d||d d S )	NzClass: .)filezInv. counter: z_abc_registry: z_abc_cache: z_abc_negative_cache: z_abc_negative_cache_version: )printr   r   r   r   )r#   r*   _abc_registry
_abc_cache_abc_negative_cache_abc_negative_cache_versionr   r   r   _dump_registry   s    
zABCMeta._dump_registryc             C   s   t |  d S )N)r   )r#   r   r   r   _abc_registry_clear   s    zABCMeta._abc_registry_clearc             C   s   t |  d S )N)r   )r#   r   r   r   _abc_caches_clear   s    zABCMeta._abc_caches_clear)N)r   r   r   r   r%   r'   r(   r0   r1   r2   r   r   r   )r   r   r   p   s   
r   c               @   s   e Zd ZdZdS )ABCr   N)r   r   r   	__slots__r   r   r   r   r3      s   r3   )	metaclassN)r   classmethodr   staticmethodr   propertyr   _abcr   r   r   r   r   r   r   r   ImportErrorZ_py_abcr   r   typer3   r   r   r   r   <module>   s   ,6