code: def _get_property(name):
      
      ret = property(
          lambda self: getattr(self.loop, name))
      if six.PY3:     # __doc__ is readonly in Py2
          try:
              ret.__doc__ = getattr(TrainLoop, name).__doc__
          except AttributeError:
              pass
      return ret
docs: Delegate property to self.loop