
    Og
                        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 Z G d d	e      Z ee       G d
 de             Z ed      Z	 ddlmZ  ed        [eZd Zde
fdZdde
fdZddZddZy# e$ r Y "w xY w)zGlobal components support
    )implementer)AdapterRegistry)
Components)IComponentLookup)_BLANKc                     t        | |      S N)getattr)
componentsregistryNames     X/var/www/djangounited/venv/lib/python3.12/site-packages/zope/component/globalregistry.pyGARr      s    :|,,    c                   (     e Zd ZdZ fdZd Z xZS )GlobalAdapterRegistryz~A global adapter registry

    This adapter registry's main purpose is to be picklable in combination
    with a site manager.c                 F    || _         || _        t        t        |           y r	   )
__parent____name__superr   __init__)selfparentname	__class__s      r   r   zGlobalAdapterRegistry.__init__    s     #T35r   c                 >    t         | j                  | j                  ffS r	   )r   r   r   r   s    r   
__reduce__z GlobalAdapterRegistry.__reduce__%   s    T__dmm444r   )r   
__module____qualname____doc__r   r   __classcell__)r   s   @r   r   r      s    
6
5r   r   c                       e Zd Zd Zd Zy)BaseGlobalComponentsc                 H    t        | d      | _        t        | d      | _        y )Nadapters	utilities)r   r%   r&   r   s    r   _init_registriesz%BaseGlobalComponents._init_registries+   s    -dJ?.t[Ar   c                     | j                   S r	   )r   r   s    r   r   zBaseGlobalComponents.__reduce__/   s    }}r   N)r   r   r   r'   r    r   r   r#   r#   (   s    Br   r#   base)
addCleanUpc                  ,    t         j                  d      S )Nr*   )r*   r   r)   r   r   <lambda>r-   :   s    t}}V, r   c                      t         S r	   )globalSiteManagerr)   r   r   getGlobalSiteManagerr0   >   s    r   Nc                 6    t         j                  | ||d       y NF)event)r*   registerUtility)	componentprovidesr   s      r   provideUtilityr7   E   s    Hd%@r   c                 8    t         j                  | |||d       y r2   )r*   registerAdapter)factoryadaptsr6   r   s       r   provideAdapterr<   H   s    &(DFr   c                 6    t         j                  | ||d       y r2   )r*   registerSubscriptionAdapter)r:   r;   r6   s      r   provideSubscriptionAdapterr?   K   s    $$Wfhe$Lr   c                 4    t         j                  | |d       y r2   )r*   registerHandler)r:   r;   s     r   provideHandlerrB   N   s    &6r   )NNr	   )r    zope.interfacer   zope.interface.adapterr   zope.interface.registryr   zope.component.interfacesr   zope.component._compatr   r   r   r#   r*   zope.testing.cleanupr+   ImportErrorr/   r0   r7   r<   r?   rB   r)   r   r   <module>rJ      s    & 2 . 6 )-5O 5 :   F#/ ,-  (,& A $($V GM7/  		s   A9 9B B