
    ܍~c                     (    d dl Z  G d d          ZdS )    Nc                   B    e Zd ZdZd Zd Zd Zd	dZed             Z	dS )
DictRegistryz+A simple registry for a mapping of objects.c                 .    |                                   d S N)resetselfs    4/usr/lib/python3/dist-packages/cloudinit/registry.py__init__zDictRegistry.__init__   s    

    c                     i | _         d S r   )_itemsr   s    r
   r   zDictRegistry.reset   s    r   c                 p    || j         v r"t          d                    |                    || j         |<   dS )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   sF    $+6==cBB    Cr   Tc                 T    || j         v r
| j         |= dS |st          d|z            dS )zRemove item from the registry.z!%s: key not present to unregisterN)r   KeyError)r	   r   forces      r
   unregister_itemzDictRegistry.unregister_item   sH    $+C    	F>DEEE	F 	Fr   c                 4    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     y%%%r   N)T)
__name__
__module____qualname____doc__r   r   r   r   propertyr    r   r
   r   r      sz        55         F F F F & & X& & &r   r   )r   r   r!   r   r
   <module>r"      sB   
 & & & & & & & & & &r   