<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _throttle_error(self, msg, *args, **kwargs):
 """ Avoids sending errors repeatedly. Waits at least `self.server_error_interval` seconds before sending the same error string to the error logging facility. If not enough time has passed, it calls `log.debug` instead Receives the same parameters as `Logger.error` an passes them on to the selected logging function, but ignores all parameters but the main message string when checking the last emission time. :returns: the return value of `Logger.debug` or `Logger.error` """

        now = time.time()
        if msg in self._errors:
            if ((now - self._errors[msg]) >=
                    self.server_error_interval):
                fn = self.log.error
                self._errors[msg] = now
            else:
                fn = self.log.debug
        else:
            self._errors[msg] = now
            fn = self.log.error

        return fn(msg, *args, **kwargs)