B
    18\                 @   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__)Zfuncobj r   G/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/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   )ZmclsnameZbasesZ	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   Z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%   Z_abc_registryZ
_abc_cacheZ_abc_negative_cacheZ_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#   r'   r(   r)   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   r*      s   r*   )	metaclassN)r   classmethodr   staticmethodr   propertyr   Z_abcr   r   r   r   r   r   r   r   ImportErrorZ_py_abcr   r   typer*   r   r   r   r   <module>   s   ,6