code: def _on_loop_end(self, variables):
          
          for callback in self.callbacks:
              if hasattr(callback, 'on_loop_end'):
                  self.logs_[str(callback)].append(callback.on_loop_end(**variables))
docs: performs on-loop-end actions like callbacks
  
          variables contains local namespace variables.
  
          Parameters
          ---------
          variables : dict of available variables
  
          Returns
          -------
          None