U
    ÌZj®
  ã                   @   sî   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 dd„ ZG d	d
„ d
eƒZeeƒG dd„ deƒƒZedƒZzddlmZ W n ek
rœ   Y nX edd„ ƒ [eZdd„ Zde
fdd„Zdde
fdd„Zddd„Zddd„ZdS )zGlobal components support
é    )Úimplementer)ÚAdapterRegistry)Ú
Components)ÚIComponentLookup)Ú_BLANKc                 C   s
   t | |ƒS ©N)Úgetattr)Ú
componentsZregistryName© r
   ú`/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/zope/component/globalregistry.pyÚGAR   s    r   c                       s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚGlobalAdapterRegistryz~A global adapter registry

    This adapter registry's main purpose is to be picklable in combination
    with a site manager.c                    s   || _ || _tt| ƒ ¡  d S r   )Ú
__parent__Ú__name__Úsuperr   Ú__init__)ÚselfÚparentÚname©Ú	__class__r
   r   r       s    zGlobalAdapterRegistry.__init__c                 C   s   t | j| jffS r   )r   r   r   ©r   r
   r
   r   Ú
__reduce__%   s    z GlobalAdapterRegistry.__reduce__)r   Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__classcell__r
   r
   r   r   r      s   r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚBaseGlobalComponentsc                 C   s   t | dƒ| _t | dƒ| _d S )NÚadaptersÚ	utilities)r   r   r   r   r
   r
   r   Ú_init_registries+   s    z%BaseGlobalComponents._init_registriesc                 C   s   | j S r   )r   r   r
   r
   r   r   /   s    zBaseGlobalComponents.__reduce__N)r   r   r   r    r   r
   r
   r
   r   r   (   s   r   Úbase)Ú
addCleanUpc                   C   s
   t  d¡S )Nr!   )r!   r   r
   r
   r
   r   Ú<lambda>:   ó    r#   c                   C   s   t S r   )ÚglobalSiteManagerr
   r
   r
   r   ÚgetGlobalSiteManager>   s    r&   Nc                 C   s   t j| ||dd� d S ©NF)Úevent)r!   ZregisterUtility)Ú	componentÚprovidesr   r
   r
   r   ÚprovideUtilityE   s    r+   c                 C   s   t j| |||dd� d S r'   )r!   ZregisterAdapter)ÚfactoryÚadaptsr*   r   r
   r
   r   ÚprovideAdapterH   s    r.   c                 C   s   t j| ||dd� d S r'   )r!   ZregisterSubscriptionAdapter)r,   r-   r*   r
   r
   r   ÚprovideSubscriptionAdapterK   s    r/   c                 C   s   t j| |dd� d S r'   )r!   ZregisterHandler)r,   r-   r
   r
   r   ÚprovideHandlerN   s    r0   )NN)N)r   Zzope.interfacer   Zzope.interface.adapterr   Zzope.interface.registryr   Zzope.component.interfacesr   Zzope.component._compatr   r   r   r   r!   Zzope.testing.cleanupr"   ÚImportErrorr%   r&   r+   r.   r/   r0   r
   r
   r
   r   Ú<module>   s,   

