U
    ,ò¿W6  ã                   @   sf   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
 G dd„ deeƒZG d	d
„ d
e
ƒZdS )zPersistent component managers
é    )Ú
Persistent)ÚPersistentMapping)ÚPersistentList)ÚVerifyingAdapterRegistry)Ú
Componentsc                       s4   e Zd Z‡ fdd„Z‡ fdd„Z‡ fdd„Z‡  ZS )ÚPersistentAdapterRegistryc                    s"   || krd| _ tt| ƒ |¡ d S )NT)Z
_p_changedÚsuperr   Úchanged)ÚselfZoriginally_changed©Ú	__class__© úC/usr/lib/python3/dist-packages/zope/component/persistentregistry.pyr	      s    z!PersistentAdapterRegistry.changedc                    s:   t t| ƒ ¡  ¡ }| jD ]}| |d¡ q| dd ¡ |S )Nr   Zro)r   r   Ú__getstate__ÚcopyZ
_delegatedÚpop)r
   ÚstateÚnamer   r   r   r      s
    
z&PersistentAdapterRegistry.__getstate__c                    s:   |  dd¡}tt| ƒ |¡ |  ¡  || _| j | ¡ d S )NÚ	__bases__r   )r   r   r   Ú__setstate__Z_createLookupr   Z	_v_lookupr	   )r
   r   Úbasesr   r   r   r   $   s
    z&PersistentAdapterRegistry.__setstate__)Ú__name__Ú
__module__Ú__qualname__r	   r   r   Ú__classcell__r   r   r   r   r      s   r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚPersistentComponentsc                 C   s   t ƒ | _t ƒ | _d S ©N)r   ZadaptersZ	utilities©r
   r   r   r   Ú_init_registries.   s    z%PersistentComponents._init_registriesc                 C   s$   t ƒ | _t ƒ | _tƒ | _tƒ | _d S r   )r   Z_utility_registrationsZ_adapter_registrationsr   Z_subscription_registrationsZ_handler_registrationsr   r   r   r   Ú_init_registrations2   s    z(PersistentComponents._init_registrationsN)r   r   r   r   r   r   r   r   r   r   ,   s   r   N)Ú__doc__Z
persistentr   Zpersistent.mappingr   Zpersistent.listr   Zzope.interface.adapterr   Zzope.interface.registryr   r   r   r   r   r   r   Ú<module>   s   