HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/zope/interface/__pycache__/adapter.cpython-38.pyc
U

ؒ�]|[�@s~dZddlZddlmZddlmZddlmZddlmZddlmZddl	m
Z
dd	l	mZd
ZGdd�de
�Ze
�ZGd
d�de
�ZeZzddlmZWnek
r�eZYnXGdd�de�ZeZzddlmZWnek
r�eZYnXGdd�de
�ZGdd�dee�Zee�Gdd�de��ZGdd�dee�Zee�Gdd�de��Zdd�Zdd �Zd!d"�Zd#d$�Z dS)%zAdapter management
�N)�implementer)�
providedBy��	Interface)�ro)�IAdapterRegistry)�_normalize_name)�STRING_TYPES�c@s�eZdZdZdZddd�Zdd�Zedd	�d
d	��Zdd�Z	d
d�Z
dd�Zefdd�Z
ddd�Zdd�Zddd�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�8/usr/lib/python3/dist-packages/zope/interface/adapter.py�__init__(s
zBaseAdapterRegistry.__init__cCs$||jd<t�|�|_|�|�dS�Nr)�__dict__r�changedrrrr�	_setBasesWs
zBaseAdapterRegistry._setBasescCs
|jdSr!)r"�rrrr�<lambda>\�zBaseAdapterRegistry.<lambda>cCs
|�|�Sr)r$rrrrr&]r'cCs.|�|�|_|jD]}t|j|�|j|<qdSr)�LookupClass�	_v_lookup�
_delegated�getattrr")r�namerrrr`s
z!BaseAdapterRegistry._createLookupcCs|jd7_|j�|�dS�N�)�_generationr)r#�r�originally_changedrrrr#eszBaseAdapterRegistry.changedcCst|t�std��|dkr.|�||||�dSttt|��}t|�}t|�}|j	}t|�|krj|�
i�qR||}||f}|D]&}	|�|	�}
|
dkr�i}
|
||	<|
}q�|�|�|kr�dS|||<|j�|d�d}||j|<|dkr�|j
�|�|�|�dS)N�name is not a stringrr.)�
isinstancer	�
ValueError�
unregister�tuple�map�_convert_None_to_Interfacer�lenr�append�getrr)�add_extendorr#)r�required�providedr,�value�order�byorder�
components�key�k�d�nrrr�registeris6



zBaseAdapterRegistry.registerc
Csvttt|��}t|�}t|�}|j}t|�|kr4dS||}||f}|D] }|�|�}	|	dkrfdS|	}qJ|�|�Sr)r6r7r8rr9rr;)
rr=r>r,r@rArBrCrDrErrr�
registered�s

zBaseAdapterRegistry.registeredNcCs.ttt|��}t|�}|j}|t|�kr,dS||}||f}g}	|D].}
|�|
�}|dkrbdS|	�||
f�|}qF|�|�}|dkr�dS|dk	r�||k	r�dS||=|s�t|	�D] \}
}
|
|
}|r�q�q�|
|
=q�|r�|ds�|d=q�|j|d}|dk�r|j|=|j	�
|�n
||j|<|�|�dS)NF���r.r)r6r7r8r9rr;r:�reversedrr)�remove_extendorr#)rr=r>r,r?r@rArBrC�lookupsrDrE�old�comprFrrrr5�sD




zBaseAdapterRegistry.unregistercCs�ttt|��}t}t|�}|j}t|�|kr8|�i�q ||}||f}|D]&}	|�|	�}
|
dkrpi}
|
||	<|
}qN|�|d�|f||<|dk	r�|j�|d�d}||j|<|dkr�|j	�
|�|�|�dS)Nrrr.)r6r7r8�_BLANKr9rr:r;rr)r<r#)rr=r>r?r,r@rArBrCrDrErFrrr�	subscribe�s*


zBaseAdapterRegistry.subscribecs^ttt|��}t|�}|j}|t|�kr,dS||}||f}g}|D].}	|�|	�}
|
dkrbdS|�||	f�|
}qF|�t�}|s�dS�dkr�d}nt�fdd�|D��}||kr�dS|r�||t<nH|t=t|�D] \}
}	|
|	}
|
r�q�q�|
|	=q�|�r|d�s|d=q�|dk	�rP|j	|t|�t|�}|dk�rP|j	|=|j
�|�|�|�dS)Nrcsg|]}|�kr|�qSrr)�.0�v�r?rr�
<listcomp>sz3BaseAdapterRegistry.unsubscribe.<locals>.<listcomp>rIr)
r6r7r8r9rr;r:rOrJrr)rKr#)rr=r>r?r@rArBrCrLrDrErM�newrNrFrrSr�unsubscribe�sL





zBaseAdapterRegistry.unsubscribecCsGdd�d�}|S)Nc@seZdZiZdS)z2BaseAdapterRegistry.get.<locals>.XXXTwistedFakeOutN)�__name__�
__module__�__qualname__ZselfImpliedrrrr�XXXTwistedFakeOut'srZr)r�_rZrrrr;&szBaseAdapterRegistry.get)r)N)N)rWrXrYr*r/r r$�propertyrrr#rGrOrHr5rPrVr;rrrrrs
/�#
0
<rc@sneZdZdd�Zddd�Zdd�Zedfdd	�Zedfd
d�Zedfdd
�Z	edfdd�Z
dd�Zdd�ZdS)�LookupBaseFallbackcCsi|_i|_i|_dSr)�_cache�_mcache�_scacher%rrrr /szLookupBaseFallback.__init__NcCs"|j��|j��|j��dSr)r^�clearr_r`)r�ignoredrrrr#4s

zLookupBaseFallback.changedcCsL|j�|�}|dkr"i}||j|<|rH|�|�}|dkrDi}|||<|}|Sr)r^r;)rr>r,�cache�crrr�	_getcache9s

zLookupBaseFallback._getcachecCs�t|t�std��|�||�}t|�}t|�dkrD|�|dt�}n|�t|�t�}|tkr�|�|||�}t|�dkr�|||d<n||t|�<|dkr�|S|S)Nr2r.r)	r3r	r4rer6r9r;�_not_in_mapping�_uncached_lookup�rr=r>r,�defaultrc�resultrrrrFs
zLookupBaseFallback.lookupcCsTt|t�std��|�||�}|�|t�}|tkrD|�|f|||�S|dkrP|S|S�Nr2)r3r	r4rer;rfrrhrrrr\s
zLookupBaseFallback.lookup1cCs|�||||�Sr)r)r�objectr>r,rirrrriszLookupBaseFallback.queryAdapterc	Csjt|t�std��t|�}|�||�}|�|t�}|tkrJ|�|f||�}|dk	rf||�}|dk	rf|S|Srk)r3r	r4rrer;rfr)	rr>rlr,rir=rc�factoryrjrrrrls
zLookupBaseFallback.adapter_hookcCsV|j�|�}|dkr"i}||j|<t|�}|�|t�}|tkrR|�||�}|||<|Sr)r_r;r6rf�_uncached_lookupAll�rr=r>rcrjrrrr|s
zLookupBaseFallback.lookupAllcCsV|j�|�}|dkr"i}||j|<t|�}|�|t�}|tkrR|�||�}|||<|Sr)r`r;r6rf�_uncached_subscriptionsrorrrr�s
z LookupBaseFallback.subscriptions)N)
rWrXrYr r#rerOrrrrrrrrrrr]-s


r])�
LookupBasec@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�VerifyingBaseFallbackcCs4t�||�|jjdd�|_dd�|jD�|_dS)Nr.cSsg|]
}|j�qSr�r/�rQ�rrrrrT�sz1VerifyingBaseFallback.changed.<locals>.<listcomp>)r]r#�	_registryr�
_verify_ro�_verify_generationsr0rrrr#�szVerifyingBaseFallback.changedcCs$dd�|jD�|jkr |�d�dS)NcSsg|]
}|j�qSrrsrtrrrrT�sz1VerifyingBaseFallback._verify.<locals>.<listcomp>)rwrxr#r%rrr�_verify�s�zVerifyingBaseFallback._verifycCs|��t�|||�Sr)ryr]re)rr>r,rrrre�szVerifyingBaseFallback._getcachecCs|��t�|||�Sr)ryr]r�rr=r>rrrr�szVerifyingBaseFallback.lookupAllcCs|��t�|||�Sr)ryr]rrzrrrr�sz#VerifyingBaseFallback.subscriptionsN)rWrXrYr#ryrerrrrrrrr�s
rr)�
VerifyingBasecs�eZdZ�fdd�Zd�fdd�	Zdd�Zdd	�Zd
d�Zdd
�Ze	fdd�Z
e	dfdd�Zdd�Zdd�Z
dd�Zdd�Z�ZS)�AdapterLookupBasecs&||_i|_|��tt|���dSr)rv�	_required�init_extendors�superr|r )r�registry��	__class__rrr �szAdapterLookupBase.__init__NcsFtt|��d�|j��D]}|�}|dk	r|�|�q|j��dSr)rr|r#r}�keysrVra)rrbrur�rrr#�szAdapterLookupBase.changedcCs"i|_|jjD]}|�|�qdSr)�
_extendorsrvrr<)r�prrrr~�sz AdapterLookupBase.init_extendorscsP|j}�jD]>}|�|d�}�fdd�|D��g�fdd�|D�||<qdS)Nrcsg|]}��|�r|�qSr�ZisOrExtends�rQ�e�r>rrrT�s
z2AdapterLookupBase.add_extendor.<locals>.<listcomp>csg|]}��|�s|�qSrr�r�r�rrrT�s
�r�Z__iro__r;)rr>r��i�	extendorsrr�rr<�s
���zAdapterLookupBase.add_extendorcs4|j}�jD]"}�fdd�|�|d�D�||<qdS)Ncsg|]}|�kr|�qSrrr�r�rrrTs�z5AdapterLookupBase.remove_extendor.<locals>.<listcomp>rr�)rr>r�r�rr�rrK�s
z!AdapterLookupBase.remove_extendorcGs6|j}|D]&}|��}||kr
|�|�d||<q
dSr-)r}�weakrefrP)rr=Z_refsru�refrrr�
_subscribes
zAdapterLookupBase._subscribec
Cs~t|�}d}t|�}|jjD]R}|j}|t|�kr4q|jj�|�}|sHq||}	t|	|||d|�}|dk	rqpq|j	|�|S�Nr)
r6r9rvrrr)r�r;�_lookupr�)
rr=r>r,rjr@r�rAr�rBrrrrgs$�
z"AdapterLookupBase._uncached_lookupcCs8|�tt|�||�}|dkr |S||�}|dkr4|S|Sr)rr7r)r�objectsr>r,rirmrjrrrr
#sz#AdapterLookupBase.queryMultiAdapterc	Cs~t|�}t|�}i}t|jj�D]F}|j}|t|�kr8q |jj�|�}|sLq ||}t	||||d|�q |j
|�t|���Sr�)r6r9rJrvrrr)r�r;�
_lookupAllr��items)	rr=r>r@rjr�rAr�rBrrrrn.s
z%AdapterLookupBase._uncached_lookupAllcCsdd�|�||�D�S)NcSsg|]}|d�qS)rr)rQrdrrrrTAsz+AdapterLookupBase.names.<locals>.<listcomp>)rrzrrrr@szAdapterLookupBase.namesc	Cs�t|�}t|�}g}t|jj�D]X}|j}|t|�kr8q |dkrH|f}n|jj�|�}|dkr`q t	||||t
|d|�q |j|�|Sr�)r6r9rJrvrrr)r�r;�_subscriptionsrOr�)rr=r>r@rjr�rAr�rrrrpCs&�
z)AdapterLookupBase._uncached_subscriptionscCs^|�tt|�|�}|dkr2d}|D]}||�q"n(g}|D]}||�}|dk	r:|�|�q:|S)Nr)rr7rr:)rr�r>rrjZsubscriptionZ
subscriberrrrrZszAdapterLookupBase.subscribers)N)rWrXrYr r#r~r<rKr�rOrgr
rnrrpr�
__classcell__rrr�rr|�sr|c@seZdZdS)�
AdapterLookupN�rWrXrYrrrrr�hsr�csJeZdZeZd�fdd�	Zdd�Zdd�Z�fdd	�Z�fd
d�Z	�Z
S)
�AdapterRegistryrcst��|_tt|��|�dSr)r��WeakKeyDictionary�_v_subregistriesrr�r rr�rrr ps
zAdapterRegistry.__init__cCsd|j|<dSr-�r��rrurrr�_addSubregistrywszAdapterRegistry._addSubregistrycCs||jkr|j|=dSrr�r�rrr�_removeSubregistryzs
z"AdapterRegistry._removeSubregistrycsZ|j�dd�}|D]}||kr|�|�q|D]}||kr.|�|�q.tt|��|�dS)Nrr)r"r;r�r�rr�r$)rrrMrur�rrr$~szAdapterRegistry._setBasescs.tt|��|�|j��D]}|�|�qdSr)rr�r#r�r�)rr1�subr�rrr#�szAdapterRegistry.changed)r)rWrXrYr�r(r r�r�r$r#r�rrr�rr�ksr�c@seZdZdS)�VerifyingAdapterLookupNr�rrrrr��sr�c@seZdZeZdS)�VerifyingAdapterRegistryN)rWrXrYr�r(rrrrr��sr�cCs|dkrtS|SdSrr)�xrrrr8�sr8c
Cs�||krN||jD]8}|�|�}|rt|||||d|�}|dk	r|Sqn2|D],}	|�|	�}|rR|�|�}|dk	rR|SqRdSr-)�__sro__r;r�)
rB�specsr>r,r��l�spec�compsru�ifacerrrr��s



r�c	Csl||krBt||j�D](}|�|�}|rt|||||d|�qn&t|�D]}|�|�}|rJ|�|�qJdSr-)rJr�r;r��update)	rBr�r>rjr�r�r�r�r�rrrr��s

r�c
	Cs|||krDt||j�D]*}|�|�}|rt||||||d|�qn4t|�D]*}	|�|	�}|rL|�|�}|rL|�|�qLdSr-)rJr�r;r��extend)
rBr�r>r,rjr�r�r�r�r�rrrr��s


r�)!�__doc__r�Zzope.interfacerrrrZzope.interface.interfacesrZzope.interface._compatrr	rOrlrrfr]ZLookupBasePyZ-zope.interface._zope_interface_coptimizationsrq�ImportErrorrrZVerifyingBasePyr{r|r�r�r�r�r8r�r�r�rrrr�<module>sJl

$$