{"body":"class ProviderAPIs(object):\n\n    __registry = {}\n\n    __iter__ = __registry.__iter__\n    __getitem__ = __registry.__getitem__\n\n    def __init__(self):\n        raise RuntimeError('`ProviderAPIs` class may not be instantiated.')\n\n    @classmethod\n    def __getattr__(cls, item):\n        try:\n            return cls.__registry[item]\n        except KeyError:\n            raise AttributeError(\"'ProviderAPIs' has no attribute %s\" % item)\n\n    @classmethod\n    def _register_provider_api(cls, name, obj):\n        \"\"\"Register an instance of a class as a provider api\"\"\"\n        if name in cls.__registry:\n            raise DuplicateProviderError(\n                '`%(name)s` has already been registered as an api '\n                'provider by `%(prov)r`' % {'name': name,\n                                            'prov': cls.__registry[name]})\n        cls.__registry[name] = obj\n\n    @classmethod\n    def _clear_registry_instances(cls):\n        \"\"\"This is only to ever be used in testing.\"\"\"\n        cls.__registry.clear()\n\n\nclass DuplicateProviderError(Exception):\n    \"\"\"Attempting to register a duplicate API provider.\"\"\"","name":"","extension":"txt","url":"https://www.irccloud.com/pastebin/Fzshpyyv","modified":1504193529,"id":"Fzshpyyv","size":1121,"lines":35,"own_paste":false,"theme":"","date":1504193529}