# -*- coding: utf-8 -*- # !/usr/bin/env python class BucketFullException(Exception): def __init__(self, identity, rate, remaining_time): error = "Bucket for {identity} with Rate {rate} is already full".format( identity = identity, rate = rate) self.meta_info = { "error": error, "identity": identity, "rate": str(rate), "remaining_time": remaining_time, } super(BucketFullException, self).__init__(error) class InvalidParams(Exception): def __init__(self, param_name): self.message = "Parameters missing or invalid:{param_name}".format(param_name = param_name) super(InvalidParams, self).__init__(self.message) class ImmutableClassProperty(Exception): def __init__(self, class_instance, prop): """Mutating class property is forbidden""" self.message = "{class_instance}.{prop} must not be mutated".format( class_instance = class_instance, prop = prop) super(ImmutableClassProperty, self).__init__(self.message)