code: def convert_dt_time(duration, return_iter=False):
      
      try:
          days, hours, minutes, seconds = convert_timedelta(duration)
          if return_iter:
              return days, hours, minutes, seconds
          # string format conversions
          if days > 0:
              format_string = (
                  '{} day{}, {} hour{}'.format(
                   days, 's' if days != 1 else '', hours, 's' if hours != 1 else ''))
          elif hours > 1:
              format_string = (
                  '{} hour{}, {} minute{}'.format(
                   hours, 's' if hours != 1 else '', minutes, 's' if minutes != 1 else ''))
          else:
              format_string = (
                  '{} minute{}, {} sec{}'.format(
                   minutes, 's' if minutes != 1 else '', seconds, 's' if seconds != 1 else ''))
      except AttributeError as e:
          logger.exception(
              '%s: Type mismatch when converting timedelta objects (Code: %s)' %
              (inspect.stack()[0][3], str(e)))
      except Exception as e:
          logger.exception(
              '%s: Unknown error when converting datetime objects (Code: %s)' %
              (inspect.stack()[0][3], str(e)))
      return format_string
docs: Summary:
          convert timedelta objects to human readable output
      Args:
          :duration (datetime.timedelta): time duration to convert
          :return_iter (tuple):  tuple containing time sequence
      Returns:
          days, hours, minutes, seconds | TYPE: tuple (integers), OR
          human readable, notated units | TYPE: string