# Pastebin Fzshpyyv class ProviderAPIs(object): __registry = {} __iter__ = __registry.__iter__ __getitem__ = __registry.__getitem__ def __init__(self): raise RuntimeError('`ProviderAPIs` class may not be instantiated.') @classmethod def __getattr__(cls, item): try: return cls.__registry[item] except KeyError: raise AttributeError("'ProviderAPIs' has no attribute %s" % item) @classmethod def _register_provider_api(cls, name, obj): """Register an instance of a class as a provider api""" if name in cls.__registry: raise DuplicateProviderError( '`%(name)s` has already been registered as an api ' 'provider by `%(prov)r`' % {'name': name, 'prov': cls.__registry[name]}) cls.__registry[name] = obj @classmethod def _clear_registry_instances(cls): """This is only to ever be used in testing.""" cls.__registry.clear() class DuplicateProviderError(Exception): """Attempting to register a duplicate API provider."""