HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/mercurial/thirdparty/zope/interface/__pycache__/adapter.cpython-310.pyc
o

�]Lb.[�@s�dZddlmZddlZddlmZddlmZddlmZddlmZdd	l	m
Z
dd
lmZddlm
Z
dZGd
d�de�Ze�ZGdd�de�ZeZzddlmZWney`eZYnwGdd�de�ZeZzddlmZWney~eZYnwGdd�de�ZGdd�dee�Zee
�Gdd�de��ZGdd�dee�Zee
�Gdd�de��Zdd �Zd!d"�Z d#d$�Z!d%d&�Z"dS)'zAdapter management
�)�absolute_importN�)�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�M/usr/lib/python3/dist-packages/mercurial/thirdparty/zope/interface/adapter.py�__init__*s

zBaseAdapterRegistry.__init__cCs$||jd<t�|�|_|�|�dS�Nr)�__dict__r�changedrrrr!�	_setBasesYs
zBaseAdapterRegistry._setBasescCs
|jdSr#)r$�rrrr!�<lambda>^�
zBaseAdapterRegistry.<lambda>cCs
|�|�Sr)r&rrrr!r(_r)cCs.|�|�|_|jD]}t|j|�|j|<q	dSr)�LookupClass�	_v_lookup�
_delegated�getattrr$)r�namerrr!rbs
�z!BaseAdapterRegistry._createLookupcCs|jd7_|j�|�dS�Nr)�_generationr+r%�r�originally_changedrrr!r%gszBaseAdapterRegistry.changedcCs
t|t�s	td��|dur|�||||�dSttt|��}t|�}t|�}|j	}t|�|kr:|�
i�t|�|ks/||}||f}|D]}	|�|	�}
|
durVi}
|
||	<|
}qE|�|�|urbdS|||<|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!�registerks8

�


zBaseAdapterRegistry.registerc
Csvttt|��}t|�}t|�}|j}t|�|krdS||}||f}|D]}|�|�}	|	dur3dS|	}q%|�|�Sr)r7r8r9r
r:rr<)
rr>r?r.rArBrCrDrErFrrr!�
registered�s


zBaseAdapterRegistry.registeredNcCs4ttt|��}t|�}|j}|t|�krdS||}||f}g}	|D]}
|�|
�}|dur1dS|	�||
f�|}q#|�|�}|durFdS|durP||urPdS||=|sxt|	�D]\}
}
|
|
}|ren|
|
=qY|rx|dsx|d=|rx|dro|j|d}|dkr�|j|=|j	�
|�n||j|<|�|�dS)NF���rr)r7r8r9r:rr<r;�reversedrr+�remove_extendorr%)rr>r?r.r@rArBrCrD�lookupsrErF�old�comprGrrr!r6�sF


�
zBaseAdapterRegistry.unregistercCs�ttt|��}t}t|�}|j}t|�|kr!|�i�t|�|ks||}||f}|D]}	|�|	�}
|
dur=i}
|
||	<|
}q,|�|d�|f||<|durg|j�|d�d}||j|<|dkrg|j	�
|�|�|�dS)Nrrr)r7r8r9�_BLANKr:rr;r<rr+r=r%)rr>r?r@r.rArBrCrDrErFrGrrr!�	subscribe�s,
�


zBaseAdapterRegistry.subscribecs^ttt|��}t|�}|j}|t|�krdS||}||f}g}|D]}	|�|	�}
|
dur1dS|�||	f�|
}q#|�t�}|sDdS�durKd}nt�fdd�|D��}||kr\dS|rc||t<n&|t=t|�D]\}
}	|
|	}
|
rvn|
|	=qj|r�|ds�|d=|r�|dr�|dur�|j	|t|�t|�}|dkr�|j	|=|j
�|�|�|�dS)Nrcsg|]}|�ur|�qSrr)�.0�v�r@rr!�
<listcomp>sz3BaseAdapterRegistry.unsubscribe.<locals>.<listcomp>rJr)
r7r8r9r:rr<r;rPrKrr+rLr%)rr>r?r@rArBrCrDrMrErFrN�newrOrGrrTr!�unsubscribe�sN



�zBaseAdapterRegistry.unsubscribecCsGdd�d�}|S)Nc@seZdZiZdS)z2BaseAdapterRegistry.get.<locals>.XXXTwistedFakeOutN)�__name__�
__module__�__qualname__�selfImpliedrrrr!�XXXTwistedFakeOut)sr\r)r�_r\rrr!r<(szBaseAdapterRegistry.get�rr)rXrYrZr,r0r"r&�propertyrrr%rHrPrIr6rQrWr<rrrr!r
s 
/�#
0
<r
c@sneZdZdd�Zddd�Zdd�Zedfdd	�Zedfd
d�Zedfdd
�Z	edfdd�Z
dd�Zdd�ZdS)�LookupBaseFallbackcCsi|_i|_i|_dSr)�_cache�_mcache�_scacher'rrr!r"1s
zLookupBaseFallback.__init__NcCs"|j��|j��|j��dSr)ra�clearrbrc)r�ignoredrrr!r%6s

zLookupBaseFallback.changedcCsL|j�|�}|duri}||j|<|r$|�|�}|dur"i}|||<|}|Sr)rar<)rr?r.�cache�crrr!�	_getcache;s

zLookupBaseFallback._getcachecCs�t|t�s	td��|�||�}t|�}t|�dkr"|�|dt�}n|�t|�t�}|turH|�|||�}t|�dkrB|||d<n||t|�<|durN|S|S)Nr3rr)	r4rr5rhr7r:r<�_not_in_mapping�_uncached_lookup�rr>r?r.�defaultrf�resultrrr!rHs
zLookupBaseFallback.lookupcCsTt|t�s	td��|�||�}|�|t�}|tur"|�|f|||�S|dur(|S|S�Nr3)r4rr5rhr<rirrkrrr!r^s
zLookupBaseFallback.lookup1cCs|�||||�Sr)r)r�objectr?r.rlrrr!rkszLookupBaseFallback.queryAdapterc	Csjt|t�s	td��t|�}|�||�}|�|t�}|tur%|�|f||�}|dur3||�}|dur3|S|Srn)r4rr5rrhr<rir)	rr?ror.rlr>rf�factoryrmrrr!rns
zLookupBaseFallback.adapter_hookcC�V|j�|�}|duri}||j|<t|�}|�|t�}|tur)|�||�}|||<|Sr)rbr<r7ri�_uncached_lookupAll�rr>r?rfrmrrr!r~�
zLookupBaseFallback.lookupAllcCrqr)rcr<r7ri�_uncached_subscriptionsrsrrr!r�rtz LookupBaseFallback.subscriptionsr)
rXrYrZr"r%rhrPrrrrrrrrrr!r`/s


r`)�
LookupBasec@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�VerifyingBaseFallbackcCs4t�||�|jjdd�|_dd�|jD�|_dS)NrcS�g|]}|j�qSr�r0�rR�rrrr!rU��z1VerifyingBaseFallback.changed.<locals>.<listcomp>)r`r%�	_registryr�
_verify_ro�_verify_generationsr1rrr!r%�szVerifyingBaseFallback.changedcCs(dd�|jD�|jkr|�d�dSdS)NcSrxrryrzrrr!rU�r|z1VerifyingBaseFallback._verify.<locals>.<listcomp>)r~rr%r'rrr!�_verify�s
��zVerifyingBaseFallback._verifycC�|��t�|||�Sr)r�r`rh)rr?r.rrr!rh��zVerifyingBaseFallback._getcachecCr�r)r�r`r�rr>r?rrr!r�r�zVerifyingBaseFallback.lookupAllcCr�r)r�r`rr�rrr!r�r�z#VerifyingBaseFallback.subscriptionsN)rXrYrZr%r�rhrrrrrr!rw�srw)�
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)r}�	_required�init_extendors�superr�r")r�registry��	__class__rr!r"�szAdapterLookupBase.__init__NcsFtt|��d�|j��D]}|�}|dur|�|�q
|j��dSr)r�r�r%r��keysrWrd)rrer{r�rr!r%�s
�zAdapterLookupBase.changedcCs"i|_|jjD]}|�|�qdSr)�
_extendorsr}rr=)r�prrr!r��s�z AdapterLookupBase.init_extendorscsP|j}�jD]}|�|d�}�fdd�|D��g�fdd�|D�||<qdS)Nrcsg|]	}��|�r|�qSr��isOrExtends�rR�e�r?rr!rU��z2AdapterLookupBase.add_extendor.<locals>.<listcomp>csg|]	}��|�s|�qSrr�r�r�rr!rU�r��r��__iro__r<)rr?r��i�	extendorsrr�r!r=�s
����zAdapterLookupBase.add_extendorcs4|j}�jD]}�fdd�|�|d�D�||<qdS)Ncsg|]}|�kr|�qSrrr�r�rr!rUs�z5AdapterLookupBase.remove_extendor.<locals>.<listcomp>rr�)rr?r�r�rr�r!rL�s
 �z!AdapterLookupBase.remove_extendorcGs6|j}|D]}|��}||vr|�|�d||<qdSr/)r��weakrefrQ)rr>�_refsr{�refrrr!�
_subscribes
��zAdapterLookupBase._subscribec
Cs~t|�}d}t|�}|jjD])}|j}|t|�krq|jj�|�}|s$q||}	t|	|||d|�}|dur7nq|j	|�|S�Nr)
r7r:r}rrr+r�r<�_lookupr�)
rr>r?r.rmrAr�rBr�rCrrr!rjs&��
z"AdapterLookupBase._uncached_lookupcCs8|�tt|�||�}|dur|S||�}|dur|S|Sr)rr8r)r�objectsr?r.rlrprmrrr!r%sz#AdapterLookupBase.queryMultiAdapterc	Cs~t|�}t|�}i}t|jj�D]#}|j}|t|�krq|jj�|�}|s&q||}t	||||d|�q|j
|�t|���Sr�)r7r:rKr}rrr+r�r<�
_lookupAllr��items)	rr>r?rArmr�rBr�rCrrr!rr0s
z%AdapterLookupBase._uncached_lookupAllcCsdd�|�||�D�S)NcSsg|]}|d�qS)rr)rRrgrrr!rUCsz+AdapterLookupBase.names.<locals>.<listcomp>)rr�rrr!rBszAdapterLookupBase.namesc	Cs�t|�}t|�}g}t|jj�D],}|j}|t|�krq|dur$|f}n|jj�|�}|dur0qt	||||t
|d|�q|j|�|Sr�)r7r:rKr}rrr+r�r<�_subscriptionsrPr�)rr>r?rArmr�rBr�rrr!ruEs"�
z)AdapterLookupBase._uncached_subscriptionscCs`|�tt|�|�}|durd}|D]}||�q|Sg}|D]}||�}|dur-|�|�q|S)Nr)rr8rr;)rr�r?rrm�subscription�
subscriberrrr!r\s
�
�zAdapterLookupBase.subscribersr)rXrYrZr"r%r�r=rLr�rPrjrrrrrur�
__classcell__rrr�r!r��sr�c@�eZdZdS)�
AdapterLookupN�rXrYrZrrrr!r�j�r�csJeZdZeZd�fdd�	Zdd�Zdd�Z�fdd	�Z�fd
d�Z	�Z
S)
�AdapterRegistryrcst��|_tt|��|�dSr)r��WeakKeyDictionary�_v_subregistriesr�r�r"rr�rr!r"rs
zAdapterRegistry.__init__cCsd|j|<dSr/�r��rr{rrr!�_addSubregistryyszAdapterRegistry._addSubregistrycCs||jvr|j|=dSdSrr�r�rrr!�_removeSubregistry|s
�z"AdapterRegistry._removeSubregistrycsZ|j�dd�}|D]}||vr|�|�q	|D]}||vr"|�|�qtt|��|�dS)Nrr)r$r<r�r�r�r�r&)rr rNr{r�rr!r&�s
�
�zAdapterRegistry._setBasescs.tt|��|�|j��D]}|�|�q
dSr)r�r�r%r�r�)rr2�subr�rr!r%�s�zAdapterRegistry.changedr^)rXrYrZr�r*r"r�r�r&r%r�rrr�r!r�msr�c@r�)�VerifyingAdapterLookupNr�rrrr!r��r�r�c@seZdZeZdS)�VerifyingAdapterRegistryN)rXrYrZr�r*rrrr!r��sr�cCs|durtS|Srr)�xrrr!r9�sr9c
Cs�||kr(||jD]}|�|�}|r%t|||||d|�}|dur%|Sq	dS|D]}	|�|	�}|r@|�|�}|dur@|Sq*dSr/)�__sro__r<r�)
rC�specsr?r.r��l�spec�compsr{�ifacerrr!r��s"
�	�

�r�c	Csn||kr"t||j�D]}|�|�}|rt|||||d|�qdSt|�D]}|�|�}|r4|�|�q&dSr/)rKr�r<r��update)	rCr�r?rmr�r�r�r�r�rrr!r��s
��

��r�c
	Cs~||kr#t||j�D]}|�|�}|r t||||||d|�qdSt|�D]}	|�|	�}|r<|�|�}|r<|�|�q'dSr/)rKr�r<r��extend)
rCr�r?r.rmr�r�r�r�r�rrr!r��s
��


��r�)#�__doc__�
__future__rr�rrrrr�
interfacesr	�_compatr
rrPror
rir`�LookupBasePy�_zope_interface_coptimizationsrv�ImportErrorrw�VerifyingBasePyr�r�r�r�r�r�r9r�r�r�rrrr!�<module>sR
l��$$