code: def convert_timedelta(obj):
      
      if not PY2 and isinstance(obj, (bytes, bytearray)):
          obj = obj.decode('ascii')
  
      m = TIMEDELTA_RE.match(obj)
      if not m:
          return obj
  
      try:
          groups = list(m.groups())
          groups[-1] = _convert_second_fraction(groups[-1])
          negate = -1 if groups[0] else 1
          hours, minutes, seconds, microseconds = groups[1:]
  
          tdelta = datetime.timedelta(
              hours = int(hours),
              minutes = int(minutes),
              seconds = int(seconds),
              microseconds = int(microseconds)
              ) * negate
          return tdelta
      except ValueError:
          return obj
docs: Returns a TIME column as a timedelta object:
  
        >>> timedelta_or_None('25:06:17')
        datetime.timedelta(1, 3977)
        >>> timedelta_or_None('-25:06:17')
        datetime.timedelta(-2, 83177)
  
      Illegal values are returned as None:
  
        >>> timedelta_or_None('random crap') is None
        True
  
      Note that MySQL always returns TIME columns as (+|-)HH:MM:SS, but
      can accept values as (+|-)DD HH:MM:SS. The latter format will not
      be parsed correctly by this function.