code: def _call_wrapper(self, time, function, *args):
          
          # execute the function
          function(*args)
          if function in self._callback.keys():
              repeat = self._callback[function][1]
              if repeat:
                  # setup the call back again and update the id
                  callback_id = self.tk.after(time, self._call_wrapper, time, function, *args)
                  self._callback[function][0] = callback_id
              else:
                  # remove it from the call back dictionary
                  self._callback.pop(function)
docs: Fired by tk.after, gets the callback and either executes the function and cancels or repeats