
    }f                          d dl Z  G d d      Zy)    Nc                   :    e Zd ZdZd Zd Zd ZddZed        Z	y)	DictRegistryz+A simple registry for a mapping of objects.c                 $    | j                          y N)resetselfs    4/usr/lib/python3/dist-packages/cloudinit/registry.py__init__zDictRegistry.__init__   s    

    c                     i | _         y r   )_itemsr   s    r
   r   zDictRegistry.reset   s	    r   c                 r    || j                   v rt        dj                  |            || j                   |<   y)zAdd item to the registry.z$Item already registered with key {0}N)r   
ValueErrorformat)r	   keyitems      r
   register_itemzDictRegistry.register_item   s9    $++6==cB   Cr   c                 \    || j                   v r| j                   |= y|st        d|z        y)zRemove item from the registry.z!%s: key not present to unregisterN)r   KeyError)r	   r   forces      r
   unregister_itemzDictRegistry.unregister_item   s3    $++C >DEE r   c                 @    t        j                   | j                        S )zvAll the items that have been registered.

        This cannot be used to modify the contents of the registry.
        )copyr   r   s    r
   registered_itemszDictRegistry.registered_items    s     yy%%r   N)T)
__name__
__module____qualname____doc__r   r   r   r   propertyr    r   r
   r   r      s.    5 F & &r   r   )r   r   r!   r   r
   <module>r"      s   
 & &r   