Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib64/python3.7/site-packages/zope/interface/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/zope/interface/__pycache__/adapter.cpython-37.pyc

B

R^�^�@s:dZddlZddlmZddlmZddlmZddlmZddlmZddl	m
Z
dd	l	mZdd
l	mZddgZ
Gd
d�de�Ze�ZeGdd�de��ZeGdd�de��ZGdd�de�ZGdd�dee�Zee�Gdd�de��ZGdd�dee�Zee�Gdd�de��Zdd�Zdd�Zdd �Zd!d"�ZdS)#zAdapter management
�N)�implementer)�
providedBy)�	Interface)�ro)�IAdapterRegistry)�_normalize_name)�STRING_TYPES)�_use_c_impl�AdapterRegistry�VerifyingAdapterRegistryc@s~eZdZdZdZddd�Zdd�Zedd	�d
d	��Zdd�Z	d
d�Z
dd�Zddd�Zddd�Z
dd�Zd dd�Zdd�ZdS)!�BaseAdapterRegistry)	�lookup�queryMultiAdapter�lookup1�queryAdapter�adapter_hook�	lookupAll�names�
subscriptions�subscribersr�cCs$g|_g|_i|_|��||_dS)N)�	_adapters�_subscribers�	_provided�
_createLookup�	__bases__)�self�basesrr�I/opt/alt/python37/lib64/python3.7/site-packages/zope/interface/adapter.py�__init__=s
zBaseAdapterRegistry.__init__cCs$||jd<t�|�|_|�|�dS)Nr)�__dict__r�changed)rrrrr�	_setBasesls
zBaseAdapterRegistry._setBasescCs
|jdS)Nr)r )rrrr�<lambda>q�zBaseAdapterRegistry.<lambda>cCs
|�|�S)N)r")rrrrrr#rr$cCs2|�|�|_x |jD]}t|j|�|j|<qWdS)N)�LookupClass�	_v_lookup�
_delegated�getattrr )r�namerrrrusz!BaseAdapterRegistry._createLookupcCs|jd7_|j�|�dS)N�)�_generationr&r!)r�originally_changedrrrr!zszBaseAdapterRegistry.changedcCst|t�std��|dkr.|�||||�dStdd�|D��}t|�}t|�}|j}xt|�|krp|�i�qXW||}||f}x.|D]&}	|�	|	�}
|
dkr�i}
|
||	<|
}q�W|�	|�|kr�dS|||<|j
�	|d�d}||j
|<|dkr�|j�|�|�
|�dS)Nzname is not a stringcSsg|]}t|��qSr)�_convert_None_to_Interface)�.0�rrrr�
<listcomp>�sz0BaseAdapterRegistry.register.<locals>.<listcomp>rr*)�
isinstancer�
ValueError�
unregister�tupler�lenr�append�getrr&�add_extendorr!)r�required�providedr)�value�order�byorder�
components�key�k�d�nrrr�register~s6




zBaseAdapterRegistry.register�c
Cs|tdd�|D��}t|�}t|�}|j}t|�|kr8dS||}||f}x&|D]}|�|�}	|	dkrjdS|	}qPW|�|�S)NcSsg|]}t|��qSr)r-)r.r/rrrr0�sz2BaseAdapterRegistry.registered.<locals>.<listcomp>)r4rr5rr7)
rr9r:r)r<r=r>r?r@rArrr�
registered�s


zBaseAdapterRegistry.registeredNcCs:tdd�|D��}t|�}|j}|t|�kr0dS||}||f}g}	x4|D],}
|�|
�}|dkrfdS|	�||
f�|}qLW|�|�}|dkr�dS|dk	r�||k	r�dS||=|s�x*t|	�D]\}
}
|
|
}|r�Pq�|
|
=q�Wx|r�|ds�|d=q�W|j|d}|dk�r"|j|=|j�|�n
||j|<|�	|�dS)NcSsg|]}t|��qSr)r-)r.r/rrrr0�sz2BaseAdapterRegistry.unregister.<locals>.<listcomp>F���r*r)
r4r5rr7r6�reversedrr&�remove_extendorr!)rr9r:r)r;r<r=r>r?�lookupsr@rA�old�comprBrrrr3�sD







zBaseAdapterRegistry.unregistercCs�tdd�|D��}d}t|�}|j}xt|�|kr>|�i�q&W||}||f}x.|D]&}	|�|	�}
|
dkrzi}
|
||	<|
}qXW|�|d�|f||<|dk	r�|j�|d�d}||j|<|dkr�|j�|�|�|�dS)NcSsg|]}t|��qSr)r-)r.r/rrrr0�sz1BaseAdapterRegistry.subscribe.<locals>.<listcomp>rDrrr*)	r4r5rr6r7rr&r8r!)rr9r:r;r)r<r=r>r?r@rArBrrr�	subscribe�s*



zBaseAdapterRegistry.subscribecsltdd�|D��}t|�}|j}|t|�kr0dS||}||f}g}x4|D],}	|�|	�}
|
dkrfdS|�||	f�|
}qLW|�d�}|s�dS�dkr�d}nt�fdd�|D��}||kr�dS|r�||d<nP|d=x*t|�D]\}
}	|
|	}
|
r�Pq�|
|	=q�Wx|�r|d�s|d=�qW|dk	�r^|j|t|�t|�}|dk�r^|j|=|j�|�|�	|�dS)NcSsg|]}t|��qSr)r-)r.r/rrrr0sz3BaseAdapterRegistry.unsubscribe.<locals>.<listcomp>rDrcsg|]}|�kr|�qSrr)r.�v)r;rrr0srFr)
r4r5rr7r6rGrr&rHr!)rr9r:r;r<r=r>r?rIr@rArJ�newrKrBr)r;r�unsubscribe�sL







zBaseAdapterRegistry.unsubscribecCsGdd�d�}|S)Nc@seZdZiZdS)z2BaseAdapterRegistry.get.<locals>.XXXTwistedFakeOutN)�__name__�
__module__�__qualname__ZselfImpliedrrrr�XXXTwistedFakeOut<srSr)r�_rSrrrr7;szBaseAdapterRegistry.get)r)rD)N)N)rPrQrRr'r+rr"�propertyrrr!rCrEr3rLrOr7rrrrr2s
/
#

0
<rcsfeZdZdd�Zddd�Zdd�Zdd	d
�Zddd�Zdd
d�Zd�fdd�	Z	dd�Z
dd�Z�ZS)�
LookupBasecCsi|_i|_i|_dS)N)�_cache�_mcache�_scache)rrrrrFszLookupBase.__init__NcCs"|j��|j��|j��dS)N)rW�clearrXrY)r�ignoredrrrr!Ks

zLookupBase.changedcCsL|j�|�}|dkr"i}||j|<|rH|�|�}|dkrDi}|||<|}|S)N)rWr7)rr:r)�cache�crrr�	_getcachePs

zLookupBase._getcacherDcCs�t|t�std��|�||�}t|�}t|�dkrD|�|dt�}n|�t|�t�}|tkr�|�|||�}t|�dkr�|||d<n||t|�<|dkr�|S|S)Nzname is not a stringr*r)	r1rr2r^r4r5r7�_not_in_mapping�_uncached_lookup)rr9r:r)�defaultr\�resultrrrr
]s
zLookupBase.lookupcCsTt|t�std��|�||�}|�|t�}|tkrD|�|f|||�S|dkrP|S|S)Nzname is not a string)r1rr2r^r7r_r
)rr9r:r)rar\rbrrrrss
zLookupBase.lookup1cCs|�||||�S)N)r)r�objectr:r)rarrrr�szLookupBase.queryAdapterc	szt|t�std��t|�}|�||�}|�|t�}|tkrJ|�|f||�}|dk	rvt|t�rb|j	}||�}|dk	rv|S|S)Nzname is not a string)
r1rr2rr^r7r_r
�super�__self__)	rr:rcr)rar9r\�factoryrb)�	__class__rrr�s

zLookupBase.adapter_hookcCsV|j�|�}|dkr"i}||j|<t|�}|�|t�}|tkrR|�||�}|||<|S)N)rXr7r4r_�_uncached_lookupAll)rr9r:r\rbrrrr�s
zLookupBase.lookupAllcCsV|j�|�}|dkr"i}||j|<t|�}|�|t�}|tkrR|�||�}|||<|S)N)rYr7r4r_�_uncached_subscriptions)rr9r:r\rbrrrr�s
zLookupBase.subscriptions)N)rDN)rDN)rDN)rDN)
rPrQrRrr!r^r
rrrrr�
__classcell__rr)rgrrVCs



rVc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
VerifyingBasecCs4t�||�|jjdd�|_dd�|jD�|_dS)Nr*cSsg|]
}|j�qSr)r+)r.r/rrrr0�sz)VerifyingBase.changed.<locals>.<listcomp>)�LookupBaseFallbackr!�	_registryr�
_verify_ro�_verify_generations)rr,rrrr!�szVerifyingBase.changedcCs$dd�|jD�|jkr |�d�dS)NcSsg|]
}|j�qSr)r+)r.r/rrrr0�sz)VerifyingBase._verify.<locals>.<listcomp>)rnror!)rrrr�_verify�szVerifyingBase._verifycCs|��t�|||�S)N)rprlr^)rr:r)rrrr^�szVerifyingBase._getcachecCs|��t�|||�S)N)rprlr)rr9r:rrrr�szVerifyingBase.lookupAllcCs|��t�|||�S)N)rprlr)rr9r:rrrr�szVerifyingBase.subscriptionsN)rPrQrRr!rpr^rrrrrrrk�s
rkcs�eZdZ�fdd�Zd�fdd�	Zdd�Zdd	�Zd
d�Zdd
�Zddd�Z	d�fdd�	Z
dd�Zdd�Zdd�Z
dd�Z�ZS)�AdapterLookupBasecs&||_i|_|��tt|���dS)N)rm�	_required�init_extendorsrdrqr)r�registry)rgrrr�szAdapterLookupBase.__init__NcsJtt|��d�x*|j��D]}|�}|dk	r|�|�qW|j��dS)N)rdrqr!rr�keysrOrZ)rr[r/)rgrrr!�szAdapterLookupBase.changedcCs&i|_x|jjD]}|�|�qWdS)N)�
_extendorsrmrr8)r�prrrrs�sz AdapterLookupBase.init_extendorscsT|j}xH�jD]>}|�|d�}�fdd�|D��g�fdd�|D�||<qWdS)Nrcsg|]}��|�r|�qSr)�isOrExtends)r.�e)r:rrr0sz2AdapterLookupBase.add_extendor.<locals>.<listcomp>csg|]}��|�s|�qSr)rx)r.ry)r:rrr0s)rv�__iro__r7)rr:rv�i�	extendorsr)r:rr8�s
zAdapterLookupBase.add_extendorcs8|j}x,�jD]"}�fdd�|�|d�D�||<qWdS)Ncsg|]}|�kr|�qSrr)r.ry)r:rrr0sz5AdapterLookupBase.remove_extendor.<locals>.<listcomp>r)rvrzr7)rr:rvr{r)r:rrH	sz!AdapterLookupBase.remove_extendorcGs:|j}x.|D]&}|��}||kr|�|�d||<qWdS)Nr*)rr�weakrefrL)rr9Z_refsr/�refrrr�
_subscribes

zAdapterLookupBase._subscriberDc
Cs�t|�}d}t|�}x\|jjD]P}|j}|t|�kr6q|jj�|�}|sJq||}	t|	|||d|�}|dk	rPqW|j	|�|S)Nr)
r4r5rmrrr&rvr7�_lookupr)
rr9r:r)rbr<rtr=r|r>rrrr`s"
z"AdapterLookupBase._uncached_lookupcsJ|�dd�|D�||�}|dkr$|S|�fdd�|D��}|dkrF|S|S)NcSsg|]}t|��qSr)r)r.�orrrr00sz7AdapterLookupBase.queryMultiAdapter.<locals>.<listcomp>cs g|]}t|t�r|jn|�qSr)r1rdre)r.r�)rgrrr04s)r
)r�objectsr:r)rarfrb)rgrrr/sz#AdapterLookupBase.queryMultiAdapterc	Cs�t|�}t|�}i}xVt|jj�D]F}|j}|t|�kr:q"|jj�|�}|sNq"||}t	||||d|�q"W|j
|�t|���S)Nr)r4r5rGrmrrr&rvr7�
_lookupAllr�items)	rr9r:r<rbrtr=r|r>rrrrh:s
z%AdapterLookupBase._uncached_lookupAllcCsdd�|�||�D�S)NcSsg|]}|d�qS)rr)r.r]rrrr0Msz+AdapterLookupBase.names.<locals>.<listcomp>)r)rr9r:rrrrLszAdapterLookupBase.namesc	Cs�t|�}t|�}g}xht|jj�D]X}|j}|t|�kr:q"|dkrJ|f}n|jj�|�}|dkrbq"t	||||d|d|�q"W|j
|�|S)NrDr)r4r5rGrmrrr&rvr7�_subscriptionsr)rr9r:r<rbrtr=r|rrrriOs 
z)AdapterLookupBase._uncached_subscriptionscCsj|�dd�|D�|�}|dkr:d}xB|D]}||�q(Wn,g}x&|D]}||�}|dk	rD|�|�qDW|S)NcSsg|]}t|��qSr)r)r.r�rrrr0gsz1AdapterLookupBase.subscribers.<locals>.<listcomp>r)rr6)rr�r:rrbZsubscriptionZ
subscriberrrrrfs

zAdapterLookupBase.subscribers)N)rD)rDN)rPrQrRrr!rsr8rHrr`rrhrrirrjrr)rgrrq�s
rqc@seZdZdS)�
AdapterLookupN)rPrQrRrrrrr�tsr�csJeZdZeZd�fdd�	Zdd�Zdd�Z�fdd	�Z�fd
d�Z	�Z
S)
r
rcst��|_tt|��|�dS)N)r}�WeakKeyDictionary�_v_subregistriesrdr
r)rr)rgrrr|s
zAdapterRegistry.__init__cCsd|j|<dS)Nr*)r�)rr/rrr�_addSubregistry�szAdapterRegistry._addSubregistrycCs||jkr|j|=dS)N)r�)rr/rrr�_removeSubregistry�s
z"AdapterRegistry._removeSubregistrycsb|j�dd�}x|D]}||kr|�|�qWx|D]}||kr4|�|�q4Wtt|��|�dS)Nrr)r r7r�r�rdr
r")rrrJr/)rgrrr"�s

zAdapterRegistry._setBasescs2tt|��|�x|j��D]}|�|�qWdS)N)rdr
r!r�ru)rr,�sub)rgrrr!�szAdapterRegistry.changed)r)rPrQrRr�r%rr�r�r"r!rjrr)rgrr
wsc@seZdZdS)�VerifyingAdapterLookupN)rPrQrRrrrrr��sr�c@seZdZeZdS)rN)rPrQrRr�r%rrrrr�scCs|dkrtS|SdS)N)r)�xrrrr-�sr-cCs�|j}||krRxr||jD]2}||�}|rt|||||d|�}	|	dk	r|	SqWn0x.|D]&}
||
�}|rX|�|�}	|	dk	rX|	SqXWdS)Nr*)r7�__sro__r�)r>�specsr:r)r{�l�components_get�spec�compsr/�ifacerrrr��s


r�c
Csv|j}||krJxbt||j�D]&}||�}|rt|||||d|�qWn(x&t|�D]}	||	�}|rT|�|�qTWdS)Nr*)r7rGr�r��update)
r>r�r:rbr{r�r�r�r�r�rrrr��sr�c	Cs�|j}||krLxrt||j�D](}||�}	|	rt|	|||||d|�qWn6x4t|�D](}
||
�}	|	rV|	�|�}	|	rV|�|	�qVWdS)Nr*)r7rGr�r��extend)r>r�r:r)rbr{r�r�r�r�r�rrrr��s
r�)�__doc__r}Zzope.interfacerrrrZzope.interface.interfacesrZzope.interface._compatrrr	�__all__rcrr_rVrlrkrqr�r
r�rr-r�r�r�rrrr�<module>s>o$$