Current Dir: /snap/core22/2955/usr/lib/python3/dist-packages/cloudinit/

[DIR]  analyze [ delete | rename ]
[DIR]  cmd [ delete | rename ]
[DIR]  config [ delete | rename ]
[DIR]  distros [ delete | rename ]
[DIR]  filters [ delete | rename ]
[DIR]  handlers [ delete | rename ]
[DIR]  log [ delete | rename ]
[DIR]  mergers [ delete | rename ]
[DIR]  net [ delete | rename ]
[DIR]  reporting [ delete | rename ]
[DIR]  sources [ delete | rename ]
[DIR]  __pycache__ [ delete | rename ]
[FILE] apport.py [ edit | delete | rename ]
[FILE] atomic_helper.py [ edit | delete | rename ]
[FILE] cloud.py [ edit | delete | rename ]
[FILE] dmi.py [ edit | delete | rename ]
[FILE] event.py [ edit | delete | rename ]
[FILE] features.py [ edit | delete | rename ]
[FILE] gpg.py [ edit | delete | rename ]
[FILE] helpers.py [ edit | delete | rename ]
[FILE] importer.py [ edit | delete | rename ]
[FILE] lifecycle.py [ edit | delete | rename ]
[FILE] netinfo.py [ edit | delete | rename ]
[FILE] performance.py [ edit | delete | rename ]
[FILE] persistence.py [ edit | delete | rename ]
[FILE] registry.py [ edit | delete | rename ]
[FILE] safeyaml.py [ edit | delete | rename ]
[FILE] settings.py [ edit | delete | rename ]
[FILE] signal_handler.py [ edit | delete | rename ]
[FILE] simpletable.py [ edit | delete | rename ]
[FILE] socket.py [ edit | delete | rename ]
[FILE] ssh_util.py [ edit | delete | rename ]
[FILE] stages.py [ edit | delete | rename ]
[FILE] subp.py [ edit | delete | rename ]
[FILE] templater.py [ edit | delete | rename ]
[FILE] temp_utils.py [ edit | delete | rename ]
[FILE] type_utils.py [ edit | delete | rename ]
[FILE] url_helper.py [ edit | delete | rename ]
[FILE] user_data.py [ edit | delete | rename ]
[FILE] util.py [ edit | delete | rename ]
[FILE] version.py [ edit | delete | rename ]
[FILE] warnings.py [ edit | delete | rename ]
[FILE] __init__.py [ edit | delete | rename ]

Viewing: /snap/core22/2955/usr/lib/python3/dist-packages/cloudinit/registry.py

# Copyright (C) 2015 Canonical Ltd.
#
# This file is part of cloud-init. See LICENSE file for license information.

import copy


class DictRegistry:
    """A simple registry for a mapping of objects."""

    def __init__(self):
        self.reset()

    def reset(self):
        self._items = {}

    def register_item(self, key, item):
        """Add item to the registry."""
        if key in self._items:
            raise ValueError(
                "Item already registered with key {0}".format(key)
            )
        self._items[key] = item

    def unregister_item(self, key, force=True):
        """Remove item from the registry."""
        if key in self._items:
            del self._items[key]
        elif not force:
            raise KeyError("%s: key not present to unregister" % key)

    @property
    def registered_items(self):
        """All the items that have been registered.

        This cannot be used to modify the contents of the registry.
        """
        return copy.copy(self._items)

Upload File: