File: //proc/self/root/lib/python3/dist-packages/zope/interface/__pycache__/registry.cpython-38.pyc
U
ؒ�]�Z � @ s� d Z ddlmZ zddlmZ W n ek
r< dd� ZY nX ddlmZ ddlmZ ddlm Z dd lm
Z
dd
lmZ ddlmZ ddlm
Z
dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ G dd� de�Zdd� ZG dd� de�Zee
�G dd� de��Z dd � Z!d!d"� Z"d#d$� Z#d%d&� Z$ee
�G d'd(� d(e��Z%ee �G d)d*� d*e��Z&ee�G d+d,� d,e&��Z'ee�G d-d.� d.e&��Z(d/S )0zBasic components support
� )�defaultdict)�notifyc O s d S �N� )�arg�kwr r �9/usr/lib/python3/dist-packages/zope/interface/registry.pyr � r )�ISpecification)�ComponentLookupError)�IAdapterRegistration)�IComponents)�IHandlerRegistration)� ISubscriptionAdapterRegistration)�IUtilityRegistration)�
Registered)�Unregistered)� Interface)�
implementedBy)�implementer)�implementer_only)�
providedBy)�AdapterRegistry)�CLASS_TYPES)�STRING_TYPESc @ s, e Zd Zdd� Zdd� Zdd� Zdd� Zd S )
�_UnhashableComponentCounterc C s dd� |� � D �| _d S )Nc S s g | ]}|�qS r r )�.0�itemr r r �
<listcomp>0 s z8_UnhashableComponentCounter.__init__.<locals>.<listcomp>)�items�_data)�selfZ otherdictr r r �__init__. s z$_UnhashableComponentCounter.__init__c C s$ | j D ]\}}||kr| S qdS �Nr )r )r! �key� component�countr r r �__getitem__2 s
z'_UnhashableComponentCounter.__getitem__c C sH t | j�D ](\}}|d |kr
||f| j|<